a:54:{s:15:"20140116_094700";a:7:{s:5:"title";s:34:"Raspfr : aPiro #4 ce soir à Metz";s:4:"link";s:86:"http://feedproxy.google.com/~r/Jeoffrey54/~3/v2is8jGBR8M/raspfr-apiro-4-ce-soir-a-metz";s:4:"guid";s:66:"http://www.jeoffrey54.com/article148/raspfr-apiro-4-ce-soir-a-metz";s:7:"pubDate";s:31:"Thu, 16 Jan 2014 09:47:00 +0100";s:11:"description";s:1478:"

Bonjour à tous !

L'association RaspFR, association francophone du Raspberry Pi, organise ce soir son quatrième aPiro à Metz !

L'aPiro est une petite réunion informelle autour d’un apéritif ou de quelqu’autre prétexte, pour échanger entre nous, faire connaissance, et faciliter les échanges. Rien de bien compliqué, ni de trop grand, juste un petit événement, pour lier la communauté et se rencontrer.

Au programme :

Ces 3 ateliers permettront ainsi d'apprendre à se servir du Raspberry Pi avec des exemples simples et compréhensibles. Chaque atelier aura son propre raspberry pi avec écran et clavier (et matériel éléctronique pour le feu et la sonde).

C'est le Graoulab qui, une fois de plus, nous fait l'honneur de nous accueillir.

Ou ?

Lieu : Annexe du centre socio-culturel de la grange aux bois, rue du Bois de la Dame à Metz.

Heure : 20h30

N'hésitez pas à venir découvrir le Raspberry Pi à nos côtés, ou juste passer échanger à son sujet si vous avez déjà l'habitude !

";s:7:"content";s:1478:"

Bonjour à tous !

L'association RaspFR, association francophone du Raspberry Pi, organise ce soir son quatrième aPiro à Metz !

L'aPiro est une petite réunion informelle autour d’un apéritif ou de quelqu’autre prétexte, pour échanger entre nous, faire connaissance, et faciliter les échanges. Rien de bien compliqué, ni de trop grand, juste un petit événement, pour lier la communauté et se rencontrer.

Au programme :

Ces 3 ateliers permettront ainsi d'apprendre à se servir du Raspberry Pi avec des exemples simples et compréhensibles. Chaque atelier aura son propre raspberry pi avec écran et clavier (et matériel éléctronique pour le feu et la sonde).

C'est le Graoulab qui, une fois de plus, nous fait l'honneur de nous accueillir.

Ou ?

Lieu : Annexe du centre socio-culturel de la grange aux bois, rue du Bois de la Dame à Metz.

Heure : 20h30

N'hésitez pas à venir découvrir le Raspberry Pi à nos côtés, ou juste passer échanger à son sujet si vous avez déjà l'habitude !

";s:7:"dateiso";s:15:"20140116_094700";}s:15:"20131025_134300";a:7:{s:5:"title";s:48:"RaspFR : Une association ? On a besoin de vous !";s:4:"link";s:87:"http://feedproxy.google.com/~r/Jeoffrey54/~3/1YfyK_obp_Q/raspfr-une-association-join-us";s:4:"guid";s:67:"http://www.jeoffrey54.com/article147/raspfr-une-association-join-us";s:7:"pubDate";s:31:"Fri, 25 Oct 2013 11:43:00 +0000";s:11:"description";s:2520:"

Ça fait un petit moment que j'avais pas parlé ici ! Et pour cause, beaucoup de boulot. Je sais, c'est inexcusable.

Mais aujourd'hui, on va parler de RaspFR. Vous vous souvenez, nous avons lancé il y a quelques mois Raspfr, qui se veut être un groupement d'utilisateurs lié au Raspberry Pi !

Allez, place à la comm' :

Comme vous le savez, RaspFR a été lancé par 4 personnes. Et aujourd'hui, c'est 3 choses :

Mais nous souhaitons aller plus loin : nous souhaitons dépasser ce stade de "communauté de l'Internet". Depuis le début de la création du forum, nous voulons créer une association.

Aujourd'hui, nous pensons être prêts, et nous cherchons des gens partout en France qui seraient prêts à nous rejoindre, et à monter l'association avec nous.

Cette association, à quoi servira elle ?

Simplement, nous souhaitons promouvoir le Raspberry, dans toute la france, et pourquoi pas, chez tous nos amis francophones ! Cela se passera par le biais de plusieurs actions :

Voilà, je pense vous avoir présenté les grandes lignes de cette future association.

Pour l'instant, nous (les fondateurs) pourrions baser le bureau de l'association sur Nancy (Meurthe et Moselle, 54).

Si vous souhaitez participer, en tant que membre de l'association, en tant que membre du bureau, en tant que donateur, ou de la façon dont vous souhaitez, rien de plus simple : Manifestez-vous :).

Pour cela, 2 possibilités :

A bientôt :).

";s:7:"content";s:2520:"

Ça fait un petit moment que j'avais pas parlé ici ! Et pour cause, beaucoup de boulot. Je sais, c'est inexcusable.

Mais aujourd'hui, on va parler de RaspFR. Vous vous souvenez, nous avons lancé il y a quelques mois Raspfr, qui se veut être un groupement d'utilisateurs lié au Raspberry Pi !

Allez, place à la comm' :

Comme vous le savez, RaspFR a été lancé par 4 personnes. Et aujourd'hui, c'est 3 choses :

Mais nous souhaitons aller plus loin : nous souhaitons dépasser ce stade de "communauté de l'Internet". Depuis le début de la création du forum, nous voulons créer une association.

Aujourd'hui, nous pensons être prêts, et nous cherchons des gens partout en France qui seraient prêts à nous rejoindre, et à monter l'association avec nous.

Cette association, à quoi servira elle ?

Simplement, nous souhaitons promouvoir le Raspberry, dans toute la france, et pourquoi pas, chez tous nos amis francophones ! Cela se passera par le biais de plusieurs actions :

Voilà, je pense vous avoir présenté les grandes lignes de cette future association.

Pour l'instant, nous (les fondateurs) pourrions baser le bureau de l'association sur Nancy (Meurthe et Moselle, 54).

Si vous souhaitez participer, en tant que membre de l'association, en tant que membre du bureau, en tant que donateur, ou de la façon dont vous souhaitez, rien de plus simple : Manifestez-vous :).

Pour cela, 2 possibilités :

A bientôt :).

";s:7:"dateiso";s:15:"20131025_134300";}s:15:"20131025_114300";a:7:{s:5:"title";s:48:"RaspFR : Une association ? On a besoin de vous !";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/ryL22Na3C_Y/index.php";s:4:"guid";s:77:"http://www.jeoffrey54.com/index.php?article147/raspfr-une-association-join-us";s:7:"pubDate";s:31:"Fri, 25 Oct 2013 11:43:00 +0200";s:11:"description";s:2527:"

Ça fait un petit moment que j'avais pas parlé ici ! Et pour cause, beaucoup de boulot. Je sais, c'est inexcusable.

Mais aujourd'hui, on va parler de RaspFR. Vous vous souvenez, nous avons lancé il y a quelques mois Raspfr, qui se veut être un groupement d'utilisateurs lié au Raspberry Pi !

Allez, place à la comm' :

Comme vous le savez, RaspFR a été lancé par 4 personnes. Et aujourd'hui, c'est 3 choses :

Mais nous souhaitons aller plus loin : nous souhaitons dépasser ce stade de "communauté de l'Internet". Depuis le début de la création du forum, nous voulons créer une association.

Aujourd'hui, nous pensons être prêts, et nous cherchons des gens partout en France qui seraient prêts à nous rejoindre, et à monter l'association avec nous.

Cette association, à quoi servira elle ?

Simplement, nous souhaitons promouvoir le Raspberry, dans toute la france, et pourquoi pas, chez tous nos amis francophones ! Cela se passera par le biais de plusieurs actions :

Voilà, je pense vous avoir présenté les grandes lignes de cette future association.

Pour l'instant, nous (les fondateurs) pourrions baser le bureau de l'association sur Nancy (Meurthe et Moselle, 54).

Si vous souhaitez participer, en tant que membre de l'association, en tant que membre du bureau, en tant que donateur, ou de la façon dont vous souhaitez, rien de plus simple : Manifestez-vous :).

Pour cela, 2 possibilités :

A bientôt :).

";s:7:"content";s:2527:"

Ça fait un petit moment que j'avais pas parlé ici ! Et pour cause, beaucoup de boulot. Je sais, c'est inexcusable.

Mais aujourd'hui, on va parler de RaspFR. Vous vous souvenez, nous avons lancé il y a quelques mois Raspfr, qui se veut être un groupement d'utilisateurs lié au Raspberry Pi !

Allez, place à la comm' :

Comme vous le savez, RaspFR a été lancé par 4 personnes. Et aujourd'hui, c'est 3 choses :

Mais nous souhaitons aller plus loin : nous souhaitons dépasser ce stade de "communauté de l'Internet". Depuis le début de la création du forum, nous voulons créer une association.

Aujourd'hui, nous pensons être prêts, et nous cherchons des gens partout en France qui seraient prêts à nous rejoindre, et à monter l'association avec nous.

Cette association, à quoi servira elle ?

Simplement, nous souhaitons promouvoir le Raspberry, dans toute la france, et pourquoi pas, chez tous nos amis francophones ! Cela se passera par le biais de plusieurs actions :

Voilà, je pense vous avoir présenté les grandes lignes de cette future association.

Pour l'instant, nous (les fondateurs) pourrions baser le bureau de l'association sur Nancy (Meurthe et Moselle, 54).

Si vous souhaitez participer, en tant que membre de l'association, en tant que membre du bureau, en tant que donateur, ou de la façon dont vous souhaitez, rien de plus simple : Manifestez-vous :).

Pour cela, 2 possibilités :

A bientôt :).

";s:7:"dateiso";s:15:"20131025_114300";}s:15:"20130725_165000";a:7:{s:5:"title";s:32:"DNS sous Bind : Ran out of space";s:4:"link";s:87:"http://feedproxy.google.com/~r/Jeoffrey54/~3/REkIyxiXMF4/dns-sous-bind-ran-out-of-space";s:4:"guid";s:67:"http://www.jeoffrey54.com/article144/dns-sous-bind-ran-out-of-space";s:7:"pubDate";s:31:"Thu, 25 Jul 2013 14:50:00 +0000";s:11:"description";s:763:"

Ce matin, je me suis heurté à ce soucis en ajoutant 3 IP à mon champ TXT SPF :

Jul 25 11:44:47 dns named[14344]: dns_rdata_fromtext: /etc/bind/zones/mondomaine.com:19: ran out of space

Après une petite recherche, j'ai découvert qu'on ne pouvait pas mettre de valeur de plus de 255 caractères... Il faut donc séparer votre entrée TXT comme ceci :

IN TXT "valeur" "valeur2"

Un petit exemple :

60      IN      TXT     "v=spf1 include:domaine.com ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X " "ip4:X.X.X. ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X -all"
";s:7:"content";s:763:"

Ce matin, je me suis heurté à ce soucis en ajoutant 3 IP à mon champ TXT SPF :

Jul 25 11:44:47 dns named[14344]: dns_rdata_fromtext: /etc/bind/zones/mondomaine.com:19: ran out of space

Après une petite recherche, j'ai découvert qu'on ne pouvait pas mettre de valeur de plus de 255 caractères... Il faut donc séparer votre entrée TXT comme ceci :

IN TXT "valeur" "valeur2"

Un petit exemple :

60      IN      TXT     "v=spf1 include:domaine.com ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X " "ip4:X.X.X. ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X -all"
";s:7:"dateiso";s:15:"20130725_165000";}s:15:"20130725_145000";a:7:{s:5:"title";s:32:"DNS sous Bind : Ran out of space";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/fTg98tEm6-c/index.php";s:4:"guid";s:77:"http://www.jeoffrey54.com/index.php?article144/dns-sous-bind-ran-out-of-space";s:7:"pubDate";s:31:"Thu, 25 Jul 2013 14:50:00 +0200";s:11:"description";s:770:"

Ce matin, je me suis heurté à ce soucis en ajoutant 3 IP à mon champ TXT SPF :

Jul 25 11:44:47 dns named[14344]: dns_rdata_fromtext: /etc/bind/zones/mondomaine.com:19: ran out of space

Après une petite recherche, j'ai découvert qu'on ne pouvait pas mettre de valeur de plus de 255 caractères... Il faut donc séparer votre entrée TXT comme ceci :

IN TXT "valeur" "valeur2"

Un petit exemple :

60      IN      TXT     "v=spf1 include:domaine.com ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X " "ip4:X.X.X. ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X -all"
";s:7:"content";s:770:"

Ce matin, je me suis heurté à ce soucis en ajoutant 3 IP à mon champ TXT SPF :

Jul 25 11:44:47 dns named[14344]: dns_rdata_fromtext: /etc/bind/zones/mondomaine.com:19: ran out of space

Après une petite recherche, j'ai découvert qu'on ne pouvait pas mettre de valeur de plus de 255 caractères... Il faut donc séparer votre entrée TXT comme ceci :

IN TXT "valeur" "valeur2"

Un petit exemple :

60      IN      TXT     "v=spf1 include:domaine.com ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X " "ip4:X.X.X. ip4:X.X.X.X ip4:X.X.X.X ip4:X.X.X.X -all"
";s:7:"dateiso";s:15:"20130725_145000";}s:15:"20130708_112500";a:7:{s:5:"title";s:47:"Mise à jour Squeeze vers Wheezy : MySQL DotDeb";s:4:"link";s:101:"http://feedproxy.google.com/~r/Jeoffrey54/~3/J2id-qKftgk/mise-a-jour-squeeze-vers-wheezy-mysql-dotdeb";s:4:"guid";s:81:"http://www.jeoffrey54.com/article143/mise-a-jour-squeeze-vers-wheezy-mysql-dotdeb";s:7:"pubDate";s:31:"Mon, 08 Jul 2013 09:25:00 +0000";s:11:"description";s:1929:"

Allez, le petit article du mois.. Enfin, devrais-je dire le tip ? Sûrement, ce sera un article assez court :

Ce week-end, j'ai voulu mettre à jour mon serveur sous Squeeze en Wheezy, la dernière version stable de Debian.

Hop, on modifie le sources.list, on remplace squeeze par wheezy, et on lance nos commandes magiques :

apt-get update
apt-get ugprade
apt-get dist-upgrade

Mais l'upgrade renvoie cette erreur :

Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 23335 fichiers et répertoires déjà installés.)
Préparation du remplacement de mysql-client-5.5 5.5.31-1~dotdeb.0 (en utilisant .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Dépaquetage de la mise à jour de mysql-client-5.5 ...
dpkg : erreur de traitement de /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb (--unpack) :
 tentative de remplacement de « /usr/bin/mysqlcheck », qui appartient aussi au paquet mysql-client-core-5.5 5.5.31-1~dotdeb.0
configured to not write apport reports
                                      dpkg-deb: sous-processus coller tué par le signal (Relais brisé (pipe))
Des erreurs ont été rencontrées pendant l'exécution :
 /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

On dirait que mon serveur essaye d'écraser le paquet mysql-client-5.5 de Dotdeb par celui de Wheezy...

Une solution qui marche serait de virer totalement MySQL et de le réinstaller... Mouais, bof.

Je préfère cette solution :

apt-get -f install -o Dpkg::Options::=”–force-overwrite”
apt-get remove mysql-client-core-5.5
apt-get dist-upgrade

Et là ça marche, MySQL est bien mis à jour par celui de Dotdeb.

";s:7:"content";s:1929:"

Allez, le petit article du mois.. Enfin, devrais-je dire le tip ? Sûrement, ce sera un article assez court :

Ce week-end, j'ai voulu mettre à jour mon serveur sous Squeeze en Wheezy, la dernière version stable de Debian.

Hop, on modifie le sources.list, on remplace squeeze par wheezy, et on lance nos commandes magiques :

apt-get update
apt-get ugprade
apt-get dist-upgrade

Mais l'upgrade renvoie cette erreur :

Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 23335 fichiers et répertoires déjà installés.)
Préparation du remplacement de mysql-client-5.5 5.5.31-1~dotdeb.0 (en utilisant .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Dépaquetage de la mise à jour de mysql-client-5.5 ...
dpkg : erreur de traitement de /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb (--unpack) :
 tentative de remplacement de « /usr/bin/mysqlcheck », qui appartient aussi au paquet mysql-client-core-5.5 5.5.31-1~dotdeb.0
configured to not write apport reports
                                      dpkg-deb: sous-processus coller tué par le signal (Relais brisé (pipe))
Des erreurs ont été rencontrées pendant l'exécution :
 /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

On dirait que mon serveur essaye d'écraser le paquet mysql-client-5.5 de Dotdeb par celui de Wheezy...

Une solution qui marche serait de virer totalement MySQL et de le réinstaller... Mouais, bof.

Je préfère cette solution :

apt-get -f install -o Dpkg::Options::=”–force-overwrite”
apt-get remove mysql-client-core-5.5
apt-get dist-upgrade

Et là ça marche, MySQL est bien mis à jour par celui de Dotdeb.

";s:7:"dateiso";s:15:"20130708_112500";}s:15:"20130708_092500";a:7:{s:5:"title";s:47:"Mise à jour Squeeze vers Wheezy : MySQL DotDeb";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/qS_9Oa0s6bg/index.php";s:4:"guid";s:91:"http://www.jeoffrey54.com/index.php?article143/mise-a-jour-squeeze-vers-wheezy-mysql-dotdeb";s:7:"pubDate";s:31:"Mon, 08 Jul 2013 09:25:00 +0200";s:11:"description";s:1936:"

Allez, le petit article du mois.. Enfin, devrais-je dire le tip ? Sûrement, ce sera un article assez court :

Ce week-end, j'ai voulu mettre à jour mon serveur sous Squeeze en Wheezy, la dernière version stable de Debian.

Hop, on modifie le sources.list, on remplace squeeze par wheezy, et on lance nos commandes magiques :

apt-get update
apt-get ugprade
apt-get dist-upgrade

Mais l'upgrade renvoie cette erreur :

Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 23335 fichiers et répertoires déjà installés.)
Préparation du remplacement de mysql-client-5.5 5.5.31-1~dotdeb.0 (en utilisant .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Dépaquetage de la mise à jour de mysql-client-5.5 ...
dpkg : erreur de traitement de /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb (--unpack) :
 tentative de remplacement de « /usr/bin/mysqlcheck », qui appartient aussi au paquet mysql-client-core-5.5 5.5.31-1~dotdeb.0
configured to not write apport reports
                                      dpkg-deb: sous-processus coller tué par le signal (Relais brisé (pipe))
Des erreurs ont été rencontrées pendant l'exécution :
 /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

On dirait que mon serveur essaye d'écraser le paquet mysql-client-5.5 de Dotdeb par celui de Wheezy...

Une solution qui marche serait de virer totalement MySQL et de le réinstaller... Mouais, bof.

Je préfère cette solution :

apt-get -f install -o Dpkg::Options::=”–force-overwrite”
apt-get remove mysql-client-core-5.5
apt-get dist-upgrade

Et là ça marche, MySQL est bien mis à jour par celui de Dotdeb.

";s:7:"content";s:1936:"

Allez, le petit article du mois.. Enfin, devrais-je dire le tip ? Sûrement, ce sera un article assez court :

Ce week-end, j'ai voulu mettre à jour mon serveur sous Squeeze en Wheezy, la dernière version stable de Debian.

Hop, on modifie le sources.list, on remplace squeeze par wheezy, et on lance nos commandes magiques :

apt-get update
apt-get ugprade
apt-get dist-upgrade

Mais l'upgrade renvoie cette erreur :

Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 23335 fichiers et répertoires déjà installés.)
Préparation du remplacement de mysql-client-5.5 5.5.31-1~dotdeb.0 (en utilisant .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Dépaquetage de la mise à jour de mysql-client-5.5 ...
dpkg : erreur de traitement de /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb (--unpack) :
 tentative de remplacement de « /usr/bin/mysqlcheck », qui appartient aussi au paquet mysql-client-core-5.5 5.5.31-1~dotdeb.0
configured to not write apport reports
                                      dpkg-deb: sous-processus coller tué par le signal (Relais brisé (pipe))
Des erreurs ont été rencontrées pendant l'exécution :
 /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

On dirait que mon serveur essaye d'écraser le paquet mysql-client-5.5 de Dotdeb par celui de Wheezy...

Une solution qui marche serait de virer totalement MySQL et de le réinstaller... Mouais, bof.

Je préfère cette solution :

apt-get -f install -o Dpkg::Options::=”–force-overwrite”
apt-get remove mysql-client-core-5.5
apt-get dist-upgrade

Et là ça marche, MySQL est bien mis à jour par celui de Dotdeb.

";s:7:"dateiso";s:15:"20130708_092500";}s:15:"20130612_134200";a:7:{s:5:"title";s:25:"Quelques tips sur Sqlite3";s:4:"link";s:82:"http://feedproxy.google.com/~r/Jeoffrey54/~3/0rayxfKs0t8/quelques-tips-sur-sqlite3";s:4:"guid";s:62:"http://www.jeoffrey54.com/article142/quelques-tips-sur-sqlite3";s:7:"pubDate";s:31:"Wed, 12 Jun 2013 11:42:00 +0000";s:11:"description";s:1355:"

Peu d'articles en ce moment, je n'ai pas grand chose à dire :(.

Voici néanmoins un petit mémo sur Sqlite3, des tips, et petits trucs que j'aimerais retrouver facilement :

Ce n'est pas un secret, une base Sqlite3 est stockée dans un fichier .db, et on y accède en console via la commande "sqlite3" suivie du fichier .db.

Lister les tables existantes :

Non, ce n'est pas comme MySQL, il n'y a pas de "SHOW TABLES" :

sqlite> show tables;
Error: near "show": syntax error

A la place, on utilise ".tables" :

sqlite> .tables
devel          logs_connexion  logs_recette    logs_base       servers       
sqlite> 

Afficher la structure d'une table :

Toujours pas de "SHOW ...", là on utilise ".schema" :

sqlite> .schema logs_recette
CREATE TABLE logs_recette (
id INTEGER PRIMARY KEY,
login TEXT,
repo TEXT,
branch TEXT,
date INTEGER
);

Importer un fichier CSV :

Pour importer un fichier CSV, on utilise la commande ".import" :

sqlite> .separator "|"
sqlite> .import /tmp/import.csv logs

Ici, je set mon séparateur à "|". Vous pouvez bien sûr utiliser tout autre caractère. Enfin, ".import" pour importer les données ;).

";s:7:"content";s:1355:"

Peu d'articles en ce moment, je n'ai pas grand chose à dire :(.

Voici néanmoins un petit mémo sur Sqlite3, des tips, et petits trucs que j'aimerais retrouver facilement :

Ce n'est pas un secret, une base Sqlite3 est stockée dans un fichier .db, et on y accède en console via la commande "sqlite3" suivie du fichier .db.

Lister les tables existantes :

Non, ce n'est pas comme MySQL, il n'y a pas de "SHOW TABLES" :

sqlite> show tables;
Error: near "show": syntax error

A la place, on utilise ".tables" :

sqlite> .tables
devel          logs_connexion  logs_recette    logs_base       servers       
sqlite> 

Afficher la structure d'une table :

Toujours pas de "SHOW ...", là on utilise ".schema" :

sqlite> .schema logs_recette
CREATE TABLE logs_recette (
id INTEGER PRIMARY KEY,
login TEXT,
repo TEXT,
branch TEXT,
date INTEGER
);

Importer un fichier CSV :

Pour importer un fichier CSV, on utilise la commande ".import" :

sqlite> .separator "|"
sqlite> .import /tmp/import.csv logs

Ici, je set mon séparateur à "|". Vous pouvez bien sûr utiliser tout autre caractère. Enfin, ".import" pour importer les données ;).

";s:7:"dateiso";s:15:"20130612_134200";}s:15:"20130612_114200";a:7:{s:5:"title";s:25:"Quelques tips sur Sqlite3";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/MT6troOoyk0/index.php";s:4:"guid";s:72:"http://www.jeoffrey54.com/index.php?article142/quelques-tips-sur-sqlite3";s:7:"pubDate";s:31:"Wed, 12 Jun 2013 11:42:00 +0200";s:11:"description";s:1362:"

Peu d'articles en ce moment, je n'ai pas grand chose à dire :(.

Voici néanmoins un petit mémo sur Sqlite3, des tips, et petits trucs que j'aimerais retrouver facilement :

Ce n'est pas un secret, une base Sqlite3 est stockée dans un fichier .db, et on y accède en console via la commande "sqlite3" suivie du fichier .db.

Lister les tables existantes :

Non, ce n'est pas comme MySQL, il n'y a pas de "SHOW TABLES" :

sqlite> show tables;
Error: near "show": syntax error

A la place, on utilise ".tables" :

sqlite> .tables
devel          logs_connexion  logs_recette    logs_base       servers       
sqlite> 

Afficher la structure d'une table :

Toujours pas de "SHOW ...", là on utilise ".schema" :

sqlite> .schema logs_recette
CREATE TABLE logs_recette (
id INTEGER PRIMARY KEY,
login TEXT,
repo TEXT,
branch TEXT,
date INTEGER
);

Importer un fichier CSV :

Pour importer un fichier CSV, on utilise la commande ".import" :

sqlite> .separator "|"
sqlite> .import /tmp/import.csv logs

Ici, je set mon séparateur à "|". Vous pouvez bien sûr utiliser tout autre caractère. Enfin, ".import" pour importer les données ;).

";s:7:"content";s:1362:"

Peu d'articles en ce moment, je n'ai pas grand chose à dire :(.

Voici néanmoins un petit mémo sur Sqlite3, des tips, et petits trucs que j'aimerais retrouver facilement :

Ce n'est pas un secret, une base Sqlite3 est stockée dans un fichier .db, et on y accède en console via la commande "sqlite3" suivie du fichier .db.

Lister les tables existantes :

Non, ce n'est pas comme MySQL, il n'y a pas de "SHOW TABLES" :

sqlite> show tables;
Error: near "show": syntax error

A la place, on utilise ".tables" :

sqlite> .tables
devel          logs_connexion  logs_recette    logs_base       servers       
sqlite> 

Afficher la structure d'une table :

Toujours pas de "SHOW ...", là on utilise ".schema" :

sqlite> .schema logs_recette
CREATE TABLE logs_recette (
id INTEGER PRIMARY KEY,
login TEXT,
repo TEXT,
branch TEXT,
date INTEGER
);

Importer un fichier CSV :

Pour importer un fichier CSV, on utilise la commande ".import" :

sqlite> .separator "|"
sqlite> .import /tmp/import.csv logs

Ici, je set mon séparateur à "|". Vous pouvez bien sûr utiliser tout autre caractère. Enfin, ".import" pour importer les données ;).

";s:7:"dateiso";s:15:"20130612_114200";}s:15:"20130427_233100";a:7:{s:5:"title";s:51:"Mini-clavier Bluetooth iClever Rii sur Raspberry Pi";s:4:"link";s:108:"http://feedproxy.google.com/~r/Jeoffrey54/~3/tl6ltfzqaJE/mini-clavier-bluetooth-iclever-rii-sur-raspberry-pi";s:4:"guid";s:88:"http://www.jeoffrey54.com/article139/mini-clavier-bluetooth-iclever-rii-sur-raspberry-pi";s:7:"pubDate";s:31:"Sat, 27 Apr 2013 21:31:00 +0000";s:11:"description";s:2194:"

Récemment, je me suis acheté un mini-clavier pour contrôller le futur XBMC de mon RaspberryPi... J'ai pris le iClever RII en version Bluetooth, parce que je le vaut bien :-)

Pour l'utiliser, rien de bien compliqué, on installe 3 paquets, on associe le clavier au Raspberry, et le tour est joué !

Allez, installons les paquets suivants via apt :

apt-get install bluetooth bluez-utils blueman

Cela étant fait, on branche notre dongle Bluetooth (fourni avec le mini-clavier), et on vérifie qu'il est bien là :

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Ce qui nous intéresse ici est la dernière ligne. Nous pouvons passer à l'étape suivante !

Appuyez maintenant sur la touche "Bluetooth" de votre clavier. Elle se trouve en haut à gauche. Maintenant, on essaye de trouver notre clavier :

hcitool scan

Si votre clavier s'affiche, notez bien son adresse MAC (ex AC:4F:48:78:A2:B3).

Maintenant, nous allons associer notre clavier au Raspberry Pi. La commande suivante va vous demander de saisir un code PIN. Saisissez "0000" puis entrée. Saissez ce même code sur votre clavier (à l'aveugle), puis entrée.

bluez-simple-agent hci0 AC:4F:48:78:A2:B3

Normalement, ça doit être bon. Il ne nous reste plus qu'à valider définitivement notre clavier via les 2 commandes suivantes :

bluez-test-device trusted AC:4F:48:78:A2:B3 yes
bluez-test-input connect AC:4F:48:78:A2:B3

Testez, votre clavier est maintenant fonctionnel. Bonne utilisation !

";s:7:"content";s:2197:"

Récemment, je me suis acheté un mini-clavier pour contrôller le futur XBMC de mon RaspberryPi... J'ai pris le iClever RII en version Bluetooth, parce que je le vaut bien :-)

Pour l'utiliser, rien de bien compliqué, on installe 3 paquets, on associe le clavier au Raspberry, et le tour est joué !

Allez, installons les paquets suivants via apt :

apt-get install bluetooth bluez-utils blueman

Cela étant fait, on branche notre dongle Bluetooth (fourni avec le mini-clavier), et on vérifie qu'il est bien là :

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Ce qui nous intéresse ici est la dernière ligne. Nous pouvons passer à l'étape suivante !

Appuyez maintenant sur la touche "Bluetooth" de votre clavier. Elle se trouve en haut à gauche. Maintenant, on essaye de trouver notre clavier :

hcitool scan

Si votre clavier s'affiche, notez bien son adresse MAC (ex AC:4F:48:78:A2:B3).

Maintenant, nous allons associer notre clavier au Raspberry Pi. La commande suivante va vous demander de saisir un code PIN. Saisissez "0000" puis entrée. Saissez ce même code sur votre clavier (à l'aveugle), puis entrée.

bluez-simple-agent hci0 AC:4F:48:78:A2:B3

Normalement, ça doit être bon. Il ne nous reste plus qu'à valider définitivement notre clavier via les 2 commandes suivantes :

bluez-test-device trusted AC:4F:48:78:A2:B3 yes
bluez-test-input connect AC:4F:48:78:A2:B3

Testez, votre clavier est maintenant fonctionnel. Bonne utilisation !

";s:7:"dateiso";s:15:"20130427_233100";}s:15:"20130427_213100";a:7:{s:5:"title";s:51:"Mini-clavier Bluetooth iClever Rii sur Raspberry Pi";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/ZzqB7s4GPno/index.php";s:4:"guid";s:98:"http://www.jeoffrey54.com/index.php?article139/mini-clavier-bluetooth-iclever-rii-sur-raspberry-pi";s:7:"pubDate";s:31:"Sat, 27 Apr 2013 21:31:00 +0200";s:11:"description";s:2201:"

Récemment, je me suis acheté un mini-clavier pour contrôller le futur XBMC de mon RaspberryPi... J'ai pris le iClever RII en version Bluetooth, parce que je le vaut bien :-)

Pour l'utiliser, rien de bien compliqué, on installe 3 paquets, on associe le clavier au Raspberry, et le tour est joué !

Allez, installons les paquets suivants via apt :

apt-get install bluetooth bluez-utils blueman

Cela étant fait, on branche notre dongle Bluetooth (fourni avec le mini-clavier), et on vérifie qu'il est bien là :

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Ce qui nous intéresse ici est la dernière ligne. Nous pouvons passer à l'étape suivante !

Appuyez maintenant sur la touche "Bluetooth" de votre clavier. Elle se trouve en haut à gauche. Maintenant, on essaye de trouver notre clavier :

hcitool scan

Si votre clavier s'affiche, notez bien son adresse MAC (ex AC:4F:48:78:A2:B3).

Maintenant, nous allons associer notre clavier au Raspberry Pi. La commande suivante va vous demander de saisir un code PIN. Saisissez "0000" puis entrée. Saissez ce même code sur votre clavier (à l'aveugle), puis entrée.

bluez-simple-agent hci0 AC:4F:48:78:A2:B3

Normalement, ça doit être bon. Il ne nous reste plus qu'à valider définitivement notre clavier via les 2 commandes suivantes :

bluez-test-device trusted AC:4F:48:78:A2:B3 yes
bluez-test-input connect AC:4F:48:78:A2:B3

Testez, votre clavier est maintenant fonctionnel. Bonne utilisation !

";s:7:"content";s:2204:"

Récemment, je me suis acheté un mini-clavier pour contrôller le futur XBMC de mon RaspberryPi... J'ai pris le iClever RII en version Bluetooth, parce que je le vaut bien :-)

Pour l'utiliser, rien de bien compliqué, on installe 3 paquets, on associe le clavier au Raspberry, et le tour est joué !

Allez, installons les paquets suivants via apt :

apt-get install bluetooth bluez-utils blueman

Cela étant fait, on branche notre dongle Bluetooth (fourni avec le mini-clavier), et on vérifie qu'il est bien là :

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Ce qui nous intéresse ici est la dernière ligne. Nous pouvons passer à l'étape suivante !

Appuyez maintenant sur la touche "Bluetooth" de votre clavier. Elle se trouve en haut à gauche. Maintenant, on essaye de trouver notre clavier :

hcitool scan

Si votre clavier s'affiche, notez bien son adresse MAC (ex AC:4F:48:78:A2:B3).

Maintenant, nous allons associer notre clavier au Raspberry Pi. La commande suivante va vous demander de saisir un code PIN. Saisissez "0000" puis entrée. Saissez ce même code sur votre clavier (à l'aveugle), puis entrée.

bluez-simple-agent hci0 AC:4F:48:78:A2:B3

Normalement, ça doit être bon. Il ne nous reste plus qu'à valider définitivement notre clavier via les 2 commandes suivantes :

bluez-test-device trusted AC:4F:48:78:A2:B3 yes
bluez-test-input connect AC:4F:48:78:A2:B3

Testez, votre clavier est maintenant fonctionnel. Bonne utilisation !

";s:7:"dateiso";s:15:"20130427_213100";}s:15:"20130404_213600";a:7:{s:5:"title";s:42:"Mettre à jour Iceweasel sur Debian Wheezy";s:4:"link";s:98:"http://feedproxy.google.com/~r/Jeoffrey54/~3/szJTrHxdwDM/mettre-a-jour-iceweasel-sur-debian-wheezy";s:4:"guid";s:78:"http://www.jeoffrey54.com/article137/mettre-a-jour-iceweasel-sur-debian-wheezy";s:7:"pubDate";s:31:"Thu, 04 Apr 2013 19:36:00 +0000";s:11:"description";s:1141:"

Ça faisait un petit moment que je n'avais rien publié ici ! Pour cause, je n'avais rien de réellement concret à vous dire ! En revanche, je viens d'installer Debian Wheezy sur mon Zenbook, et je constate avec amertume (c'es le mot) que je bénéficie d'Iceweasel 10...

Pour avoir la dernière version d'Iceweasel (la 20.0, qui est sortie il y a quelques jours), voici ce que j'ai fait.

Éditez votre fichier /etc/apt/sources.list et ajoutez-y cette ligne :

deb http://ftp.fr.debian.org/debian experimental main

Et on installe notre version expérimentale :

apt-get update ; apt-get install -t experimental iceweasel

Et là, surprise, vous bénéficiez d'Iceweasel 20 !

Notez bien qu'en cas de dist-upgrade (apt-get dist-upgrade), vous passerez tout votre système en experimental. Pour plus de sécurité, une fois qu'Iceweasel est bien mis à jour, vous pouvez commenter la ligne dans /etc/apt/sources.list ;).

Source

.";s:7:"content";s:1141:"

Ça faisait un petit moment que je n'avais rien publié ici ! Pour cause, je n'avais rien de réellement concret à vous dire ! En revanche, je viens d'installer Debian Wheezy sur mon Zenbook, et je constate avec amertume (c'es le mot) que je bénéficie d'Iceweasel 10...

Pour avoir la dernière version d'Iceweasel (la 20.0, qui est sortie il y a quelques jours), voici ce que j'ai fait.

Éditez votre fichier /etc/apt/sources.list et ajoutez-y cette ligne :

deb http://ftp.fr.debian.org/debian experimental main

Et on installe notre version expérimentale :

apt-get update ; apt-get install -t experimental iceweasel

Et là, surprise, vous bénéficiez d'Iceweasel 20 !

Notez bien qu'en cas de dist-upgrade (apt-get dist-upgrade), vous passerez tout votre système en experimental. Pour plus de sécurité, une fois qu'Iceweasel est bien mis à jour, vous pouvez commenter la ligne dans /etc/apt/sources.list ;).

Source

.";s:7:"dateiso";s:15:"20130404_213600";}s:15:"20130404_193600";a:7:{s:5:"title";s:42:"Mettre à jour Iceweasel sur Debian Wheezy";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/d-pegJFLEK4/index.php";s:4:"guid";s:88:"http://www.jeoffrey54.com/index.php?article137/mettre-a-jour-iceweasel-sur-debian-wheezy";s:7:"pubDate";s:31:"Thu, 04 Apr 2013 19:36:00 +0200";s:11:"description";s:1148:"

Ça faisait un petit moment que je n'avais rien publié ici ! Pour cause, je n'avais rien de réellement concret à vous dire ! En revanche, je viens d'installer Debian Wheezy sur mon Zenbook, et je constate avec amertume (c'es le mot) que je bénéficie d'Iceweasel 10...

Pour avoir la dernière version d'Iceweasel (la 20.0, qui est sortie il y a quelques jours), voici ce que j'ai fait.

Éditez votre fichier /etc/apt/sources.list et ajoutez-y cette ligne :

deb http://ftp.fr.debian.org/debian experimental main

Et on installe notre version expérimentale :

apt-get update ; apt-get install -t experimental iceweasel

Et là, surprise, vous bénéficiez d'Iceweasel 20 !

Notez bien qu'en cas de dist-upgrade (apt-get dist-upgrade), vous passerez tout votre système en experimental. Pour plus de sécurité, une fois qu'Iceweasel est bien mis à jour, vous pouvez commenter la ligne dans /etc/apt/sources.list ;).

Source

.";s:7:"content";s:1148:"

Ça faisait un petit moment que je n'avais rien publié ici ! Pour cause, je n'avais rien de réellement concret à vous dire ! En revanche, je viens d'installer Debian Wheezy sur mon Zenbook, et je constate avec amertume (c'es le mot) que je bénéficie d'Iceweasel 10...

Pour avoir la dernière version d'Iceweasel (la 20.0, qui est sortie il y a quelques jours), voici ce que j'ai fait.

Éditez votre fichier /etc/apt/sources.list et ajoutez-y cette ligne :

deb http://ftp.fr.debian.org/debian experimental main

Et on installe notre version expérimentale :

apt-get update ; apt-get install -t experimental iceweasel

Et là, surprise, vous bénéficiez d'Iceweasel 20 !

Notez bien qu'en cas de dist-upgrade (apt-get dist-upgrade), vous passerez tout votre système en experimental. Pour plus de sécurité, une fois qu'Iceweasel est bien mis à jour, vous pouvez commenter la ligne dans /etc/apt/sources.list ;).

Source

.";s:7:"dateiso";s:15:"20130404_193600";}s:15:"20130215_161600";a:7:{s:5:"title";s:46:"MySQL : Compter le nombre de tables d'une base";s:4:"link";s:101:"http://feedproxy.google.com/~r/Jeoffrey54/~3/I_sinSqlBWI/mysql-compter-le-nombre-de-tables-d-une-base";s:4:"guid";s:81:"http://www.jeoffrey54.com/article136/mysql-compter-le-nombre-de-tables-d-une-base";s:7:"pubDate";s:31:"Fri, 15 Feb 2013 15:16:00 +0000";s:11:"description";s:1182:"

Récemment, j'ai eu besoin d'afficher le nombre de tables d'une base MySQL 5.X. Je voulais éviter de faire du Bash à outrance et extraire la donnée directement depuis MySQL... Même si le Bash, c'est bon, mangez-en.

Allez, on commence par la requête :

SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';
mysql> SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal_4';
+-------------------+
| count(table_name) |
+-------------------+
|               143 |
+-------------------+
1 row in set (0.00 sec)

Maintenant, l'idée est d'obtenir l'information directement en Bash :

mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1

Résultat :

usr@srvmysql # mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1
143

Voilà !

";s:7:"content";s:1182:"

Récemment, j'ai eu besoin d'afficher le nombre de tables d'une base MySQL 5.X. Je voulais éviter de faire du Bash à outrance et extraire la donnée directement depuis MySQL... Même si le Bash, c'est bon, mangez-en.

Allez, on commence par la requête :

SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';
mysql> SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal_4';
+-------------------+
| count(table_name) |
+-------------------+
|               143 |
+-------------------+
1 row in set (0.00 sec)

Maintenant, l'idée est d'obtenir l'information directement en Bash :

mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1

Résultat :

usr@srvmysql # mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1
143

Voilà !

";s:7:"dateiso";s:15:"20130215_161600";}s:15:"20130215_151600";a:7:{s:5:"title";s:46:"MySQL : Compter le nombre de tables d'une base";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/ZWd4yual6RQ/index.php";s:4:"guid";s:91:"http://www.jeoffrey54.com/index.php?article136/mysql-compter-le-nombre-de-tables-d-une-base";s:7:"pubDate";s:31:"Fri, 15 Feb 2013 15:16:00 +0100";s:11:"description";s:1189:"

Récemment, j'ai eu besoin d'afficher le nombre de tables d'une base MySQL 5.X. Je voulais éviter de faire du Bash à outrance et extraire la donnée directement depuis MySQL... Même si le Bash, c'est bon, mangez-en.

Allez, on commence par la requête :

SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';
mysql> SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal_4';
+-------------------+
| count(table_name) |
+-------------------+
|               143 |
+-------------------+
1 row in set (0.00 sec)

Maintenant, l'idée est d'obtenir l'information directement en Bash :

mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1

Résultat :

usr@srvmysql # mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1
143

Voilà !

";s:7:"content";s:1189:"

Récemment, j'ai eu besoin d'afficher le nombre de tables d'une base MySQL 5.X. Je voulais éviter de faire du Bash à outrance et extraire la donnée directement depuis MySQL... Même si le Bash, c'est bon, mangez-en.

Allez, on commence par la requête :

SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';
mysql> SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal_4';
+-------------------+
| count(table_name) |
+-------------------+
|               143 |
+-------------------+
1 row in set (0.00 sec)

Maintenant, l'idée est d'obtenir l'information directement en Bash :

mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1

Résultat :

usr@srvmysql # mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1
143

Voilà !

";s:7:"dateiso";s:15:"20130215_151600";}s:15:"20130116_133000";a:7:{s:5:"title";s:29:"Alias.sh : Partagez vos alias";s:4:"link";s:84:"http://feedproxy.google.com/~r/Jeoffrey54/~3/xd1JeJwzFME/alias-sh-partagez-vos-alias";s:4:"guid";s:64:"http://www.jeoffrey54.com/article135/alias-sh-partagez-vos-alias";s:7:"pubDate";s:31:"Wed, 16 Jan 2013 12:30:00 +0000";s:11:"description";s:1932:"

Levez la main si vous vous reconnaissez : vous avez sur votre laptop une quantité faramineuse d'alias Linux, qui facilitent grandement votre douce vie au sein de votre terminal favori. Seulement voilà, sauvegarder son fichier .bash_aliases, c'est lourd, et peu pratique. Pire, vous vous retrouvez sur votre PC de boulot, et là, plus aucun alias.

Moi moi moi

Voici un service Web que je viens de découvrir, qui se nomme Alias.sh. Ce service, comme son nom l'indique est une plateforme de partage et de synchronisation d'alias de commandes !

Alias.sh

Pour l'instant, il n'y a pas énormément d'alias, mais ça grimpe vite ! Et chose pratique, vous pouvez ajouter les vôtres, les synchroniser, et découvrir ceux des autres utilisateurs. Par exemple, mes alias sont disponibles à cette adresse.

Une fois inscrit sur le site, vous pourrez récupérer vos alias en local via cette commande :

wget -q -O - "$@" https://alias.sh/user/415/alias >> ~/.bash_aliases

415 étant mon ID utilisateur ;).

Voici également un alias permettant de mettre à jour votre fichier d'alias :

alias update-aliases="wget -q -O - \"$@\" https://alias.sh/user/$ALIAS_SH_USER_ID/alias > ~/.bash_aliases && source ~/.bash_aliases"

N'oubliez pas de modifier votre fichier .bashrc en y ajoutant cette ligne :

ALIAS_SH_USER_ID=415

Bref, un petit service bien pratique ! N'hésitez pas à partager vos alias !

";s:7:"content";s:1938:"

Levez la main si vous vous reconnaissez : vous avez sur votre laptop une quantité faramineuse d'alias Linux, qui facilitent grandement votre douce vie au sein de votre terminal favori. Seulement voilà, sauvegarder son fichier .bash_aliases, c'est lourd, et peu pratique. Pire, vous vous retrouvez sur votre PC de boulot, et là, plus aucun alias.

Moi moi moi

Voici un service Web que je viens de découvrir, qui se nomme Alias.sh. Ce service, comme son nom l'indique est une plateforme de partage et de synchronisation d'alias de commandes !

Alias.sh

Pour l'instant, il n'y a pas énormément d'alias, mais ça grimpe vite ! Et chose pratique, vous pouvez ajouter les vôtres, les synchroniser, et découvrir ceux des autres utilisateurs. Par exemple, mes alias sont disponibles à cette adresse.

Une fois inscrit sur le site, vous pourrez récupérer vos alias en local via cette commande :

wget -q -O - "$@" https://alias.sh/user/415/alias >> ~/.bash_aliases

415 étant mon ID utilisateur ;).

Voici également un alias permettant de mettre à jour votre fichier d'alias :

alias update-aliases="wget -q -O - \"$@\" https://alias.sh/user/$ALIAS_SH_USER_ID/alias > ~/.bash_aliases && source ~/.bash_aliases"

N'oubliez pas de modifier votre fichier .bashrc en y ajoutant cette ligne :

ALIAS_SH_USER_ID=415

Bref, un petit service bien pratique ! N'hésitez pas à partager vos alias !

";s:7:"dateiso";s:15:"20130116_133000";}s:15:"20130116_123000";a:7:{s:5:"title";s:29:"Alias.sh : Partagez vos alias";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/wKOrojh1SAc/index.php";s:4:"guid";s:74:"http://www.jeoffrey54.com/index.php?article135/alias-sh-partagez-vos-alias";s:7:"pubDate";s:31:"Wed, 16 Jan 2013 12:30:00 +0100";s:11:"description";s:1939:"

Levez la main si vous vous reconnaissez : vous avez sur votre laptop une quantité faramineuse d'alias Linux, qui facilitent grandement votre douce vie au sein de votre terminal favori. Seulement voilà, sauvegarder son fichier .bash_aliases, c'est lourd, et peu pratique. Pire, vous vous retrouvez sur votre PC de boulot, et là, plus aucun alias.

Moi moi moi

Voici un service Web que je viens de découvrir, qui se nomme Alias.sh. Ce service, comme son nom l'indique est une plateforme de partage et de synchronisation d'alias de commandes !

Alias.sh

Pour l'instant, il n'y a pas énormément d'alias, mais ça grimpe vite ! Et chose pratique, vous pouvez ajouter les vôtres, les synchroniser, et découvrir ceux des autres utilisateurs. Par exemple, mes alias sont disponibles à cette adresse.

Une fois inscrit sur le site, vous pourrez récupérer vos alias en local via cette commande :

wget -q -O - "$@" https://alias.sh/user/415/alias >> ~/.bash_aliases

415 étant mon ID utilisateur ;).

Voici également un alias permettant de mettre à jour votre fichier d'alias :

alias update-aliases="wget -q -O - \"$@\" https://alias.sh/user/$ALIAS_SH_USER_ID/alias > ~/.bash_aliases && source ~/.bash_aliases"

N'oubliez pas de modifier votre fichier .bashrc en y ajoutant cette ligne :

ALIAS_SH_USER_ID=415

Bref, un petit service bien pratique ! N'hésitez pas à partager vos alias !

";s:7:"content";s:1945:"

Levez la main si vous vous reconnaissez : vous avez sur votre laptop une quantité faramineuse d'alias Linux, qui facilitent grandement votre douce vie au sein de votre terminal favori. Seulement voilà, sauvegarder son fichier .bash_aliases, c'est lourd, et peu pratique. Pire, vous vous retrouvez sur votre PC de boulot, et là, plus aucun alias.

Moi moi moi

Voici un service Web que je viens de découvrir, qui se nomme Alias.sh. Ce service, comme son nom l'indique est une plateforme de partage et de synchronisation d'alias de commandes !

Alias.sh

Pour l'instant, il n'y a pas énormément d'alias, mais ça grimpe vite ! Et chose pratique, vous pouvez ajouter les vôtres, les synchroniser, et découvrir ceux des autres utilisateurs. Par exemple, mes alias sont disponibles à cette adresse.

Une fois inscrit sur le site, vous pourrez récupérer vos alias en local via cette commande :

wget -q -O - "$@" https://alias.sh/user/415/alias >> ~/.bash_aliases

415 étant mon ID utilisateur ;).

Voici également un alias permettant de mettre à jour votre fichier d'alias :

alias update-aliases="wget -q -O - \"$@\" https://alias.sh/user/$ALIAS_SH_USER_ID/alias > ~/.bash_aliases && source ~/.bash_aliases"

N'oubliez pas de modifier votre fichier .bashrc en y ajoutant cette ligne :

ALIAS_SH_USER_ID=415

Bref, un petit service bien pratique ! N'hésitez pas à partager vos alias !

";s:7:"dateiso";s:15:"20130116_123000";}s:15:"20121223_204000";a:7:{s:5:"title";s:40:"Systemd : exécuter une commande au boot";s:4:"link";s:94:"http://feedproxy.google.com/~r/Jeoffrey54/~3/dhIvzErwotM/systemd-executer-une-commande-au-boot";s:4:"guid";s:74:"http://www.jeoffrey54.com/article134/systemd-executer-une-commande-au-boot";s:7:"pubDate";s:31:"Sun, 23 Dec 2012 19:40:00 +0000";s:11:"description";s:757:"

Ayant récemment passé à Systemd, je n'en suis pas pour autant plus convaincu... Systemd semble plus complexe à gérer, mais passons. Je cherchais à le moyen de lancer un script au démarrage. Croyez-moi, c'est un peu plus compliqué avec Systemd qu'avec l'ancien système init !

Nous allons utiliser les scripts "rc", gràce au paquet "initscripts-systemd" :

yaourt initscripts-systemd

Une fois le paquet installé, utilisez le fichier /etc/rc.local et placez-y les commandes à exécuter au boot :).

De même, utilisez /etc/rc.local.shutdown pour exécuter des commandes pendant la séquence d'arrêt ;).

";s:7:"content";s:757:"

Ayant récemment passé à Systemd, je n'en suis pas pour autant plus convaincu... Systemd semble plus complexe à gérer, mais passons. Je cherchais à le moyen de lancer un script au démarrage. Croyez-moi, c'est un peu plus compliqué avec Systemd qu'avec l'ancien système init !

Nous allons utiliser les scripts "rc", gràce au paquet "initscripts-systemd" :

yaourt initscripts-systemd

Une fois le paquet installé, utilisez le fichier /etc/rc.local et placez-y les commandes à exécuter au boot :).

De même, utilisez /etc/rc.local.shutdown pour exécuter des commandes pendant la séquence d'arrêt ;).

";s:7:"dateiso";s:15:"20121223_204000";}s:15:"20121223_194000";a:7:{s:5:"title";s:40:"Systemd : exécuter une commande au boot";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/5yCQsWpcLo0/index.php";s:4:"guid";s:84:"http://www.jeoffrey54.com/index.php?article134/systemd-executer-une-commande-au-boot";s:7:"pubDate";s:31:"Sun, 23 Dec 2012 19:40:00 +0100";s:11:"description";s:764:"

Ayant récemment passé à Systemd, je n'en suis pas pour autant plus convaincu... Systemd semble plus complexe à gérer, mais passons. Je cherchais à le moyen de lancer un script au démarrage. Croyez-moi, c'est un peu plus compliqué avec Systemd qu'avec l'ancien système init !

Nous allons utiliser les scripts "rc", gràce au paquet "initscripts-systemd" :

yaourt initscripts-systemd

Une fois le paquet installé, utilisez le fichier /etc/rc.local et placez-y les commandes à exécuter au boot :).

De même, utilisez /etc/rc.local.shutdown pour exécuter des commandes pendant la séquence d'arrêt ;).

";s:7:"content";s:764:"

Ayant récemment passé à Systemd, je n'en suis pas pour autant plus convaincu... Systemd semble plus complexe à gérer, mais passons. Je cherchais à le moyen de lancer un script au démarrage. Croyez-moi, c'est un peu plus compliqué avec Systemd qu'avec l'ancien système init !

Nous allons utiliser les scripts "rc", gràce au paquet "initscripts-systemd" :

yaourt initscripts-systemd

Une fois le paquet installé, utilisez le fichier /etc/rc.local et placez-y les commandes à exécuter au boot :).

De même, utilisez /etc/rc.local.shutdown pour exécuter des commandes pendant la séquence d'arrêt ;).

";s:7:"dateiso";s:15:"20121223_194000";}s:15:"20121220_131500";a:7:{s:5:"title";s:44:"Autoriser le SSH en root depuis une seule IP";s:4:"link";s:101:"http://feedproxy.google.com/~r/Jeoffrey54/~3/uCkSRJ_1lHw/autoriser-le-ssh-en-root-depuis-une-seule-ip";s:4:"guid";s:81:"http://www.jeoffrey54.com/article133/autoriser-le-ssh-en-root-depuis-une-seule-ip";s:7:"pubDate";s:31:"Thu, 20 Dec 2012 12:15:00 +0000";s:11:"description";s:1142:"

Une directive intéressante de SSH est "Match", qui permet de faire des sortes de conditions... Dans mon cas, j'avais besoin d'autoriser la connexion en root uniquement depuis une IP... Allons jouer avec la configuration d'OpenSSH...

Éditez /etc/ssh/sshd_config :

À la fin, ajoutez ce bloc :

Match Address 192.168.2.45
	PermitRootLogin yes

Match Address *
	PermitRootLogin no

Que fait ce bloc : si on notre connexion SSH vient de l'IP 192.168.2.45, on pourra se connecter en root (à condition d'avoir le mot de passe, ou d'y avoir paramétré sa clé SSH). Par contre, si on vient de toute autre adresse, pas de connexion en tant que root...

Hop, restart d'OpenSSH, et on teste :

/etc/init.d/ssh restart
[192.168.0.1] jeoffrey@arch ~ $ ssh root@mail
root@srvdev1.mind-lab.eu's password: 
Permission denied, please try again.

[192.168.2.45] jeoffrey@ubu ~ $ ssh root@mail
root@mail's password: 
Last login: Thu Dec 20 09:46:51 2012 from ubu
root@mail ~ # logout
";s:7:"content";s:1142:"

Une directive intéressante de SSH est "Match", qui permet de faire des sortes de conditions... Dans mon cas, j'avais besoin d'autoriser la connexion en root uniquement depuis une IP... Allons jouer avec la configuration d'OpenSSH...

Éditez /etc/ssh/sshd_config :

À la fin, ajoutez ce bloc :

Match Address 192.168.2.45
	PermitRootLogin yes

Match Address *
	PermitRootLogin no

Que fait ce bloc : si on notre connexion SSH vient de l'IP 192.168.2.45, on pourra se connecter en root (à condition d'avoir le mot de passe, ou d'y avoir paramétré sa clé SSH). Par contre, si on vient de toute autre adresse, pas de connexion en tant que root...

Hop, restart d'OpenSSH, et on teste :

/etc/init.d/ssh restart
[192.168.0.1] jeoffrey@arch ~ $ ssh root@mail
root@srvdev1.mind-lab.eu's password: 
Permission denied, please try again.

[192.168.2.45] jeoffrey@ubu ~ $ ssh root@mail
root@mail's password: 
Last login: Thu Dec 20 09:46:51 2012 from ubu
root@mail ~ # logout
";s:7:"dateiso";s:15:"20121220_131500";}s:15:"20121220_121500";a:7:{s:5:"title";s:44:"Autoriser le SSH en root depuis une seule IP";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/CG6Qj97tmvU/index.php";s:4:"guid";s:91:"http://www.jeoffrey54.com/index.php?article133/autoriser-le-ssh-en-root-depuis-une-seule-ip";s:7:"pubDate";s:31:"Thu, 20 Dec 2012 12:15:00 +0100";s:11:"description";s:1149:"

Une directive intéressante de SSH est "Match", qui permet de faire des sortes de conditions... Dans mon cas, j'avais besoin d'autoriser la connexion en root uniquement depuis une IP... Allons jouer avec la configuration d'OpenSSH...

Éditez /etc/ssh/sshd_config :

À la fin, ajoutez ce bloc :

Match Address 192.168.2.45
	PermitRootLogin yes

Match Address *
	PermitRootLogin no

Que fait ce bloc : si on notre connexion SSH vient de l'IP 192.168.2.45, on pourra se connecter en root (à condition d'avoir le mot de passe, ou d'y avoir paramétré sa clé SSH). Par contre, si on vient de toute autre adresse, pas de connexion en tant que root...

Hop, restart d'OpenSSH, et on teste :

/etc/init.d/ssh restart
[192.168.0.1] jeoffrey@arch ~ $ ssh root@mail
root@srvdev1.mind-lab.eu's password: 
Permission denied, please try again.

[192.168.2.45] jeoffrey@ubu ~ $ ssh root@mail
root@mail's password: 
Last login: Thu Dec 20 09:46:51 2012 from ubu
root@mail ~ # logout
";s:7:"content";s:1149:"

Une directive intéressante de SSH est "Match", qui permet de faire des sortes de conditions... Dans mon cas, j'avais besoin d'autoriser la connexion en root uniquement depuis une IP... Allons jouer avec la configuration d'OpenSSH...

Éditez /etc/ssh/sshd_config :

À la fin, ajoutez ce bloc :

Match Address 192.168.2.45
	PermitRootLogin yes

Match Address *
	PermitRootLogin no

Que fait ce bloc : si on notre connexion SSH vient de l'IP 192.168.2.45, on pourra se connecter en root (à condition d'avoir le mot de passe, ou d'y avoir paramétré sa clé SSH). Par contre, si on vient de toute autre adresse, pas de connexion en tant que root...

Hop, restart d'OpenSSH, et on teste :

/etc/init.d/ssh restart
[192.168.0.1] jeoffrey@arch ~ $ ssh root@mail
root@srvdev1.mind-lab.eu's password: 
Permission denied, please try again.

[192.168.2.45] jeoffrey@ubu ~ $ ssh root@mail
root@mail's password: 
Last login: Thu Dec 20 09:46:51 2012 from ubu
root@mail ~ # logout
";s:7:"dateiso";s:15:"20121220_121500";}s:15:"20121122_143300";a:7:{s:5:"title";s:52:"SwiftKey 3 : réinstallation sur le Galaxy Nexus 4.2";s:4:"link";s:106:"http://feedproxy.google.com/~r/Jeoffrey54/~3/cn7Ap1P6L8U/swiftkey-3-reinstallation-sur-le-galaxy-nexus-4-2";s:4:"guid";s:86:"http://www.jeoffrey54.com/article131/swiftkey-3-reinstallation-sur-le-galaxy-nexus-4-2";s:7:"pubDate";s:31:"Thu, 22 Nov 2012 13:33:00 +0000";s:11:"description";s:1606:"

Hier, j'ai eu droit à la mise à jour vers Android 4.2 pour mon Galaxy Nexus. Install, reboot, vérification des applications, tout fonctionnait. C'est à ce moment que je me suis rendu compte que SwiftKey 3, ce formidable clavier intuitif avait été désinstallé de mon téléphone...

SwiftKey Logo

Rapidement, je me rends sur le Google Play, et je constate qu'il m'est impossible d'installer l'application... Apparemment, c'est un problème connu chez SwiftKey, mais qui ne serait pas spécifique à eux puisque d'autres applications rencontreraient le même problème...

Voici la bonne méthode pour réinstaller votre application :

";s:7:"content";s:1609:"

Hier, j'ai eu droit à la mise à jour vers Android 4.2 pour mon Galaxy Nexus. Install, reboot, vérification des applications, tout fonctionnait. C'est à ce moment que je me suis rendu compte que SwiftKey 3, ce formidable clavier intuitif avait été désinstallé de mon téléphone...

SwiftKey Logo

Rapidement, je me rends sur le Google Play, et je constate qu'il m'est impossible d'installer l'application... Apparemment, c'est un problème connu chez SwiftKey, mais qui ne serait pas spécifique à eux puisque d'autres applications rencontreraient le même problème...

Voici la bonne méthode pour réinstaller votre application :

";s:7:"dateiso";s:15:"20121122_143300";}s:15:"20121122_133300";a:7:{s:5:"title";s:52:"SwiftKey 3 : réinstallation sur le Galaxy Nexus 4.2";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/VJEGKSncSMo/index.php";s:4:"guid";s:96:"http://www.jeoffrey54.com/index.php?article131/swiftkey-3-reinstallation-sur-le-galaxy-nexus-4-2";s:7:"pubDate";s:31:"Thu, 22 Nov 2012 13:33:00 +0100";s:11:"description";s:1613:"

Hier, j'ai eu droit à la mise à jour vers Android 4.2 pour mon Galaxy Nexus. Install, reboot, vérification des applications, tout fonctionnait. C'est à ce moment que je me suis rendu compte que SwiftKey 3, ce formidable clavier intuitif avait été désinstallé de mon téléphone...

SwiftKey Logo

Rapidement, je me rends sur le Google Play, et je constate qu'il m'est impossible d'installer l'application... Apparemment, c'est un problème connu chez SwiftKey, mais qui ne serait pas spécifique à eux puisque d'autres applications rencontreraient le même problème...

Voici la bonne méthode pour réinstaller votre application :

";s:7:"content";s:1616:"

Hier, j'ai eu droit à la mise à jour vers Android 4.2 pour mon Galaxy Nexus. Install, reboot, vérification des applications, tout fonctionnait. C'est à ce moment que je me suis rendu compte que SwiftKey 3, ce formidable clavier intuitif avait été désinstallé de mon téléphone...

SwiftKey Logo

Rapidement, je me rends sur le Google Play, et je constate qu'il m'est impossible d'installer l'application... Apparemment, c'est un problème connu chez SwiftKey, mais qui ne serait pas spécifique à eux puisque d'autres applications rencontreraient le même problème...

Voici la bonne méthode pour réinstaller votre application :

";s:7:"dateiso";s:15:"20121122_133300";}s:15:"20121119_175000";a:7:{s:5:"title";s:38:"[Debian] Authentification SSH via LDAP";s:4:"link";s:93:"http://feedproxy.google.com/~r/Jeoffrey54/~3/yh8_UQHfaa0/debian-authentification-ssh-via-ldap";s:4:"guid";s:73:"http://www.jeoffrey54.com/article130/debian-authentification-ssh-via-ldap";s:7:"pubDate";s:31:"Mon, 19 Nov 2012 16:50:00 +0000";s:11:"description";s:2055:"

Voici un rapide article pour vous expliquer comment s'authentifier sur vos machines Linux à travers votre serveurs LDAP...

Pour cet article, j'ai utilisé le paquet "slapd" de Squeeze, à savoir la version 2.4.23-7.2 qui est actuellement dans les dépôts. Pour ma part, j'ai installé cet environnement en local seulement, ne soyez donc pas étonnés de retrouver une adresse en .lan...

Commençons par installer le paquet suivant :

apt-get install libpam-ldapd

Voici ce qu'il faut répondre aux questions (à adapter en fonction de votre serveur bien sûr) :

URI du serveur LDAP : ldap://infra.dom.lan

Base de recherche du serveur LDAP : dc=dom, dc=lan

Services de nom à configurer : Pour ma part, j'ai coché group, hosts, et shadown pour synchroniser les utilisateurs, leurs mots de passe et les groupes. Si vous voulez reconfigurer cette partie plus part, éditez le fichier /etc/nsswitch.conf

Normalement c'est bon, vous devriez pouvoir vous authentifier avec votre utilisateur LDAP ;).

Si vous voulez que le home paramétré dans votre LDAP soit créé lors de la 1ère connexion de votre utilisateur, ajoutez cette ligne au fichier /etc/pam.d/common-session :

session required	pam_mkhomedir.so skel=/etc/skel umask=0022

Pour autoriser la connexion seulement si l'utilisateur appartient à un certain groupe, dans le fichier /etc/pam.d/common-auth, décommentez la ligne suivante :

auth	required			pam_access.so

Et ajoutez cette ligne au fichier /etc/security/access.conf :

-:ALL EXCEPT root usersallowed:ALL EXCEPT LOCAL

usersallowed est le groupe LDAP que vous souhaitez autoriser uniquement ;).

Pour relancer le cache LDAP sur le client, relancez le démon nscd : /etc/init.d/nscd restart.

";s:7:"content";s:2055:"

Voici un rapide article pour vous expliquer comment s'authentifier sur vos machines Linux à travers votre serveurs LDAP...

Pour cet article, j'ai utilisé le paquet "slapd" de Squeeze, à savoir la version 2.4.23-7.2 qui est actuellement dans les dépôts. Pour ma part, j'ai installé cet environnement en local seulement, ne soyez donc pas étonnés de retrouver une adresse en .lan...

Commençons par installer le paquet suivant :

apt-get install libpam-ldapd

Voici ce qu'il faut répondre aux questions (à adapter en fonction de votre serveur bien sûr) :

URI du serveur LDAP : ldap://infra.dom.lan

Base de recherche du serveur LDAP : dc=dom, dc=lan

Services de nom à configurer : Pour ma part, j'ai coché group, hosts, et shadown pour synchroniser les utilisateurs, leurs mots de passe et les groupes. Si vous voulez reconfigurer cette partie plus part, éditez le fichier /etc/nsswitch.conf

Normalement c'est bon, vous devriez pouvoir vous authentifier avec votre utilisateur LDAP ;).

Si vous voulez que le home paramétré dans votre LDAP soit créé lors de la 1ère connexion de votre utilisateur, ajoutez cette ligne au fichier /etc/pam.d/common-session :

session required	pam_mkhomedir.so skel=/etc/skel umask=0022

Pour autoriser la connexion seulement si l'utilisateur appartient à un certain groupe, dans le fichier /etc/pam.d/common-auth, décommentez la ligne suivante :

auth	required			pam_access.so

Et ajoutez cette ligne au fichier /etc/security/access.conf :

-:ALL EXCEPT root usersallowed:ALL EXCEPT LOCAL

usersallowed est le groupe LDAP que vous souhaitez autoriser uniquement ;).

Pour relancer le cache LDAP sur le client, relancez le démon nscd : /etc/init.d/nscd restart.

";s:7:"dateiso";s:15:"20121119_175000";}s:15:"20121119_165000";a:7:{s:5:"title";s:38:"[Debian] Authentification SSH via LDAP";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/2QBYzsDKUJo/index.php";s:4:"guid";s:83:"http://www.jeoffrey54.com/index.php?article130/debian-authentification-ssh-via-ldap";s:7:"pubDate";s:31:"Mon, 19 Nov 2012 16:50:00 +0100";s:11:"description";s:2062:"

Voici un rapide article pour vous expliquer comment s'authentifier sur vos machines Linux à travers votre serveurs LDAP...

Pour cet article, j'ai utilisé le paquet "slapd" de Squeeze, à savoir la version 2.4.23-7.2 qui est actuellement dans les dépôts. Pour ma part, j'ai installé cet environnement en local seulement, ne soyez donc pas étonnés de retrouver une adresse en .lan...

Commençons par installer le paquet suivant :

apt-get install libpam-ldapd

Voici ce qu'il faut répondre aux questions (à adapter en fonction de votre serveur bien sûr) :

URI du serveur LDAP : ldap://infra.dom.lan

Base de recherche du serveur LDAP : dc=dom, dc=lan

Services de nom à configurer : Pour ma part, j'ai coché group, hosts, et shadown pour synchroniser les utilisateurs, leurs mots de passe et les groupes. Si vous voulez reconfigurer cette partie plus part, éditez le fichier /etc/nsswitch.conf

Normalement c'est bon, vous devriez pouvoir vous authentifier avec votre utilisateur LDAP ;).

Si vous voulez que le home paramétré dans votre LDAP soit créé lors de la 1ère connexion de votre utilisateur, ajoutez cette ligne au fichier /etc/pam.d/common-session :

session required	pam_mkhomedir.so skel=/etc/skel umask=0022

Pour autoriser la connexion seulement si l'utilisateur appartient à un certain groupe, dans le fichier /etc/pam.d/common-auth, décommentez la ligne suivante :

auth	required			pam_access.so

Et ajoutez cette ligne au fichier /etc/security/access.conf :

-:ALL EXCEPT root usersallowed:ALL EXCEPT LOCAL

usersallowed est le groupe LDAP que vous souhaitez autoriser uniquement ;).

Pour relancer le cache LDAP sur le client, relancez le démon nscd : /etc/init.d/nscd restart.

";s:7:"content";s:2062:"

Voici un rapide article pour vous expliquer comment s'authentifier sur vos machines Linux à travers votre serveurs LDAP...

Pour cet article, j'ai utilisé le paquet "slapd" de Squeeze, à savoir la version 2.4.23-7.2 qui est actuellement dans les dépôts. Pour ma part, j'ai installé cet environnement en local seulement, ne soyez donc pas étonnés de retrouver une adresse en .lan...

Commençons par installer le paquet suivant :

apt-get install libpam-ldapd

Voici ce qu'il faut répondre aux questions (à adapter en fonction de votre serveur bien sûr) :

URI du serveur LDAP : ldap://infra.dom.lan

Base de recherche du serveur LDAP : dc=dom, dc=lan

Services de nom à configurer : Pour ma part, j'ai coché group, hosts, et shadown pour synchroniser les utilisateurs, leurs mots de passe et les groupes. Si vous voulez reconfigurer cette partie plus part, éditez le fichier /etc/nsswitch.conf

Normalement c'est bon, vous devriez pouvoir vous authentifier avec votre utilisateur LDAP ;).

Si vous voulez que le home paramétré dans votre LDAP soit créé lors de la 1ère connexion de votre utilisateur, ajoutez cette ligne au fichier /etc/pam.d/common-session :

session required	pam_mkhomedir.so skel=/etc/skel umask=0022

Pour autoriser la connexion seulement si l'utilisateur appartient à un certain groupe, dans le fichier /etc/pam.d/common-auth, décommentez la ligne suivante :

auth	required			pam_access.so

Et ajoutez cette ligne au fichier /etc/security/access.conf :

-:ALL EXCEPT root usersallowed:ALL EXCEPT LOCAL

usersallowed est le groupe LDAP que vous souhaitez autoriser uniquement ;).

Pour relancer le cache LDAP sur le client, relancez le démon nscd : /etc/init.d/nscd restart.

";s:7:"dateiso";s:15:"20121119_165000";}s:15:"20121116_125800";a:7:{s:5:"title";s:47:"En vrac : Spotify en version Web est disponible";s:4:"link";s:102:"http://feedproxy.google.com/~r/Jeoffrey54/~3/ue7gCQ8bRsI/en-vrac-spotify-en-version-web-est-disponible";s:4:"guid";s:82:"http://www.jeoffrey54.com/article129/en-vrac-spotify-en-version-web-est-disponible";s:7:"pubDate";s:31:"Fri, 16 Nov 2012 11:58:00 +0000";s:11:"description";s:543:"

Ça y'est, le client Web de Spotify est disponible à cette adresse : https://play.spotify.com/. Beaucoup de sites précisent qu'il faut lié son compte Facebook pour y avoir accès, mais pour ma part, disposant d'un compte Premium, j'ai pu me loguer sans lié mon compte à Fasebouque...

Spotify Web

";s:7:"content";s:546:"

Ça y'est, le client Web de Spotify est disponible à cette adresse : https://play.spotify.com/. Beaucoup de sites précisent qu'il faut lié son compte Facebook pour y avoir accès, mais pour ma part, disposant d'un compte Premium, j'ai pu me loguer sans lié mon compte à Fasebouque...

Spotify Web

";s:7:"dateiso";s:15:"20121116_125800";}s:15:"20121116_115800";a:7:{s:5:"title";s:47:"En vrac : Spotify en version Web est disponible";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/2gjs6Uf2Vx8/index.php";s:4:"guid";s:92:"http://www.jeoffrey54.com/index.php?article129/en-vrac-spotify-en-version-web-est-disponible";s:7:"pubDate";s:31:"Fri, 16 Nov 2012 11:58:00 +0100";s:11:"description";s:550:"

Ça y'est, le client Web de Spotify est disponible à cette adresse : https://play.spotify.com/. Beaucoup de sites précisent qu'il faut lié son compte Facebook pour y avoir accès, mais pour ma part, disposant d'un compte Premium, j'ai pu me loguer sans lié mon compte à Fasebouque...

Spotify Web

";s:7:"content";s:553:"

Ça y'est, le client Web de Spotify est disponible à cette adresse : https://play.spotify.com/. Beaucoup de sites précisent qu'il faut lié son compte Facebook pour y avoir accès, mais pour ma part, disposant d'un compte Premium, j'ai pu me loguer sans lié mon compte à Fasebouque...

Spotify Web

";s:7:"dateiso";s:15:"20121116_115800";}s:15:"20121105_104500";a:7:{s:5:"title";s:31:"ArchLinux : Yaourt - erreur 301";s:4:"link";s:84:"http://feedproxy.google.com/~r/Jeoffrey54/~3/vQj2I_pvR2c/archlinux-yaourt-erreur-301";s:4:"guid";s:64:"http://www.jeoffrey54.com/article128/archlinux-yaourt-erreur-301";s:7:"pubDate";s:31:"Mon, 05 Nov 2012 09:45:00 +0000";s:11:"description";s:758:"

Ce matin, je voulais installer Spotify sur ma nouvelle distro sous Manjaro... J'ai été gratifié d'une belle erreur :

jeoffrey@arch ~$ yaourt spotify
The URL http://aur.archlinux.org/rpc.php?type=search&arg=spotify returned error : 301

Cela vient du fait que l'AUR d'ArchLinux est récemment passé en https... Pour y passer vous aussi, éditez le fichier /usr/lib/yaourt/util.sh, et remplacez la ligne suivante :

AURURL='http://aur.archlinux.org'

Par celle-ci :

AURURL='https://aur.archlinux.org'

Relancez votre commande yaourt, et vous pourrez de nouveau installer vos paquets via AUR !

";s:7:"content";s:758:"

Ce matin, je voulais installer Spotify sur ma nouvelle distro sous Manjaro... J'ai été gratifié d'une belle erreur :

jeoffrey@arch ~$ yaourt spotify
The URL http://aur.archlinux.org/rpc.php?type=search&arg=spotify returned error : 301

Cela vient du fait que l'AUR d'ArchLinux est récemment passé en https... Pour y passer vous aussi, éditez le fichier /usr/lib/yaourt/util.sh, et remplacez la ligne suivante :

AURURL='http://aur.archlinux.org'

Par celle-ci :

AURURL='https://aur.archlinux.org'

Relancez votre commande yaourt, et vous pourrez de nouveau installer vos paquets via AUR !

";s:7:"dateiso";s:15:"20121105_104500";}s:15:"20121105_094500";a:7:{s:5:"title";s:31:"ArchLinux : Yaourt - erreur 301";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/ST9beMkFh98/index.php";s:4:"guid";s:74:"http://www.jeoffrey54.com/index.php?article128/archlinux-yaourt-erreur-301";s:7:"pubDate";s:31:"Mon, 05 Nov 2012 09:45:00 +0100";s:11:"description";s:765:"

Ce matin, je voulais installer Spotify sur ma nouvelle distro sous Manjaro... J'ai été gratifié d'une belle erreur :

jeoffrey@arch ~$ yaourt spotify
The URL http://aur.archlinux.org/rpc.php?type=search&arg=spotify returned error : 301

Cela vient du fait que l'AUR d'ArchLinux est récemment passé en https... Pour y passer vous aussi, éditez le fichier /usr/lib/yaourt/util.sh, et remplacez la ligne suivante :

AURURL='http://aur.archlinux.org'

Par celle-ci :

AURURL='https://aur.archlinux.org'

Relancez votre commande yaourt, et vous pourrez de nouveau installer vos paquets via AUR !

";s:7:"content";s:765:"

Ce matin, je voulais installer Spotify sur ma nouvelle distro sous Manjaro... J'ai été gratifié d'une belle erreur :

jeoffrey@arch ~$ yaourt spotify
The URL http://aur.archlinux.org/rpc.php?type=search&arg=spotify returned error : 301

Cela vient du fait que l'AUR d'ArchLinux est récemment passé en https... Pour y passer vous aussi, éditez le fichier /usr/lib/yaourt/util.sh, et remplacez la ligne suivante :

AURURL='http://aur.archlinux.org'

Par celle-ci :

AURURL='https://aur.archlinux.org'

Relancez votre commande yaourt, et vous pourrez de nouveau installer vos paquets via AUR !

";s:7:"dateiso";s:15:"20121105_094500";}s:15:"20121102_124300";a:7:{s:5:"title";s:28:"Gnome 3 : icônes manquantes";s:4:"link";s:82:"http://feedproxy.google.com/~r/Jeoffrey54/~3/FwcCpar0e40/gnome-3-icones-manquantes";s:4:"guid";s:62:"http://www.jeoffrey54.com/article127/gnome-3-icones-manquantes";s:7:"pubDate";s:31:"Fri, 02 Nov 2012 11:43:00 +0000";s:11:"description";s:819:"

Je viens tout juste d'installer Archlinux et Gnome 3.6 sur mon tout nouveau Zenbook prime. Au reboot, je me suis rendu compte que toutes les icônes liées à Gnome ne s'affichaient pas :

Image

Sur les forums d'ArchLinux, certains conseillaient de réinstaller librsvg, mais ça n'a rien donné chez moi... En revanche, la commande suivante a résolu ce soucis pour ma part :

/usr/bin/gdk-pixbuf-query-loaders --update-cache

Cela relance le cache des images, et les affiche de nouveau ;).

";s:7:"content";s:822:"

Je viens tout juste d'installer Archlinux et Gnome 3.6 sur mon tout nouveau Zenbook prime. Au reboot, je me suis rendu compte que toutes les icônes liées à Gnome ne s'affichaient pas :

Image

Sur les forums d'ArchLinux, certains conseillaient de réinstaller librsvg, mais ça n'a rien donné chez moi... En revanche, la commande suivante a résolu ce soucis pour ma part :

/usr/bin/gdk-pixbuf-query-loaders --update-cache

Cela relance le cache des images, et les affiche de nouveau ;).

";s:7:"dateiso";s:15:"20121102_124300";}s:15:"20121102_114300";a:7:{s:5:"title";s:28:"Gnome 3 : icônes manquantes";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/8mogBd6Uc_g/index.php";s:4:"guid";s:72:"http://www.jeoffrey54.com/index.php?article127/gnome-3-icones-manquantes";s:7:"pubDate";s:31:"Fri, 02 Nov 2012 11:43:00 +0100";s:11:"description";s:826:"

Je viens tout juste d'installer Archlinux et Gnome 3.6 sur mon tout nouveau Zenbook prime. Au reboot, je me suis rendu compte que toutes les icônes liées à Gnome ne s'affichaient pas :

Image

Sur les forums d'ArchLinux, certains conseillaient de réinstaller librsvg, mais ça n'a rien donné chez moi... En revanche, la commande suivante a résolu ce soucis pour ma part :

/usr/bin/gdk-pixbuf-query-loaders --update-cache

Cela relance le cache des images, et les affiche de nouveau ;).

";s:7:"content";s:829:"

Je viens tout juste d'installer Archlinux et Gnome 3.6 sur mon tout nouveau Zenbook prime. Au reboot, je me suis rendu compte que toutes les icônes liées à Gnome ne s'affichaient pas :

Image

Sur les forums d'ArchLinux, certains conseillaient de réinstaller librsvg, mais ça n'a rien donné chez moi... En revanche, la commande suivante a résolu ce soucis pour ma part :

/usr/bin/gdk-pixbuf-query-loaders --update-cache

Cela relance le cache des images, et les affiche de nouveau ;).

";s:7:"dateiso";s:15:"20121102_114300";}s:15:"20121022_203000";a:7:{s:5:"title";s:25:"Mon .vimrc : explications";s:4:"link";s:79:"http://feedproxy.google.com/~r/Jeoffrey54/~3/NfvBPBIGVJk/mon-vimrc-explications";s:4:"guid";s:59:"http://www.jeoffrey54.com/article126/mon-vimrc-explications";s:7:"pubDate";s:31:"Mon, 22 Oct 2012 18:30:00 +0000";s:11:"description";s:4733:"

Allez, puisque j'ai passé un peu de temps ce week-end à faire joujou avec vim, voici le rendu final de mon vimrc :

vimrc

Ce dernier est disponible à cette adresse.

Voici quelques explications sur son contenu. Avant toute chose, sachez qu'un commentaire dans un fichier .vimrc débute par une double-quote : ".

Activer la numérotation des lignes et la coloration syntaxique

set number
syntax on

La première commande permet déjà d'ajouter la numérotation des lignes à gauche de notre vim. C'est très utile, vous verrez. Ensuite, lorsque l'on édite régulièrement des scripts, que ce soit du php, ou du Bash, il est très utile d'avoir la coloration syntaxique de son code, c'est à cela que sert la seconde ligne !

De nouvelles couleurs

colorscheme koehler

La couleur de base de vim ne vous plaisant pas forcément, il ne serait pas du luxe de pouvoir la changer ! Heureusement, vim met à disposition un ensemble de "thèmes", qui se situent dans le dossier /usr/share/vim/vim72/colors/. Pour ma part, j'utilise koehler ! Bien sûr, il est également possible d'installer des thèmes venant d'Internet ;).

Jouer avec la souris

set mouse=a

Inutile si vous êtes sur un serveur, cette directive servira surtout aux desktops users, qui veulent faire de la sélection de texte avec la souris !

Ne pas taper à l'aveugle

set showcmd

Lorsque vous faites un couper-coller, vous utilisez la commande "2dd" ( couper 2 lignes). Seulement, votre "2dd" ne s'affiche nulle part ! Grâce à la commande showcmd, votre instruction s'affichera en bas à droite.

Avec l'autoindentation tu joueras

filetype plugin indent on

Cette ligne permet d'ajouter l'indentation automatique.

De tout, tu te souviendras

set history=100

Vous le savez surement, les commandes utilisables avec sont légions. Si vous voulez récupérer une commande entrée il y a quelques temps, rien ne vaut un bon historique. N'hésitez pas à mettre plus que 100.

Retrouver une parenthèse perdue

set showmatch

Grâce à showmatch, vous pourrez retrouver facilement l'accolade ou la parenthèse que vous avez ouverte quelques milliers de lignes plus haut. Très pratique pour les développeurs !

Bling bling, couleurs !

set hlsearch
set incsearch

La commande hlsearch permet de surligner les éléments recherchés, et incsearch permet de déplacer le curseur dans les résultats au fur et à mesure de la saisie (dans le genre de la recherche sous Firefox).

Bling bling sur la ligne courante

set cursorline
hi Cursorline ctermbg=darkgrey guibg=#771c1c cterm=none

Pour rapidement savoir ou l'on se trouve, on utilise cursorline, qui met en valeur la ligne où le curseur se trouve. Vous pouvez vous amuser avec les valeurs "ctermbg" et "guibg" !

Une recherche sans casse

set ignorecase

Pour désactiver la casse lors des recherches ;). Si vous voulez l'utiliser ocasionnellement, utilisez cette commande : /marecherche\c

C'est le paramètre \c qui spécifie une recherche sans respect de la casse ;).

Détection parfaite

filetype on

Lorsque vous éditez un fichier, VIM peut détecter automatiement le type de fichier, et adapter la coloration synntaxique.

É on écri sent photes !

set spelllang =fr
set spell
set spellsuggest =5

Voici quelques lignes qui vous permettront de corriger automatiquement vos textes...

Quelques raccourcis

iab <? <?php

Pour mettre en place des raccourcis assez sommaires, utilisez "iab". Lorsque vous tapperez "<?", ça sera automatiquement remplacé par "<?pphp" ;).

On se souvient de la dernière édition ?

if has("autocmd")
        filetype plugin indent on
                autocmd FileType text setlocal textwidth=78

        autocmd BufReadPost *
        \ if line("'\"") > 0 && line("'\"") <= line("$") |
                \   exe "normal g`\"" |
        \ endif
 endif

Utilisez ce petit morceau de script pour replacer le curseur là ou il était lorsque vous avez fermé vim. Très pratique en cas d'édition régulière d'un fichier ;).

Amusez-vous bien avec vim !

";s:7:"content";s:4739:"

Allez, puisque j'ai passé un peu de temps ce week-end à faire joujou avec vim, voici le rendu final de mon vimrc :

vimrc

Ce dernier est disponible à cette adresse.

Voici quelques explications sur son contenu. Avant toute chose, sachez qu'un commentaire dans un fichier .vimrc débute par une double-quote : ".

Activer la numérotation des lignes et la coloration syntaxique

set number
syntax on

La première commande permet déjà d'ajouter la numérotation des lignes à gauche de notre vim. C'est très utile, vous verrez. Ensuite, lorsque l'on édite régulièrement des scripts, que ce soit du php, ou du Bash, il est très utile d'avoir la coloration syntaxique de son code, c'est à cela que sert la seconde ligne !

De nouvelles couleurs

colorscheme koehler

La couleur de base de vim ne vous plaisant pas forcément, il ne serait pas du luxe de pouvoir la changer ! Heureusement, vim met à disposition un ensemble de "thèmes", qui se situent dans le dossier /usr/share/vim/vim72/colors/. Pour ma part, j'utilise koehler ! Bien sûr, il est également possible d'installer des thèmes venant d'Internet ;).

Jouer avec la souris

set mouse=a

Inutile si vous êtes sur un serveur, cette directive servira surtout aux desktops users, qui veulent faire de la sélection de texte avec la souris !

Ne pas taper à l'aveugle

set showcmd

Lorsque vous faites un couper-coller, vous utilisez la commande "2dd" ( couper 2 lignes). Seulement, votre "2dd" ne s'affiche nulle part ! Grâce à la commande showcmd, votre instruction s'affichera en bas à droite.

Avec l'autoindentation tu joueras

filetype plugin indent on

Cette ligne permet d'ajouter l'indentation automatique.

De tout, tu te souviendras

set history=100

Vous le savez surement, les commandes utilisables avec sont légions. Si vous voulez récupérer une commande entrée il y a quelques temps, rien ne vaut un bon historique. N'hésitez pas à mettre plus que 100.

Retrouver une parenthèse perdue

set showmatch

Grâce à showmatch, vous pourrez retrouver facilement l'accolade ou la parenthèse que vous avez ouverte quelques milliers de lignes plus haut. Très pratique pour les développeurs !

Bling bling, couleurs !

set hlsearch
set incsearch

La commande hlsearch permet de surligner les éléments recherchés, et incsearch permet de déplacer le curseur dans les résultats au fur et à mesure de la saisie (dans le genre de la recherche sous Firefox).

Bling bling sur la ligne courante

set cursorline
hi Cursorline ctermbg=darkgrey guibg=#771c1c cterm=none

Pour rapidement savoir ou l'on se trouve, on utilise cursorline, qui met en valeur la ligne où le curseur se trouve. Vous pouvez vous amuser avec les valeurs "ctermbg" et "guibg" !

Une recherche sans casse

set ignorecase

Pour désactiver la casse lors des recherches ;). Si vous voulez l'utiliser ocasionnellement, utilisez cette commande : /marecherche\c

C'est le paramètre \c qui spécifie une recherche sans respect de la casse ;).

Détection parfaite

filetype on

Lorsque vous éditez un fichier, VIM peut détecter automatiement le type de fichier, et adapter la coloration synntaxique.

É on écri sent photes !

set spelllang =fr
set spell
set spellsuggest =5

Voici quelques lignes qui vous permettront de corriger automatiquement vos textes...

Quelques raccourcis

iab <? <?php

Pour mettre en place des raccourcis assez sommaires, utilisez "iab". Lorsque vous tapperez "<?", ça sera automatiquement remplacé par "<?pphp" ;).

On se souvient de la dernière édition ?

if has("autocmd")
        filetype plugin indent on
                autocmd FileType text setlocal textwidth=78

        autocmd BufReadPost *
        \ if line("'\"") > 0 && line("'\"") <= line("$") |
                \   exe "normal g`\"" |
        \ endif
 endif

Utilisez ce petit morceau de script pour replacer le curseur là ou il était lorsque vous avez fermé vim. Très pratique en cas d'édition régulière d'un fichier ;).

Amusez-vous bien avec vim !

";s:7:"dateiso";s:15:"20121022_203000";}s:15:"20121022_183000";a:7:{s:5:"title";s:25:"Mon .vimrc : explications";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/z5kfWIovLww/index.php";s:4:"guid";s:69:"http://www.jeoffrey54.com/index.php?article126/mon-vimrc-explications";s:7:"pubDate";s:31:"Mon, 22 Oct 2012 18:30:00 +0200";s:11:"description";s:4740:"

Allez, puisque j'ai passé un peu de temps ce week-end à faire joujou avec vim, voici le rendu final de mon vimrc :

vimrc

Ce dernier est disponible à cette adresse.

Voici quelques explications sur son contenu. Avant toute chose, sachez qu'un commentaire dans un fichier .vimrc débute par une double-quote : ".

Activer la numérotation des lignes et la coloration syntaxique

set number
syntax on

La première commande permet déjà d'ajouter la numérotation des lignes à gauche de notre vim. C'est très utile, vous verrez. Ensuite, lorsque l'on édite régulièrement des scripts, que ce soit du php, ou du Bash, il est très utile d'avoir la coloration syntaxique de son code, c'est à cela que sert la seconde ligne !

De nouvelles couleurs

colorscheme koehler

La couleur de base de vim ne vous plaisant pas forcément, il ne serait pas du luxe de pouvoir la changer ! Heureusement, vim met à disposition un ensemble de "thèmes", qui se situent dans le dossier /usr/share/vim/vim72/colors/. Pour ma part, j'utilise koehler ! Bien sûr, il est également possible d'installer des thèmes venant d'Internet ;).

Jouer avec la souris

set mouse=a

Inutile si vous êtes sur un serveur, cette directive servira surtout aux desktops users, qui veulent faire de la sélection de texte avec la souris !

Ne pas taper à l'aveugle

set showcmd

Lorsque vous faites un couper-coller, vous utilisez la commande "2dd" ( couper 2 lignes). Seulement, votre "2dd" ne s'affiche nulle part ! Grâce à la commande showcmd, votre instruction s'affichera en bas à droite.

Avec l'autoindentation tu joueras

filetype plugin indent on

Cette ligne permet d'ajouter l'indentation automatique.

De tout, tu te souviendras

set history=100

Vous le savez surement, les commandes utilisables avec sont légions. Si vous voulez récupérer une commande entrée il y a quelques temps, rien ne vaut un bon historique. N'hésitez pas à mettre plus que 100.

Retrouver une parenthèse perdue

set showmatch

Grâce à showmatch, vous pourrez retrouver facilement l'accolade ou la parenthèse que vous avez ouverte quelques milliers de lignes plus haut. Très pratique pour les développeurs !

Bling bling, couleurs !

set hlsearch
set incsearch

La commande hlsearch permet de surligner les éléments recherchés, et incsearch permet de déplacer le curseur dans les résultats au fur et à mesure de la saisie (dans le genre de la recherche sous Firefox).

Bling bling sur la ligne courante

set cursorline
hi Cursorline ctermbg=darkgrey guibg=#771c1c cterm=none

Pour rapidement savoir ou l'on se trouve, on utilise cursorline, qui met en valeur la ligne où le curseur se trouve. Vous pouvez vous amuser avec les valeurs "ctermbg" et "guibg" !

Une recherche sans casse

set ignorecase

Pour désactiver la casse lors des recherches ;). Si vous voulez l'utiliser ocasionnellement, utilisez cette commande : /marecherche\c

C'est le paramètre \c qui spécifie une recherche sans respect de la casse ;).

Détection parfaite

filetype on

Lorsque vous éditez un fichier, VIM peut détecter automatiement le type de fichier, et adapter la coloration synntaxique.

É on écri sent photes !

set spelllang =fr
set spell
set spellsuggest =5

Voici quelques lignes qui vous permettront de corriger automatiquement vos textes...

Quelques raccourcis

iab <? <?php

Pour mettre en place des raccourcis assez sommaires, utilisez "iab". Lorsque vous tapperez "<?", ça sera automatiquement remplacé par "<?pphp" ;).

On se souvient de la dernière édition ?

if has("autocmd")
        filetype plugin indent on
                autocmd FileType text setlocal textwidth=78

        autocmd BufReadPost *
        \ if line("'\"") > 0 && line("'\"") <= line("$") |
                \   exe "normal g`\"" |
        \ endif
 endif

Utilisez ce petit morceau de script pour replacer le curseur là ou il était lorsque vous avez fermé vim. Très pratique en cas d'édition régulière d'un fichier ;).

Amusez-vous bien avec vim !

";s:7:"content";s:4746:"

Allez, puisque j'ai passé un peu de temps ce week-end à faire joujou avec vim, voici le rendu final de mon vimrc :

vimrc

Ce dernier est disponible à cette adresse.

Voici quelques explications sur son contenu. Avant toute chose, sachez qu'un commentaire dans un fichier .vimrc débute par une double-quote : ".

Activer la numérotation des lignes et la coloration syntaxique

set number
syntax on

La première commande permet déjà d'ajouter la numérotation des lignes à gauche de notre vim. C'est très utile, vous verrez. Ensuite, lorsque l'on édite régulièrement des scripts, que ce soit du php, ou du Bash, il est très utile d'avoir la coloration syntaxique de son code, c'est à cela que sert la seconde ligne !

De nouvelles couleurs

colorscheme koehler

La couleur de base de vim ne vous plaisant pas forcément, il ne serait pas du luxe de pouvoir la changer ! Heureusement, vim met à disposition un ensemble de "thèmes", qui se situent dans le dossier /usr/share/vim/vim72/colors/. Pour ma part, j'utilise koehler ! Bien sûr, il est également possible d'installer des thèmes venant d'Internet ;).

Jouer avec la souris

set mouse=a

Inutile si vous êtes sur un serveur, cette directive servira surtout aux desktops users, qui veulent faire de la sélection de texte avec la souris !

Ne pas taper à l'aveugle

set showcmd

Lorsque vous faites un couper-coller, vous utilisez la commande "2dd" ( couper 2 lignes). Seulement, votre "2dd" ne s'affiche nulle part ! Grâce à la commande showcmd, votre instruction s'affichera en bas à droite.

Avec l'autoindentation tu joueras

filetype plugin indent on

Cette ligne permet d'ajouter l'indentation automatique.

De tout, tu te souviendras

set history=100

Vous le savez surement, les commandes utilisables avec sont légions. Si vous voulez récupérer une commande entrée il y a quelques temps, rien ne vaut un bon historique. N'hésitez pas à mettre plus que 100.

Retrouver une parenthèse perdue

set showmatch

Grâce à showmatch, vous pourrez retrouver facilement l'accolade ou la parenthèse que vous avez ouverte quelques milliers de lignes plus haut. Très pratique pour les développeurs !

Bling bling, couleurs !

set hlsearch
set incsearch

La commande hlsearch permet de surligner les éléments recherchés, et incsearch permet de déplacer le curseur dans les résultats au fur et à mesure de la saisie (dans le genre de la recherche sous Firefox).

Bling bling sur la ligne courante

set cursorline
hi Cursorline ctermbg=darkgrey guibg=#771c1c cterm=none

Pour rapidement savoir ou l'on se trouve, on utilise cursorline, qui met en valeur la ligne où le curseur se trouve. Vous pouvez vous amuser avec les valeurs "ctermbg" et "guibg" !

Une recherche sans casse

set ignorecase

Pour désactiver la casse lors des recherches ;). Si vous voulez l'utiliser ocasionnellement, utilisez cette commande : /marecherche\c

C'est le paramètre \c qui spécifie une recherche sans respect de la casse ;).

Détection parfaite

filetype on

Lorsque vous éditez un fichier, VIM peut détecter automatiement le type de fichier, et adapter la coloration synntaxique.

É on écri sent photes !

set spelllang =fr
set spell
set spellsuggest =5

Voici quelques lignes qui vous permettront de corriger automatiquement vos textes...

Quelques raccourcis

iab <? <?php

Pour mettre en place des raccourcis assez sommaires, utilisez "iab". Lorsque vous tapperez "<?", ça sera automatiquement remplacé par "<?pphp" ;).

On se souvient de la dernière édition ?

if has("autocmd")
        filetype plugin indent on
                autocmd FileType text setlocal textwidth=78

        autocmd BufReadPost *
        \ if line("'\"") > 0 && line("'\"") <= line("$") |
                \   exe "normal g`\"" |
        \ endif
 endif

Utilisez ce petit morceau de script pour replacer le curseur là ou il était lorsque vous avez fermé vim. Très pratique en cas d'édition régulière d'un fichier ;).

Amusez-vous bien avec vim !

";s:7:"dateiso";s:15:"20121022_183000";}s:15:"20121016_170100";a:7:{s:5:"title";s:16:"Lxdm : autologin";s:4:"link";s:71:"http://feedproxy.google.com/~r/Jeoffrey54/~3/GXdgV5aMszc/lxdm-autologin";s:4:"guid";s:51:"http://www.jeoffrey54.com/article125/lxdm-autologin";s:7:"pubDate";s:31:"Tue, 16 Oct 2012 15:01:00 +0000";s:11:"description";s:446:"

Voici comment activer l'autologin sur Lxdm, un gestionnaire de connexion :

Éditez le fichier "/etc/lxdm/lxdm.conf", et, décommentez la troisième ligne :

# autologin=myuser

Comme ceci :

autologin=jeoffrey

Enregistrez, et la prochaine fois que vous allumez votre ordinateur, l'autologin fonctionnera.

";s:7:"content";s:446:"

Voici comment activer l'autologin sur Lxdm, un gestionnaire de connexion :

Éditez le fichier "/etc/lxdm/lxdm.conf", et, décommentez la troisième ligne :

# autologin=myuser

Comme ceci :

autologin=jeoffrey

Enregistrez, et la prochaine fois que vous allumez votre ordinateur, l'autologin fonctionnera.

";s:7:"dateiso";s:15:"20121016_170100";}s:15:"20121016_150100";a:7:{s:5:"title";s:16:"Lxdm : autologin";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/y1F29oI7hr4/index.php";s:4:"guid";s:61:"http://www.jeoffrey54.com/index.php?article125/lxdm-autologin";s:7:"pubDate";s:31:"Tue, 16 Oct 2012 15:01:00 +0200";s:11:"description";s:453:"

Voici comment activer l'autologin sur Lxdm, un gestionnaire de connexion :

Éditez le fichier "/etc/lxdm/lxdm.conf", et, décommentez la troisième ligne :

# autologin=myuser

Comme ceci :

autologin=jeoffrey

Enregistrez, et la prochaine fois que vous allumez votre ordinateur, l'autologin fonctionnera.

";s:7:"content";s:453:"

Voici comment activer l'autologin sur Lxdm, un gestionnaire de connexion :

Éditez le fichier "/etc/lxdm/lxdm.conf", et, décommentez la troisième ligne :

# autologin=myuser

Comme ceci :

autologin=jeoffrey

Enregistrez, et la prochaine fois que vous allumez votre ordinateur, l'autologin fonctionnera.

";s:7:"dateiso";s:15:"20121016_150100";}s:15:"20120920_194100";a:7:{s:5:"title";s:45:"Shinken : monitoring d'une imprimante Samsung";s:4:"link";s:100:"http://feedproxy.google.com/~r/Jeoffrey54/~3/OSO7scQNANU/shinken-monitoring-d-une-imprimante-samsung";s:4:"guid";s:80:"http://www.jeoffrey54.com/article124/shinken-monitoring-d-une-imprimante-samsung";s:7:"pubDate";s:31:"Thu, 20 Sep 2012 17:41:00 +0000";s:11:"description";s:4413:"

Shinken dispose d'un pack pour monitorer une imprimante HP, mais pas une imprimante Samsung... Du coup, voici un petit pack pour ajouter votre imprimante Samsung (CLP-610ND pour ma part) à votre outil de supervision préféré !

Voici les éléments que nous allons monitorer :

Dans notre exemple, on suppose que l'imprimante s'appelle myprinter, et que son IP est 192.168.2.10.

Étape 1 : check_samsung_cartridge

La première étape consiste à récupérer le script "check_samsung_cartridge", qui va vérifier l'état de nos cartouches.

Récupérez le fichier .tar.gz à sur Nagios Exchange, décompressez-le, et placez le fichier check_samsung_cartridge dans le dossier /usr/local/shinken/libexec, et fixez ses permissions :

mv check_samsung_cartridge /usr/local/shinken/libexec
chown shinken:shinken /usr/local/shinken/libexec/check_samsung_cartridge

Puis, on teste notre script :

# ./check_samsung_cartridge -H myprinter -Q cyan -w 40 -c 10
OK: Toner Cyan (Bestell-Nr.: CLP-C600A) - Resttoner: 81%|CYAN=81%;40;10;;

Si vous avez à peu près le même résultat que moi, c'est que l'accès à votre imprimante est bien paramétré, sinon, revoyez l'accès SNMP.

En revanche, il y a une petite coquille dans le script fourni par Nagios Exchange. Éditez le script, et repérez la ligne 55 :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.2' #BLACK Level

Remplacez le dernier "2" à droite par "4", comme ceci :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.4' #BLACK Level

Comme le précise ce commentaire, le chemin SNMP pour la vérification du noir correspondait au magenta.

Étape 2 : le pack

Voici le petit pack que j'ai fait, en téléchargement à cette adresse (md5 : 2d3d7ddfff1c318c639532c2fa109515).

Décompressez le fichier tar.bz2, et placez le dossier dans /usr/local/shinken/etc/packs/printers/ afin d'avoir côte à côte le dossier "samsung" et le dossier "hp", si vous ne l'avez pas supprimé.

Faisons un petit tour d'horizon du contenu du dossier samsung :

Normalement, vous n'avez rien à modifier, sauf peut-être le fichier commands.cfg, qui contient notamment les 2 seuils d'alertes : critical et warning.

Étape 3 : définition de l'hôte

Maintenant que notre pack est créé et que notre commande fonctionne, on peut créer la définition de notre hôte : créez un fichier myprinter.cfg dans le dossier /usr/local/shinken/etc/hosts avec ce contenu :

define host{
	name		Myprinter
	host_name	myprinter
	address		192.168.2.10
	use		printer-samsung
}

Et voilà, c'est fini ! Maintenant, il ne reste plus qu'à vérifier notre configuration grâce à cette commande :

# /usr/local/shinken/bin/shinken-arbiter -v -c /usr/local/shinken/etc/nagios.cfg -c /usr/local/shinken/etc/shinken-specific.cfg
...
[1348153167] Info :    Things look okay - No serious problems were detected during the pre-flight check

Si le résultat est concluant, on peut redémarrer l'arbiter :

/etc/init.d/shinken-arbiter

On retourne sur notre la WebUI, et on constate que ça fonctionne :

Shinken Printer

";s:7:"content";s:4416:"

Shinken dispose d'un pack pour monitorer une imprimante HP, mais pas une imprimante Samsung... Du coup, voici un petit pack pour ajouter votre imprimante Samsung (CLP-610ND pour ma part) à votre outil de supervision préféré !

Voici les éléments que nous allons monitorer :

Dans notre exemple, on suppose que l'imprimante s'appelle myprinter, et que son IP est 192.168.2.10.

Étape 1 : check_samsung_cartridge

La première étape consiste à récupérer le script "check_samsung_cartridge", qui va vérifier l'état de nos cartouches.

Récupérez le fichier .tar.gz à sur Nagios Exchange, décompressez-le, et placez le fichier check_samsung_cartridge dans le dossier /usr/local/shinken/libexec, et fixez ses permissions :

mv check_samsung_cartridge /usr/local/shinken/libexec
chown shinken:shinken /usr/local/shinken/libexec/check_samsung_cartridge

Puis, on teste notre script :

# ./check_samsung_cartridge -H myprinter -Q cyan -w 40 -c 10
OK: Toner Cyan (Bestell-Nr.: CLP-C600A) - Resttoner: 81%|CYAN=81%;40;10;;

Si vous avez à peu près le même résultat que moi, c'est que l'accès à votre imprimante est bien paramétré, sinon, revoyez l'accès SNMP.

En revanche, il y a une petite coquille dans le script fourni par Nagios Exchange. Éditez le script, et repérez la ligne 55 :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.2' #BLACK Level

Remplacez le dernier "2" à droite par "4", comme ceci :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.4' #BLACK Level

Comme le précise ce commentaire, le chemin SNMP pour la vérification du noir correspondait au magenta.

Étape 2 : le pack

Voici le petit pack que j'ai fait, en téléchargement à cette adresse (md5 : 2d3d7ddfff1c318c639532c2fa109515).

Décompressez le fichier tar.bz2, et placez le dossier dans /usr/local/shinken/etc/packs/printers/ afin d'avoir côte à côte le dossier "samsung" et le dossier "hp", si vous ne l'avez pas supprimé.

Faisons un petit tour d'horizon du contenu du dossier samsung :

Normalement, vous n'avez rien à modifier, sauf peut-être le fichier commands.cfg, qui contient notamment les 2 seuils d'alertes : critical et warning.

Étape 3 : définition de l'hôte

Maintenant que notre pack est créé et que notre commande fonctionne, on peut créer la définition de notre hôte : créez un fichier myprinter.cfg dans le dossier /usr/local/shinken/etc/hosts avec ce contenu :

define host{
	name		Myprinter
	host_name	myprinter
	address		192.168.2.10
	use		printer-samsung
}

Et voilà, c'est fini ! Maintenant, il ne reste plus qu'à vérifier notre configuration grâce à cette commande :

# /usr/local/shinken/bin/shinken-arbiter -v -c /usr/local/shinken/etc/nagios.cfg -c /usr/local/shinken/etc/shinken-specific.cfg
...
[1348153167] Info :    Things look okay - No serious problems were detected during the pre-flight check

Si le résultat est concluant, on peut redémarrer l'arbiter :

/etc/init.d/shinken-arbiter

On retourne sur notre la WebUI, et on constate que ça fonctionne :

Shinken Printer

";s:7:"dateiso";s:15:"20120920_194100";}s:15:"20120920_174100";a:7:{s:5:"title";s:45:"Shinken : monitoring d'une imprimante Samsung";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/W4p1WeTGM90/index.php";s:4:"guid";s:90:"http://www.jeoffrey54.com/index.php?article124/shinken-monitoring-d-une-imprimante-samsung";s:7:"pubDate";s:31:"Thu, 20 Sep 2012 17:41:00 +0200";s:11:"description";s:4420:"

Shinken dispose d'un pack pour monitorer une imprimante HP, mais pas une imprimante Samsung... Du coup, voici un petit pack pour ajouter votre imprimante Samsung (CLP-610ND pour ma part) à votre outil de supervision préféré !

Voici les éléments que nous allons monitorer :

Dans notre exemple, on suppose que l'imprimante s'appelle myprinter, et que son IP est 192.168.2.10.

Étape 1 : check_samsung_cartridge

La première étape consiste à récupérer le script "check_samsung_cartridge", qui va vérifier l'état de nos cartouches.

Récupérez le fichier .tar.gz à sur Nagios Exchange, décompressez-le, et placez le fichier check_samsung_cartridge dans le dossier /usr/local/shinken/libexec, et fixez ses permissions :

mv check_samsung_cartridge /usr/local/shinken/libexec
chown shinken:shinken /usr/local/shinken/libexec/check_samsung_cartridge

Puis, on teste notre script :

# ./check_samsung_cartridge -H myprinter -Q cyan -w 40 -c 10
OK: Toner Cyan (Bestell-Nr.: CLP-C600A) - Resttoner: 81%|CYAN=81%;40;10;;

Si vous avez à peu près le même résultat que moi, c'est que l'accès à votre imprimante est bien paramétré, sinon, revoyez l'accès SNMP.

En revanche, il y a une petite coquille dans le script fourni par Nagios Exchange. Éditez le script, et repérez la ligne 55 :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.2' #BLACK Level

Remplacez le dernier "2" à droite par "4", comme ceci :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.4' #BLACK Level

Comme le précise ce commentaire, le chemin SNMP pour la vérification du noir correspondait au magenta.

Étape 2 : le pack

Voici le petit pack que j'ai fait, en téléchargement à cette adresse (md5 : 2d3d7ddfff1c318c639532c2fa109515).

Décompressez le fichier tar.bz2, et placez le dossier dans /usr/local/shinken/etc/packs/printers/ afin d'avoir côte à côte le dossier "samsung" et le dossier "hp", si vous ne l'avez pas supprimé.

Faisons un petit tour d'horizon du contenu du dossier samsung :

Normalement, vous n'avez rien à modifier, sauf peut-être le fichier commands.cfg, qui contient notamment les 2 seuils d'alertes : critical et warning.

Étape 3 : définition de l'hôte

Maintenant que notre pack est créé et que notre commande fonctionne, on peut créer la définition de notre hôte : créez un fichier myprinter.cfg dans le dossier /usr/local/shinken/etc/hosts avec ce contenu :

define host{
	name		Myprinter
	host_name	myprinter
	address		192.168.2.10
	use		printer-samsung
}

Et voilà, c'est fini ! Maintenant, il ne reste plus qu'à vérifier notre configuration grâce à cette commande :

# /usr/local/shinken/bin/shinken-arbiter -v -c /usr/local/shinken/etc/nagios.cfg -c /usr/local/shinken/etc/shinken-specific.cfg
...
[1348153167] Info :    Things look okay - No serious problems were detected during the pre-flight check

Si le résultat est concluant, on peut redémarrer l'arbiter :

/etc/init.d/shinken-arbiter

On retourne sur notre la WebUI, et on constate que ça fonctionne :

Shinken Printer

";s:7:"content";s:4423:"

Shinken dispose d'un pack pour monitorer une imprimante HP, mais pas une imprimante Samsung... Du coup, voici un petit pack pour ajouter votre imprimante Samsung (CLP-610ND pour ma part) à votre outil de supervision préféré !

Voici les éléments que nous allons monitorer :

Dans notre exemple, on suppose que l'imprimante s'appelle myprinter, et que son IP est 192.168.2.10.

Étape 1 : check_samsung_cartridge

La première étape consiste à récupérer le script "check_samsung_cartridge", qui va vérifier l'état de nos cartouches.

Récupérez le fichier .tar.gz à sur Nagios Exchange, décompressez-le, et placez le fichier check_samsung_cartridge dans le dossier /usr/local/shinken/libexec, et fixez ses permissions :

mv check_samsung_cartridge /usr/local/shinken/libexec
chown shinken:shinken /usr/local/shinken/libexec/check_samsung_cartridge

Puis, on teste notre script :

# ./check_samsung_cartridge -H myprinter -Q cyan -w 40 -c 10
OK: Toner Cyan (Bestell-Nr.: CLP-C600A) - Resttoner: 81%|CYAN=81%;40;10;;

Si vous avez à peu près le même résultat que moi, c'est que l'accès à votre imprimante est bien paramétré, sinon, revoyez l'accès SNMP.

En revanche, il y a une petite coquille dans le script fourni par Nagios Exchange. Éditez le script, et repérez la ligne 55 :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.2' #BLACK Level

Remplacez le dernier "2" à droite par "4", comme ceci :

BLACK_LEVEL='1.3.6.1.2.1.43.11.1.1.9.1.4' #BLACK Level

Comme le précise ce commentaire, le chemin SNMP pour la vérification du noir correspondait au magenta.

Étape 2 : le pack

Voici le petit pack que j'ai fait, en téléchargement à cette adresse (md5 : 2d3d7ddfff1c318c639532c2fa109515).

Décompressez le fichier tar.bz2, et placez le dossier dans /usr/local/shinken/etc/packs/printers/ afin d'avoir côte à côte le dossier "samsung" et le dossier "hp", si vous ne l'avez pas supprimé.

Faisons un petit tour d'horizon du contenu du dossier samsung :

Normalement, vous n'avez rien à modifier, sauf peut-être le fichier commands.cfg, qui contient notamment les 2 seuils d'alertes : critical et warning.

Étape 3 : définition de l'hôte

Maintenant que notre pack est créé et que notre commande fonctionne, on peut créer la définition de notre hôte : créez un fichier myprinter.cfg dans le dossier /usr/local/shinken/etc/hosts avec ce contenu :

define host{
	name		Myprinter
	host_name	myprinter
	address		192.168.2.10
	use		printer-samsung
}

Et voilà, c'est fini ! Maintenant, il ne reste plus qu'à vérifier notre configuration grâce à cette commande :

# /usr/local/shinken/bin/shinken-arbiter -v -c /usr/local/shinken/etc/nagios.cfg -c /usr/local/shinken/etc/shinken-specific.cfg
...
[1348153167] Info :    Things look okay - No serious problems were detected during the pre-flight check

Si le résultat est concluant, on peut redémarrer l'arbiter :

/etc/init.d/shinken-arbiter

On retourne sur notre la WebUI, et on constate que ça fonctionne :

Shinken Printer

";s:7:"dateiso";s:15:"20120920_174100";}s:15:"20120919_200500";a:7:{s:5:"title";s:32:"Mettre en forme des scripts Bash";s:4:"link";s:89:"http://feedproxy.google.com/~r/Jeoffrey54/~3/PWhiSWOO6lg/mettre-en-forme-des-scripts-bash";s:4:"guid";s:69:"http://www.jeoffrey54.com/article123/mettre-en-forme-des-scripts-bash";s:7:"pubDate";s:31:"Wed, 19 Sep 2012 18:05:00 +0000";s:11:"description";s:2537:"

J'ai pour habitude de développer beaucoup de scripts Shell pour automatiser l'administration de mes serveurs sous Linux. Ça faisait un petit moment que je cherchais par quel moyen je pouvais avoir un peu de mise en forme pour mes scripts Bash (couleurs, tabulations, ...).

Et je suis tombé sur la commande "tput", qui permet de mettre en forme certaines parties de mon script.

De la couleur :

Voici comment mettre un peu de couleur dans vos scripts. Ajoutez ceci au début de votre script :

# Mise en forme
#+ Couleur de base
RESETC="$(tput sgr0)"
# Couleurs + Gras
# Rouge
RED="$(tput bold ; tput setaf 1)"
# Vert
GREEN="$(tput bold ; tput setaf 2)"
# Jaune
YELLOW="$(tput bold ; tput setaf 3)"
# Bleu
BLUE="$(tput bold ; tput setaf 4)"

Une fois que vous avez défini vos couleurs, vous n'avez plus qu'à les utiliser :

echo -n "${YELLOW}- Tâche n°1"

Préfixes par "${COULEUR}" chaque phrase que vous souhaitez mettre en forme !

Du placement, des tabulations :

Faites débuter vos scripts par la commande "clear", histoire d'avoir une console propre.

Utilisez la commande suivante, puis votre "echo", comme ceci :

tput cup 2 3
echo -n "${YELLOW}- Tâche n°1"

Cette commande aura pour effet de vous afficher "- Tâche n°1" en jaune, sur la 2ème ligne, et avec un décallage vers la droite de 3 caractères.

Une autre ? La voici :

tput cup 4 10
echo -n "${YELLOW}- Mise à jour de data/configuration/parametres.xml"
sed -i "s/www/dev/g" $DEV_FOLDER/data/configuration/parametres.xml
tput cup 4 80
echo "${GREEN}[OK]"

Cette commande, nous affiche "- Mise à jour de data/configuration/parametres.xml" en jaune, sur la 4ème ligne, et avec un décallage de 10 caractères vers la droite. De plus, nous afficherons un petit "[OK]" avec un décallage de 80 caractères vers la droite !

À partir de maintenant, vous pouvez ajouter des lignes, et organiser le placement comme vous le voulez. Là, que le premier echo fasse 10 caractères ou 20, le echo qui affiche [OK] sera dans tous les cas décallés de 80 caractères, en partant du début !

Si vous voulez partir de la fin, utilisez la commande tput cols, qui vous renvoie le nombre de caractères de large que votre console fait.

Bref, comme d'habitude, RTFM !

";s:7:"content";s:2537:"

J'ai pour habitude de développer beaucoup de scripts Shell pour automatiser l'administration de mes serveurs sous Linux. Ça faisait un petit moment que je cherchais par quel moyen je pouvais avoir un peu de mise en forme pour mes scripts Bash (couleurs, tabulations, ...).

Et je suis tombé sur la commande "tput", qui permet de mettre en forme certaines parties de mon script.

De la couleur :

Voici comment mettre un peu de couleur dans vos scripts. Ajoutez ceci au début de votre script :

# Mise en forme
#+ Couleur de base
RESETC="$(tput sgr0)"
# Couleurs + Gras
# Rouge
RED="$(tput bold ; tput setaf 1)"
# Vert
GREEN="$(tput bold ; tput setaf 2)"
# Jaune
YELLOW="$(tput bold ; tput setaf 3)"
# Bleu
BLUE="$(tput bold ; tput setaf 4)"

Une fois que vous avez défini vos couleurs, vous n'avez plus qu'à les utiliser :

echo -n "${YELLOW}- Tâche n°1"

Préfixes par "${COULEUR}" chaque phrase que vous souhaitez mettre en forme !

Du placement, des tabulations :

Faites débuter vos scripts par la commande "clear", histoire d'avoir une console propre.

Utilisez la commande suivante, puis votre "echo", comme ceci :

tput cup 2 3
echo -n "${YELLOW}- Tâche n°1"

Cette commande aura pour effet de vous afficher "- Tâche n°1" en jaune, sur la 2ème ligne, et avec un décallage vers la droite de 3 caractères.

Une autre ? La voici :

tput cup 4 10
echo -n "${YELLOW}- Mise à jour de data/configuration/parametres.xml"
sed -i "s/www/dev/g" $DEV_FOLDER/data/configuration/parametres.xml
tput cup 4 80
echo "${GREEN}[OK]"

Cette commande, nous affiche "- Mise à jour de data/configuration/parametres.xml" en jaune, sur la 4ème ligne, et avec un décallage de 10 caractères vers la droite. De plus, nous afficherons un petit "[OK]" avec un décallage de 80 caractères vers la droite !

À partir de maintenant, vous pouvez ajouter des lignes, et organiser le placement comme vous le voulez. Là, que le premier echo fasse 10 caractères ou 20, le echo qui affiche [OK] sera dans tous les cas décallés de 80 caractères, en partant du début !

Si vous voulez partir de la fin, utilisez la commande tput cols, qui vous renvoie le nombre de caractères de large que votre console fait.

Bref, comme d'habitude, RTFM !

";s:7:"dateiso";s:15:"20120919_200500";}s:15:"20120919_180500";a:7:{s:5:"title";s:32:"Mettre en forme des scripts Bash";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/wCd-TXCJBlM/index.php";s:4:"guid";s:79:"http://www.jeoffrey54.com/index.php?article123/mettre-en-forme-des-scripts-bash";s:7:"pubDate";s:31:"Wed, 19 Sep 2012 18:05:00 +0200";s:11:"description";s:2544:"

J'ai pour habitude de développer beaucoup de scripts Shell pour automatiser l'administration de mes serveurs sous Linux. Ça faisait un petit moment que je cherchais par quel moyen je pouvais avoir un peu de mise en forme pour mes scripts Bash (couleurs, tabulations, ...).

Et je suis tombé sur la commande "tput", qui permet de mettre en forme certaines parties de mon script.

De la couleur :

Voici comment mettre un peu de couleur dans vos scripts. Ajoutez ceci au début de votre script :

# Mise en forme
#+ Couleur de base
RESETC="$(tput sgr0)"
# Couleurs + Gras
# Rouge
RED="$(tput bold ; tput setaf 1)"
# Vert
GREEN="$(tput bold ; tput setaf 2)"
# Jaune
YELLOW="$(tput bold ; tput setaf 3)"
# Bleu
BLUE="$(tput bold ; tput setaf 4)"

Une fois que vous avez défini vos couleurs, vous n'avez plus qu'à les utiliser :

echo -n "${YELLOW}- Tâche n°1"

Préfixes par "${COULEUR}" chaque phrase que vous souhaitez mettre en forme !

Du placement, des tabulations :

Faites débuter vos scripts par la commande "clear", histoire d'avoir une console propre.

Utilisez la commande suivante, puis votre "echo", comme ceci :

tput cup 2 3
echo -n "${YELLOW}- Tâche n°1"

Cette commande aura pour effet de vous afficher "- Tâche n°1" en jaune, sur la 2ème ligne, et avec un décallage vers la droite de 3 caractères.

Une autre ? La voici :

tput cup 4 10
echo -n "${YELLOW}- Mise à jour de data/configuration/parametres.xml"
sed -i "s/www/dev/g" $DEV_FOLDER/data/configuration/parametres.xml
tput cup 4 80
echo "${GREEN}[OK]"

Cette commande, nous affiche "- Mise à jour de data/configuration/parametres.xml" en jaune, sur la 4ème ligne, et avec un décallage de 10 caractères vers la droite. De plus, nous afficherons un petit "[OK]" avec un décallage de 80 caractères vers la droite !

À partir de maintenant, vous pouvez ajouter des lignes, et organiser le placement comme vous le voulez. Là, que le premier echo fasse 10 caractères ou 20, le echo qui affiche [OK] sera dans tous les cas décallés de 80 caractères, en partant du début !

Si vous voulez partir de la fin, utilisez la commande tput cols, qui vous renvoie le nombre de caractères de large que votre console fait.

Bref, comme d'habitude, RTFM !

";s:7:"content";s:2544:"

J'ai pour habitude de développer beaucoup de scripts Shell pour automatiser l'administration de mes serveurs sous Linux. Ça faisait un petit moment que je cherchais par quel moyen je pouvais avoir un peu de mise en forme pour mes scripts Bash (couleurs, tabulations, ...).

Et je suis tombé sur la commande "tput", qui permet de mettre en forme certaines parties de mon script.

De la couleur :

Voici comment mettre un peu de couleur dans vos scripts. Ajoutez ceci au début de votre script :

# Mise en forme
#+ Couleur de base
RESETC="$(tput sgr0)"
# Couleurs + Gras
# Rouge
RED="$(tput bold ; tput setaf 1)"
# Vert
GREEN="$(tput bold ; tput setaf 2)"
# Jaune
YELLOW="$(tput bold ; tput setaf 3)"
# Bleu
BLUE="$(tput bold ; tput setaf 4)"

Une fois que vous avez défini vos couleurs, vous n'avez plus qu'à les utiliser :

echo -n "${YELLOW}- Tâche n°1"

Préfixes par "${COULEUR}" chaque phrase que vous souhaitez mettre en forme !

Du placement, des tabulations :

Faites débuter vos scripts par la commande "clear", histoire d'avoir une console propre.

Utilisez la commande suivante, puis votre "echo", comme ceci :

tput cup 2 3
echo -n "${YELLOW}- Tâche n°1"

Cette commande aura pour effet de vous afficher "- Tâche n°1" en jaune, sur la 2ème ligne, et avec un décallage vers la droite de 3 caractères.

Une autre ? La voici :

tput cup 4 10
echo -n "${YELLOW}- Mise à jour de data/configuration/parametres.xml"
sed -i "s/www/dev/g" $DEV_FOLDER/data/configuration/parametres.xml
tput cup 4 80
echo "${GREEN}[OK]"

Cette commande, nous affiche "- Mise à jour de data/configuration/parametres.xml" en jaune, sur la 4ème ligne, et avec un décallage de 10 caractères vers la droite. De plus, nous afficherons un petit "[OK]" avec un décallage de 80 caractères vers la droite !

À partir de maintenant, vous pouvez ajouter des lignes, et organiser le placement comme vous le voulez. Là, que le premier echo fasse 10 caractères ou 20, le echo qui affiche [OK] sera dans tous les cas décallés de 80 caractères, en partant du début !

Si vous voulez partir de la fin, utilisez la commande tput cols, qui vous renvoie le nombre de caractères de large que votre console fait.

Bref, comme d'habitude, RTFM !

";s:7:"dateiso";s:15:"20120919_180500";}s:15:"20120906_193900";a:7:{s:5:"title";s:55:"ArchLinux : des sous-titres pour vos vidéos en console";s:4:"link";s:109:"http://feedproxy.google.com/~r/Jeoffrey54/~3/qYRMM5rCxb4/archlinux-des-sous-titres-pour-vos-videos-en-console";s:4:"guid";s:89:"http://www.jeoffrey54.com/article122/archlinux-des-sous-titres-pour-vos-videos-en-console";s:7:"pubDate";s:31:"Thu, 06 Sep 2012 17:39:00 +0000";s:11:"description";s:3921:"

C'est grâce à l'ami Korben que j'ai découvert Subliminal, ce petit outil en console permettant de récupérer des sous-titres pour nos séries / films préféré(e)s !

Pour l'installer sous ArchLinux, rien de plus simple, utilisons AUR :

yaourt subliminal

Yaourt va s'occuper de récupérer les dépendances, à savoir :

Puis, pour l'utiliser :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Remplacez "fr" par la langue choisie pour vos sous-titres. Chez moi, cette commande génère une erreur :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
Traceback (most recent call last):
  File "/usr/bin/subliminal", line 99, in <module>
    main()
  File "/usr/bin/subliminal", line 83, in main
    force=args.force, multi=args.multi, scan_filter=scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 134, in download_subtitles
    subtitles_by_video = self.list_subtitles(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 120, in list_subtitles
    tasks = create_list_tasks(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 57, in create_list_tasks
    scan_result.extend(scan(p, max_depth, scan_filter))
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 231, in scan
    return [(video, video.scan())]
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 138, in scan
    existing = [f for f in os.listdir(folder) if f.startswith(basename)]
OSError: [Errno 2] No such file or directory: ''

Pour contouner cette erreur, ajoutez "./" à votre fichier, comme ci :

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Cela me génère toujours des erreurs, mais à la fin vous pouvez constater la ligne Downloaded 1 subtitle(s) for 1 video(s).

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
WARNING: subliminal.core Service bierdopje not available: none of available features could be used. One of ['xml'] required
ERROR: subliminal.async Exception raised in worker Thread-2
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 47, in run
    result = consume_task(task, self.services)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 131, in consume_task
    result = service.list(task.video, task.languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/__init__.py", line 154, in list
    return self.list_checked(video, languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 49, in list_checked
    results = self.query(video.path or video.release, languages, get_keywords(video.guess), series=video.series, season=video.season, episode=video.episode)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 81, in query
    sub_keywords = split_keyword(self.release_pattern.search(sub.contents[1]).group(1).lower())
AttributeError: 'NoneType' object has no attribute 'group'
**************************************************
Downloaded 1 subtitle(s) for 1 video(s)
./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.srt from tvsubtitles
**************************************************
";s:7:"content";s:3921:"

C'est grâce à l'ami Korben que j'ai découvert Subliminal, ce petit outil en console permettant de récupérer des sous-titres pour nos séries / films préféré(e)s !

Pour l'installer sous ArchLinux, rien de plus simple, utilisons AUR :

yaourt subliminal

Yaourt va s'occuper de récupérer les dépendances, à savoir :

Puis, pour l'utiliser :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Remplacez "fr" par la langue choisie pour vos sous-titres. Chez moi, cette commande génère une erreur :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
Traceback (most recent call last):
  File "/usr/bin/subliminal", line 99, in <module>
    main()
  File "/usr/bin/subliminal", line 83, in main
    force=args.force, multi=args.multi, scan_filter=scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 134, in download_subtitles
    subtitles_by_video = self.list_subtitles(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 120, in list_subtitles
    tasks = create_list_tasks(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 57, in create_list_tasks
    scan_result.extend(scan(p, max_depth, scan_filter))
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 231, in scan
    return [(video, video.scan())]
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 138, in scan
    existing = [f for f in os.listdir(folder) if f.startswith(basename)]
OSError: [Errno 2] No such file or directory: ''

Pour contouner cette erreur, ajoutez "./" à votre fichier, comme ci :

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Cela me génère toujours des erreurs, mais à la fin vous pouvez constater la ligne Downloaded 1 subtitle(s) for 1 video(s).

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
WARNING: subliminal.core Service bierdopje not available: none of available features could be used. One of ['xml'] required
ERROR: subliminal.async Exception raised in worker Thread-2
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 47, in run
    result = consume_task(task, self.services)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 131, in consume_task
    result = service.list(task.video, task.languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/__init__.py", line 154, in list
    return self.list_checked(video, languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 49, in list_checked
    results = self.query(video.path or video.release, languages, get_keywords(video.guess), series=video.series, season=video.season, episode=video.episode)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 81, in query
    sub_keywords = split_keyword(self.release_pattern.search(sub.contents[1]).group(1).lower())
AttributeError: 'NoneType' object has no attribute 'group'
**************************************************
Downloaded 1 subtitle(s) for 1 video(s)
./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.srt from tvsubtitles
**************************************************
";s:7:"dateiso";s:15:"20120906_193900";}s:15:"20120906_173900";a:7:{s:5:"title";s:55:"ArchLinux : des sous-titres pour vos vidéos en console";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/uGSeCfQxGpY/index.php";s:4:"guid";s:99:"http://www.jeoffrey54.com/index.php?article122/archlinux-des-sous-titres-pour-vos-videos-en-console";s:7:"pubDate";s:31:"Thu, 06 Sep 2012 17:39:00 +0200";s:11:"description";s:3928:"

C'est grâce à l'ami Korben que j'ai découvert Subliminal, ce petit outil en console permettant de récupérer des sous-titres pour nos séries / films préféré(e)s !

Pour l'installer sous ArchLinux, rien de plus simple, utilisons AUR :

yaourt subliminal

Yaourt va s'occuper de récupérer les dépendances, à savoir :

Puis, pour l'utiliser :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Remplacez "fr" par la langue choisie pour vos sous-titres. Chez moi, cette commande génère une erreur :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
Traceback (most recent call last):
  File "/usr/bin/subliminal", line 99, in <module>
    main()
  File "/usr/bin/subliminal", line 83, in main
    force=args.force, multi=args.multi, scan_filter=scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 134, in download_subtitles
    subtitles_by_video = self.list_subtitles(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 120, in list_subtitles
    tasks = create_list_tasks(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 57, in create_list_tasks
    scan_result.extend(scan(p, max_depth, scan_filter))
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 231, in scan
    return [(video, video.scan())]
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 138, in scan
    existing = [f for f in os.listdir(folder) if f.startswith(basename)]
OSError: [Errno 2] No such file or directory: ''

Pour contouner cette erreur, ajoutez "./" à votre fichier, comme ci :

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Cela me génère toujours des erreurs, mais à la fin vous pouvez constater la ligne Downloaded 1 subtitle(s) for 1 video(s).

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
WARNING: subliminal.core Service bierdopje not available: none of available features could be used. One of ['xml'] required
ERROR: subliminal.async Exception raised in worker Thread-2
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 47, in run
    result = consume_task(task, self.services)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 131, in consume_task
    result = service.list(task.video, task.languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/__init__.py", line 154, in list
    return self.list_checked(video, languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 49, in list_checked
    results = self.query(video.path or video.release, languages, get_keywords(video.guess), series=video.series, season=video.season, episode=video.episode)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 81, in query
    sub_keywords = split_keyword(self.release_pattern.search(sub.contents[1]).group(1).lower())
AttributeError: 'NoneType' object has no attribute 'group'
**************************************************
Downloaded 1 subtitle(s) for 1 video(s)
./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.srt from tvsubtitles
**************************************************
";s:7:"content";s:3928:"

C'est grâce à l'ami Korben que j'ai découvert Subliminal, ce petit outil en console permettant de récupérer des sous-titres pour nos séries / films préféré(e)s !

Pour l'installer sous ArchLinux, rien de plus simple, utilisons AUR :

yaourt subliminal

Yaourt va s'occuper de récupérer les dépendances, à savoir :

Puis, pour l'utiliser :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Remplacez "fr" par la langue choisie pour vos sous-titres. Chez moi, cette commande génère une erreur :

subliminal -l fr Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
Traceback (most recent call last):
  File "/usr/bin/subliminal", line 99, in <module>
    main()
  File "/usr/bin/subliminal", line 83, in main
    force=args.force, multi=args.multi, scan_filter=scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 134, in download_subtitles
    subtitles_by_video = self.list_subtitles(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 120, in list_subtitles
    tasks = create_list_tasks(paths, languages, services, force, multi, cache_dir, max_depth, scan_filter)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 57, in create_list_tasks
    scan_result.extend(scan(p, max_depth, scan_filter))
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 231, in scan
    return [(video, video.scan())]
  File "/usr/lib/python2.7/site-packages/subliminal/videos.py", line 138, in scan
    existing = [f for f in os.listdir(folder) if f.startswith(basename)]
OSError: [Errno 2] No such file or directory: ''

Pour contouner cette erreur, ajoutez "./" à votre fichier, comme ci :

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv

Cela me génère toujours des erreurs, mais à la fin vous pouvez constater la ligne Downloaded 1 subtitle(s) for 1 video(s).

subliminal -l fr ./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.mkv 
WARNING: subliminal.core Service bierdopje not available: none of available features could be used. One of ['xml'] required
ERROR: subliminal.async Exception raised in worker Thread-2
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/subliminal/async.py", line 47, in run
    result = consume_task(task, self.services)
  File "/usr/lib/python2.7/site-packages/subliminal/core.py", line 131, in consume_task
    result = service.list(task.video, task.languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/__init__.py", line 154, in list
    return self.list_checked(video, languages)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 49, in list_checked
    results = self.query(video.path or video.release, languages, get_keywords(video.guess), series=video.series, season=video.season, episode=video.episode)
  File "/usr/lib/python2.7/site-packages/subliminal/services/subswiki.py", line 81, in query
    sub_keywords = split_keyword(self.release_pattern.search(sub.contents[1]).group(1).lower())
AttributeError: 'NoneType' object has no attribute 'group'
**************************************************
Downloaded 1 subtitle(s) for 1 video(s)
./Game.of.Thrones.S01E02.720p.BluRay.X264-REWARD.srt from tvsubtitles
**************************************************
";s:7:"dateiso";s:15:"20120906_173900";}s:15:"20120830_140700";a:7:{s:5:"title";s:26:"Installation de Qemu - KVM";s:4:"link";s:81:"http://feedproxy.google.com/~r/Jeoffrey54/~3/ymvNz9BLVcI/installation-de-qemu-kvm";s:4:"guid";s:61:"http://www.jeoffrey54.com/article121/installation-de-qemu-kvm";s:7:"pubDate";s:31:"Thu, 30 Aug 2012 14:07:00 +0200";s:11:"description";s:1481:"

Je ne prétends pas sortir un énième article sur l'installation de l'environnement de virtualisation Qemu KVM, Internet en regorge de toute façon. Cet article va me servir uniquement de pense-bète le jour que je devrais en réinstaller un, donc tant qu'à faire, autant le partager !

Installation de Qemu KVM :

On installe les paquets requis :

apt-get install libvirt-bin kvm qemu virtinst bridge-utils

On paramètre notre bridge :

brctl addbr br0

Éditez /etc/network/interfaces, et commentez-y la définition d'eth0 (auto eth0 et iface eth0 inet static), et ajoutez-y la définition du bridge :

Votre fichier /etc/network/interfaces doit ressembler à ceci :

# The loopback network interface
auto lo
iface lo inet loopback

auto br0
iface br0 inet static
                address 192.168.2.254
                netmask 255.255.255.0
                network 192.168.2.0
                broadcast 192.168.2.255
                gateway 192.168.2.1
                dns-nameservers 192.168.0.1
                bridge_ports eth0
                bridge_maxwait 0
                bridge_hello 0
                bridge_fr 0

Rebootez votre serveur, et vous êtes maintenant prêt à créer des machinese virtuelles !

N'hésitez pas à utiliser virt-manager pour gérer celles-ci !

";s:7:"content";s:1481:"

Je ne prétends pas sortir un énième article sur l'installation de l'environnement de virtualisation Qemu KVM, Internet en regorge de toute façon. Cet article va me servir uniquement de pense-bète le jour que je devrais en réinstaller un, donc tant qu'à faire, autant le partager !

Installation de Qemu KVM :

On installe les paquets requis :

apt-get install libvirt-bin kvm qemu virtinst bridge-utils

On paramètre notre bridge :

brctl addbr br0

Éditez /etc/network/interfaces, et commentez-y la définition d'eth0 (auto eth0 et iface eth0 inet static), et ajoutez-y la définition du bridge :

Votre fichier /etc/network/interfaces doit ressembler à ceci :

# The loopback network interface
auto lo
iface lo inet loopback

auto br0
iface br0 inet static
                address 192.168.2.254
                netmask 255.255.255.0
                network 192.168.2.0
                broadcast 192.168.2.255
                gateway 192.168.2.1
                dns-nameservers 192.168.0.1
                bridge_ports eth0
                bridge_maxwait 0
                bridge_hello 0
                bridge_fr 0

Rebootez votre serveur, et vous êtes maintenant prêt à créer des machinese virtuelles !

N'hésitez pas à utiliser virt-manager pour gérer celles-ci !

";s:7:"dateiso";s:15:"20120830_140700";}s:15:"20120830_105100";a:7:{s:5:"title";s:40:"Linux : assembler des fichiers splittés";s:4:"link";s:94:"http://feedproxy.google.com/~r/Jeoffrey54/~3/YMt5g0sHcDU/linux-assembler-des-fichiers-splittes";s:4:"guid";s:74:"http://www.jeoffrey54.com/article120/linux-assembler-des-fichiers-splittes";s:7:"pubDate";s:31:"Thu, 30 Aug 2012 10:51:00 +0200";s:11:"description";s:670:"

Hier, je cherchais comment assembler des fichiers de ce type :

monfichier.iso.001
monfichier.iso.002
monfichier.iso.003
monfichier.iso.004
monfichier.iso.005
monfichier.iso.006
monfichier.iso.007
monfichier.iso.008
monfichier.iso.009

Au final, c'est plutôt simple, il suffit d'afficher tous les fichiers à la suite, et de rediriger la sortie vers le fichier final, comme ceci :

cat monfichier.iso.* > monfichier.iso

Cela va afficher tous les fichiers commençant par "monfichier.iso.", et rediriger la sortie vers "monfichier.iso".

";s:7:"content";s:670:"

Hier, je cherchais comment assembler des fichiers de ce type :

monfichier.iso.001
monfichier.iso.002
monfichier.iso.003
monfichier.iso.004
monfichier.iso.005
monfichier.iso.006
monfichier.iso.007
monfichier.iso.008
monfichier.iso.009

Au final, c'est plutôt simple, il suffit d'afficher tous les fichiers à la suite, et de rediriger la sortie vers le fichier final, comme ceci :

cat monfichier.iso.* > monfichier.iso

Cela va afficher tous les fichiers commençant par "monfichier.iso.", et rediriger la sortie vers "monfichier.iso".

";s:7:"dateiso";s:15:"20120830_105100";}s:15:"20120827_103500";a:7:{s:5:"title";s:31:"Gérer Google Music via Firefox";s:4:"link";s:87:"http://feedproxy.google.com/~r/Jeoffrey54/~3/YzuEFu4aD0Y/gerer-google-music-via-firefox";s:4:"guid";s:67:"http://www.jeoffrey54.com/article119/gerer-google-music-via-firefox";s:7:"pubDate";s:31:"Mon, 27 Aug 2012 10:35:00 +0200";s:11:"description";s:1469:"

Je dois le dire, je suis assez fan de Google Music : j'upload mes musiques sur Google Music via le manager, disponile sous Linux, j'y ai accès via mon Galaxy Nexus, et je peux les avoir en hors ligne pour les écouter sur l'autoradio Bluetooth de ma voiture...

Une petite chose me manquait cependant, pouvoir écouter et gérer ma liste d'écoute via Firefox. Pour cela, l'extension GoogleMusic Remote Control va nous aider...

Cette extension permet d'avoir une barre de lecture dans votre barre de modules :

Google Music Remote Control

Installez l'extension, puis allez sur Google Music. Lancez la lecture, et vous verrez que dans votre barre de module, la musique que vous lisez s'affiche ;).

Cette extension supporte même les raccourcis claviers, configurables en cliquant sur la petite icône "paramètres" à côté des boutons "Suivant, pause, précédent".

De plus, cette extension est parfaitement intégrée avec le système de notifications de Gnome Shell !

Enjoy !

";s:7:"content";s:1472:"

Je dois le dire, je suis assez fan de Google Music : j'upload mes musiques sur Google Music via le manager, disponile sous Linux, j'y ai accès via mon Galaxy Nexus, et je peux les avoir en hors ligne pour les écouter sur l'autoradio Bluetooth de ma voiture...

Une petite chose me manquait cependant, pouvoir écouter et gérer ma liste d'écoute via Firefox. Pour cela, l'extension GoogleMusic Remote Control va nous aider...

Cette extension permet d'avoir une barre de lecture dans votre barre de modules :

Google Music Remote Control

Installez l'extension, puis allez sur Google Music. Lancez la lecture, et vous verrez que dans votre barre de module, la musique que vous lisez s'affiche ;).

Cette extension supporte même les raccourcis claviers, configurables en cliquant sur la petite icône "paramètres" à côté des boutons "Suivant, pause, précédent".

De plus, cette extension est parfaitement intégrée avec le système de notifications de Gnome Shell !

Enjoy !

";s:7:"dateiso";s:15:"20120827_103500";}s:15:"20120824_111900";a:7:{s:5:"title";s:48:"Gnome 3 : modifier la taille des icônes du dash";s:4:"link";s:102:"http://feedproxy.google.com/~r/Jeoffrey54/~3/mWY-ef-UB-I/gnome-3-modifier-la-taille-des-icones-du-dash";s:4:"guid";s:82:"http://www.jeoffrey54.com/article118/gnome-3-modifier-la-taille-des-icones-du-dash";s:7:"pubDate";s:31:"Fri, 24 Aug 2012 11:19:00 +0200";s:11:"description";s:894:"

Je cherchais un moyen de réduire la taille du dash de Gnome 3. Le dash, c'est le dock de gauche qui apparaît lorsque vou affichez la liste des fenêtres ou des bureaux.

J'ai trouvé partout comment réduire la taille des icônes de la partie "Applications", mais pas pour modifier les icônes du Dash.

Finalement, voici comment faire :

Editez le fichier /usr/share/gnome-shell/js/ui/dash.js, et cherchez y la ligne suivante :

let iconSizes = [ 16, 22, 24, 32, 48, 64 ];

Supprimez le dernier chiffre, comme ceci :

let iconSizes = [ 16, 22, 24, 32, 48 ];

Enregistrez, et rechargez Gnome Shell :

Alt + F2, puis tapez "r" et entrée.

Si vous voulez encore réduire un peu plus les icônes, supprimez le "48".

";s:7:"content";s:894:"

Je cherchais un moyen de réduire la taille du dash de Gnome 3. Le dash, c'est le dock de gauche qui apparaît lorsque vou affichez la liste des fenêtres ou des bureaux.

J'ai trouvé partout comment réduire la taille des icônes de la partie "Applications", mais pas pour modifier les icônes du Dash.

Finalement, voici comment faire :

Editez le fichier /usr/share/gnome-shell/js/ui/dash.js, et cherchez y la ligne suivante :

let iconSizes = [ 16, 22, 24, 32, 48, 64 ];

Supprimez le dernier chiffre, comme ceci :

let iconSizes = [ 16, 22, 24, 32, 48 ];

Enregistrez, et rechargez Gnome Shell :

Alt + F2, puis tapez "r" et entrée.

Si vous voulez encore réduire un peu plus les icônes, supprimez le "48".

";s:7:"dateiso";s:15:"20120824_111900";}s:15:"20120821_161000";a:7:{s:5:"title";s:37:"Shinken : astuces après installation";s:4:"link";s:91:"http://feedproxy.google.com/~r/Jeoffrey54/~3/Hy--Bb06uRQ/shinken-astuces-apres-installation";s:4:"guid";s:71:"http://www.jeoffrey54.com/article117/shinken-astuces-apres-installation";s:7:"pubDate";s:31:"Tue, 21 Aug 2012 16:10:00 +0200";s:11:"description";s:2004:"

Je me suis récemment mis à Shinken, un logiciel de supervision !

Voici quelques problèmes et leurs solutions que j'ai pu rencontrer lors de mon installation et de mon utilisation !

1. /bin/sh: /usr/local/shinken/libexec/check_cpu: not found

Une fois le produit installé, Shinken se met à monitorer le premier host qu'il trouve, à savoir lui-même. Seulement, sur les divers éléments surveillés comme le cpu et la RAM, j'avais l'erreur suivante :

/bin/sh: /usr/local/shinken/libexec/check_cpu: not found 

Cela vient des plugins Nagios qui ne sont pas installés. Pour se faire, exécutez les commandes suivantes :

cd /usr/loca/shinken/
./install -p nagios-plugins
./install -p check_mem
/etc/init.d/shinken restart

Si check_cpu est toujours introuvable :

su shinken
cd /usr/local/shinken/libexec
wget https://www.monitoringexchange.org/attachment/download/Check-Plugins/Operating-Systems/Linux/check_cpu/check_cpu
chmod a+x check_cpu
exit
/etc/init.d/shinken restart

2. Pour monitorer MySQL

Ajoutez "mysql" à la directive use :

use linux,mysql

Et comme le dit Jean, les templates de base se trouvent dans etc/packs, il suffit d'ajouter http et/ou https à votre directive "use", et voilà une paire de services en plus !

3. Impossible d'accéder aux MIBs fvia SNMP sur un host Ubuntu

Par défaut, snmpd sous Ubuntu n'autorise des connexions qu'en local. Il faut alors éditer le fichier /etc/default/snmpd, et modifier cette ligne :

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'

Remplacez 127.0.0.1 par l'IP de votre serveur, et relancez snmpd.

";s:7:"content";s:2004:"

Je me suis récemment mis à Shinken, un logiciel de supervision !

Voici quelques problèmes et leurs solutions que j'ai pu rencontrer lors de mon installation et de mon utilisation !

1. /bin/sh: /usr/local/shinken/libexec/check_cpu: not found

Une fois le produit installé, Shinken se met à monitorer le premier host qu'il trouve, à savoir lui-même. Seulement, sur les divers éléments surveillés comme le cpu et la RAM, j'avais l'erreur suivante :

/bin/sh: /usr/local/shinken/libexec/check_cpu: not found 

Cela vient des plugins Nagios qui ne sont pas installés. Pour se faire, exécutez les commandes suivantes :

cd /usr/loca/shinken/
./install -p nagios-plugins
./install -p check_mem
/etc/init.d/shinken restart

Si check_cpu est toujours introuvable :

su shinken
cd /usr/local/shinken/libexec
wget https://www.monitoringexchange.org/attachment/download/Check-Plugins/Operating-Systems/Linux/check_cpu/check_cpu
chmod a+x check_cpu
exit
/etc/init.d/shinken restart

2. Pour monitorer MySQL

Ajoutez "mysql" à la directive use :

use linux,mysql

Et comme le dit Jean, les templates de base se trouvent dans etc/packs, il suffit d'ajouter http et/ou https à votre directive "use", et voilà une paire de services en plus !

3. Impossible d'accéder aux MIBs fvia SNMP sur un host Ubuntu

Par défaut, snmpd sous Ubuntu n'autorise des connexions qu'en local. Il faut alors éditer le fichier /etc/default/snmpd, et modifier cette ligne :

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'

Remplacez 127.0.0.1 par l'IP de votre serveur, et relancez snmpd.

";s:7:"dateiso";s:15:"20120821_161000";}s:15:"20120817_172900";a:7:{s:5:"title";s:43:"Exim : relancer ou purger la file d'attente";s:4:"link";s:98:"http://feedproxy.google.com/~r/Jeoffrey54/~3/1UG0gcuJrrc/exim-relancer-ou-purger-la-file-d-attente";s:4:"guid";s:78:"http://www.jeoffrey54.com/article116/exim-relancer-ou-purger-la-file-d-attente";s:7:"pubDate";s:31:"Fri, 17 Aug 2012 17:29:00 +0200";s:11:"description";s:489:"

Un petit article pour rappeler l'utilisation de la file d'attente avec Exim :

Pour afficher file d'attente courante sous Exim :

exim -bp

Pour relancer la file d'attente :

runq

Pour supprimer toute la file d'attente d'Exim :

exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

À bientôt ;).

";s:7:"content";s:489:"

Un petit article pour rappeler l'utilisation de la file d'attente avec Exim :

Pour afficher file d'attente courante sous Exim :

exim -bp

Pour relancer la file d'attente :

runq

Pour supprimer toute la file d'attente d'Exim :

exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

À bientôt ;).

";s:7:"dateiso";s:15:"20120817_172900";}s:15:"20120817_105800";a:7:{s:5:"title";s:47:"Xen : Device 51714 (vbd) could not be connected";s:4:"link";s:100:"http://feedproxy.google.com/~r/Jeoffrey54/~3/jufJtCoyiSA/xen-device-51714-vbd-could-not-be-connected";s:4:"guid";s:80:"http://www.jeoffrey54.com/article115/xen-device-51714-vbd-could-not-be-connected";s:7:"pubDate";s:31:"Fri, 17 Aug 2012 10:58:00 +0200";s:11:"description";s:1289:"

Aujourd'hui, en migrant ma machine virtuelle Xen sur un autre serveur de virtualisation, j'ai eu cette erreur quand j'ai fait un "xm create machine.cfg" :

Error: Device 51714 (vbd) could not be connected.

L'erreur vient des "loops" qui sont actuellement en nombre insuffisant. Pour vérifier les loops que vous avez :

losetup -a

Cette commande permet de vérifier combien de loops vous pouvez créer :

ls -la /dev/loop* | wc -l

Pour ma part, cette limite était à 8.

Si vous souhaitez augmenter cette valeur, éditez (ou créez) le fichier /etc/modprobe.d/local-loop.conf avec la ligne suivante :

options loop max_loop=128

Enregistrez, et redémarrez votre serveur. Si vous voulez éviter de redémarrer, vous pouvez toujours décharger le module du noyau, et le recharger, mais attention, cette manipulation doit s'effectuer uniquement si TOUTES les machinese virtuelles sont éteintes ! :

rmmod loop
modprobe loop

Maintenant, relancez la commande précédente pour vérifier le nombre de loops disponibles, vous verrez que vous êtes maintenant limité à 128 loops !

";s:7:"content";s:1289:"

Aujourd'hui, en migrant ma machine virtuelle Xen sur un autre serveur de virtualisation, j'ai eu cette erreur quand j'ai fait un "xm create machine.cfg" :

Error: Device 51714 (vbd) could not be connected.

L'erreur vient des "loops" qui sont actuellement en nombre insuffisant. Pour vérifier les loops que vous avez :

losetup -a

Cette commande permet de vérifier combien de loops vous pouvez créer :

ls -la /dev/loop* | wc -l

Pour ma part, cette limite était à 8.

Si vous souhaitez augmenter cette valeur, éditez (ou créez) le fichier /etc/modprobe.d/local-loop.conf avec la ligne suivante :

options loop max_loop=128

Enregistrez, et redémarrez votre serveur. Si vous voulez éviter de redémarrer, vous pouvez toujours décharger le module du noyau, et le recharger, mais attention, cette manipulation doit s'effectuer uniquement si TOUTES les machinese virtuelles sont éteintes ! :

rmmod loop
modprobe loop

Maintenant, relancez la commande précédente pour vérifier le nombre de loops disponibles, vous verrez que vous êtes maintenant limité à 128 loops !

";s:7:"dateiso";s:15:"20120817_105800";}s:15:"20120813_143600";a:7:{s:5:"title";s:51:"Augmenter la limitation de RAM sous Squeeze 32 bits";s:4:"link";s:108:"http://feedproxy.google.com/~r/Jeoffrey54/~3/hWm2aza7Fqw/augmenter-la-limitation-de-ram-sous-squeeze-32-bits";s:4:"guid";s:88:"http://www.jeoffrey54.com/article114/augmenter-la-limitation-de-ram-sous-squeeze-32-bits";s:7:"pubDate";s:31:"Mon, 13 Aug 2012 14:36:00 +0200";s:11:"description";s:408:"

Par défaut, Debian Squeeze (32 bits) limite la taille de la RAM à 4 Go et des poussières.

Installez le paquet suivant pour passer cette limitation à 64 Go :

apt-get install linux-image-2.6-686-bigmem

Rebootez, et vérifiez votre capacité de mémoire via la commande free.

";s:7:"content";s:408:"

Par défaut, Debian Squeeze (32 bits) limite la taille de la RAM à 4 Go et des poussières.

Installez le paquet suivant pour passer cette limitation à 64 Go :

apt-get install linux-image-2.6-686-bigmem

Rebootez, et vérifiez votre capacité de mémoire via la commande free.

";s:7:"dateiso";s:15:"20120813_143600";}s:15:"20120801_224700";a:7:{s:5:"title";s:41:"Installer Spotify natif sur Debian Wheezy";s:4:"link";s:98:"http://feedproxy.google.com/~r/Jeoffrey54/~3/czljGFWuL0E/installer-spotify-natif-sur-debian-wheezy";s:4:"guid";s:78:"http://www.jeoffrey54.com/article113/installer-spotify-natif-sur-debian-wheezy";s:7:"pubDate";s:31:"Wed, 01 Aug 2012 22:47:00 +0200";s:11:"description";s:2396:"

J'ai récemment installé la dernière version testing de Crunchbang, qui est actuellement basée sur Debian Wheezy. J'ai voulu installer le client natif Spotify sous Linux. Pour info, Spotify s'installe de la façon suivante :

Ajoutez cette ligne à votre fichier /etc/apt/sources.list :

deb http://repository.spotify.com stable non-free

Puis, on ajoute la clé, on met à jour la liste des paquets, et on installe Spotify :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 94558F59
sudo apt-get update
sudo apt-get install spotify-client-qt

L'ennui, c'est qu'apt essaye d'installer le paquet libssl0.9.8, qui n'est plus disponible dans les dépôts de Wheezy... Du coup, l'installation de Spotify s'arrête là...

Après quelques recherches, voici comment installer Spotify ;).

Éditez votre fichier /etc/apt/sources.list et commentez toutes les lignes sauf celle ajoutée précédemment, et insérez-y celle ci :

deb http://ftp.uk.debian.org/debian stable main contrib non-free

Là, nous venons de désactiver les dépôts de Wheezy, et nous allons utiliser les dépôts de la version stable de Debian.

Maintenant, on met à jour la liste des dépôts, et on installe notre paquet :

apt-get update
apt-get install libssl0.9.8

Une fois que libssl0.9.8 est installé, nous allons de nouveau éditer le fichier /etc/apt/sources.list : supprimez la ligne qui concerne les dépôts stable, et décommentez ceux que nous avions désactivés précédemment.

Note : cette étape est importante, il ne faut pas que vous restiez avec les dépôts de la version stable !

Encore une fois, on met à jour la liste des paquets, et on installe Spotify :

apt-get update
apt-get install spotify-client-qt

Et c'est terminé ! Notez que si vous faites la commande "dpkg -l | grep libssl", le résultat sera le suivant :

ii  libssl0.9.8                          0.9.8o-4squeeze12                  SSL shared libraries
ii  libssl1.0.0:i386                     1.0.1c-3                           SSL shared libraries

Nous avons bien libssl0.9.8 qui provient de Squeeze, et libssl1.0.0 qui provient de Wheezy !

";s:7:"content";s:2396:"

J'ai récemment installé la dernière version testing de Crunchbang, qui est actuellement basée sur Debian Wheezy. J'ai voulu installer le client natif Spotify sous Linux. Pour info, Spotify s'installe de la façon suivante :

Ajoutez cette ligne à votre fichier /etc/apt/sources.list :

deb http://repository.spotify.com stable non-free

Puis, on ajoute la clé, on met à jour la liste des paquets, et on installe Spotify :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 94558F59
sudo apt-get update
sudo apt-get install spotify-client-qt

L'ennui, c'est qu'apt essaye d'installer le paquet libssl0.9.8, qui n'est plus disponible dans les dépôts de Wheezy... Du coup, l'installation de Spotify s'arrête là...

Après quelques recherches, voici comment installer Spotify ;).

Éditez votre fichier /etc/apt/sources.list et commentez toutes les lignes sauf celle ajoutée précédemment, et insérez-y celle ci :

deb http://ftp.uk.debian.org/debian stable main contrib non-free

Là, nous venons de désactiver les dépôts de Wheezy, et nous allons utiliser les dépôts de la version stable de Debian.

Maintenant, on met à jour la liste des dépôts, et on installe notre paquet :

apt-get update
apt-get install libssl0.9.8

Une fois que libssl0.9.8 est installé, nous allons de nouveau éditer le fichier /etc/apt/sources.list : supprimez la ligne qui concerne les dépôts stable, et décommentez ceux que nous avions désactivés précédemment.

Note : cette étape est importante, il ne faut pas que vous restiez avec les dépôts de la version stable !

Encore une fois, on met à jour la liste des paquets, et on installe Spotify :

apt-get update
apt-get install spotify-client-qt

Et c'est terminé ! Notez que si vous faites la commande "dpkg -l | grep libssl", le résultat sera le suivant :

ii  libssl0.9.8                          0.9.8o-4squeeze12                  SSL shared libraries
ii  libssl1.0.0:i386                     1.0.1c-3                           SSL shared libraries

Nous avons bien libssl0.9.8 qui provient de Squeeze, et libssl1.0.0 qui provient de Wheezy !

";s:7:"dateiso";s:15:"20120801_224700";}s:15:"20120727_155900";a:7:{s:5:"title";s:31:"Android ICS : un mp3 au réveil";s:4:"link";s:85:"http://feedproxy.google.com/~r/Jeoffrey54/~3/Y1oruBnqTs0/android-ics-un-mp3-au-reveil";s:4:"guid";s:65:"http://www.jeoffrey54.com/article112/android-ics-un-mp3-au-reveil";s:7:"pubDate";s:31:"Fri, 27 Jul 2012 15:59:00 +0200";s:11:"description";s:1277:"

Sous Android 2, j'étais en mesure de choisir une musique en guise de réveil. Sous Ice Cream Sandwich et Jelly Bean, plus moyen...

Voici une méthode simple pour ajouter votre musique à la liste des sons proposés par l'application native d'Android.

Nous allons utiliser l'application SwiFTP, que j'ai déjà présenté sur ce blog.

Une fois que vous êtes connecté à votre téléphone, ajoutez vos musiques dans le dossier /sdcard/Alarms/. Normalement, il n'y actuellement aucun fichier dans ce dossier. Grâce à SwiFTP, envoyez vos fichiers .mp3 dans le dossier en question.

Maintenant, retournez sur Android, et allez dans l'application Horloge, et choisissez l'option "Sonnerie". Vous verrez qu'en plus des habituels "Cesium, Fermium, Hassium" et compagnie, vous aurez en plus la musique que vous avez ajouté !

Réveil

";s:7:"content";s:1283:"

Sous Android 2, j'étais en mesure de choisir une musique en guise de réveil. Sous Ice Cream Sandwich et Jelly Bean, plus moyen...

Voici une méthode simple pour ajouter votre musique à la liste des sons proposés par l'application native d'Android.

Nous allons utiliser l'application SwiFTP, que j'ai déjà présenté sur ce blog.

Une fois que vous êtes connecté à votre téléphone, ajoutez vos musiques dans le dossier /sdcard/Alarms/. Normalement, il n'y actuellement aucun fichier dans ce dossier. Grâce à SwiFTP, envoyez vos fichiers .mp3 dans le dossier en question.

Maintenant, retournez sur Android, et allez dans l'application Horloge, et choisissez l'option "Sonnerie". Vous verrez qu'en plus des habituels "Cesium, Fermium, Hassium" et compagnie, vous aurez en plus la musique que vous avez ajouté !

Réveil

";s:7:"dateiso";s:15:"20120727_155900";}s:15:"20120723_180200";a:7:{s:5:"title";s:9:"ArchLinux";s:4:"link";s:66:"http://feedproxy.google.com/~r/Jeoffrey54/~3/fGbtfVoDktQ/archlinux";s:4:"guid";s:46:"http://www.jeoffrey54.com/article111/archlinux";s:7:"pubDate";s:31:"Mon, 23 Jul 2012 18:02:00 +0200";s:11:"description";s:1381:"

Arch

Un petit article pour vous dire qu'une nouvelle release d'ArchLinux est sortie, estampillée 2012-07-15, disponible ici. Non, il ne manque rien, maintenant il n'y a plus qu'une image fournie ! L'image "dual" permet de booter sur un système i686 ou x86_64 !

Au programme, la suppression d'AIF, communément appelé Arch Installation Framework. C'était grosso-modo l'interface d'installation d'Arch lorsque vous tapiez /arch/setup. Cette interface a été supprimée par manque d'updates ! Maintenant, nous disposons d'un ensemble de scripts pour installer le système. N'hésitez pas à consulter le Wiki d'Archlinux.fr pour plus d'informations sur l'utilisation de ces scripts !

Seconde grande nouveauté, le trousseau de clés de pacman est maintenant initialisé de manière automatique ! Cela signifie que la vérification des signatures des paquets sera faite automatiquement lors de l'installation et même après !

Il est également prévu d'augmenter le rythme de sortie des images d'ArchLinux : une par mois.

";s:7:"content";s:1384:"

Arch

Un petit article pour vous dire qu'une nouvelle release d'ArchLinux est sortie, estampillée 2012-07-15, disponible ici. Non, il ne manque rien, maintenant il n'y a plus qu'une image fournie ! L'image "dual" permet de booter sur un système i686 ou x86_64 !

Au programme, la suppression d'AIF, communément appelé Arch Installation Framework. C'était grosso-modo l'interface d'installation d'Arch lorsque vous tapiez /arch/setup. Cette interface a été supprimée par manque d'updates ! Maintenant, nous disposons d'un ensemble de scripts pour installer le système. N'hésitez pas à consulter le Wiki d'Archlinux.fr pour plus d'informations sur l'utilisation de ces scripts !

Seconde grande nouveauté, le trousseau de clés de pacman est maintenant initialisé de manière automatique ! Cela signifie que la vérification des signatures des paquets sera faite automatiquement lors de l'installation et même après !

Il est également prévu d'augmenter le rythme de sortie des images d'ArchLinux : une par mois.

";s:7:"dateiso";s:15:"20120723_180200";}s:15:"20120718_112900";a:7:{s:5:"title";s:33:"ArchLinux : Mise à jour de Glibc";s:4:"link";s:87:"http://feedproxy.google.com/~r/Jeoffrey54/~3/ivFNrEDwGlc/archlinux-mise-a-jour-de-glibc";s:4:"guid";s:67:"http://www.jeoffrey54.com/article110/archlinux-mise-a-jour-de-glibc";s:7:"pubDate";s:31:"Wed, 18 Jul 2012 11:29:00 +0200";s:11:"description";s:2130:"

Avertissement : lisez bien tout l'article avant d'éxécuter tel ou tel commande.

Aujourd'hui, une mise à jour de Glibc m'a été proposée. Je l'ai faite, et j'ai eu l'erreur suivante :

Erreur : la validation de la transaction a échoué (conflit de fichiers)
glibc : /lib est déjà présent dans le système de fichiers
Des erreurs se sont produites, aucun paquet n'a été mis à jour.

Tout bêtement, je me suis dit, on va forcer la mise à jour :

pacman -Sf glibc

Eh non, grosse erreur : une fois la mise à jour forcée, le répertoire /lib est écrasé, et plus rien ne marche :

$ ls
command not found

$ sudo
command not found

C'est à ce moment là que j'ai vu cette news sur Archlinux.fr qui dit notamment ceci :

Ne jamais utiliser --force lors de cette mise à jour.

Si comme moi vous avez foutu en l'air votre distribution, voici comment la réparer simplement :

1) Récupérez un live-cd d'Archlinux sur Archlinux.org. Une "net-install" suffira !

2) Installez l'image iso sur une clé usb bootable, et bootez sur cette dernière.

3) Une fois que vous êtes devant le shell, créez un dossier /archcourant :

mkdir /archcourant

4) Montez votre partition "/" dans /archcourant (chez moi c'est /dev/sda3, utilisez fdisk pour la trouver) :

mount /dev/sda3 /archcourant

5) Au cas où, conservez le répertoire /lib :

mv /archcourant/lib /archcourant/lib_bak

6) Réinstaller le paquet glibc :

pacman -Syr /archcourant glibc

Si vous n'avez pas de message d'erreur, vous pouvez rebooter sur votre ArchLinux préférée, c'est terminé !

N'hésitez pas à consulter régulièrement les news sur ArchLinux.fr, et pourquoi pas vous abonner au flux RSS !

";s:7:"content";s:2130:"

Avertissement : lisez bien tout l'article avant d'éxécuter tel ou tel commande.

Aujourd'hui, une mise à jour de Glibc m'a été proposée. Je l'ai faite, et j'ai eu l'erreur suivante :

Erreur : la validation de la transaction a échoué (conflit de fichiers)
glibc : /lib est déjà présent dans le système de fichiers
Des erreurs se sont produites, aucun paquet n'a été mis à jour.

Tout bêtement, je me suis dit, on va forcer la mise à jour :

pacman -Sf glibc

Eh non, grosse erreur : une fois la mise à jour forcée, le répertoire /lib est écrasé, et plus rien ne marche :

$ ls
command not found

$ sudo
command not found

C'est à ce moment là que j'ai vu cette news sur Archlinux.fr qui dit notamment ceci :

Ne jamais utiliser --force lors de cette mise à jour.

Si comme moi vous avez foutu en l'air votre distribution, voici comment la réparer simplement :

1) Récupérez un live-cd d'Archlinux sur Archlinux.org. Une "net-install" suffira !

2) Installez l'image iso sur une clé usb bootable, et bootez sur cette dernière.

3) Une fois que vous êtes devant le shell, créez un dossier /archcourant :

mkdir /archcourant

4) Montez votre partition "/" dans /archcourant (chez moi c'est /dev/sda3, utilisez fdisk pour la trouver) :

mount /dev/sda3 /archcourant

5) Au cas où, conservez le répertoire /lib :

mv /archcourant/lib /archcourant/lib_bak

6) Réinstaller le paquet glibc :

pacman -Syr /archcourant glibc

Si vous n'avez pas de message d'erreur, vous pouvez rebooter sur votre ArchLinux préférée, c'est terminé !

N'hésitez pas à consulter régulièrement les news sur ArchLinux.fr, et pourquoi pas vous abonner au flux RSS !

";s:7:"dateiso";s:15:"20120718_112900";}s:15:"20120717_101300";a:7:{s:5:"title";s:28:"Sortie de Zimbra 8 NE Beta 5";s:4:"link";s:85:"http://feedproxy.google.com/~r/Jeoffrey54/~3/V7f4lz1_Fxs/sortie-de-zimbra-8-ne-beta-5";s:4:"guid";s:65:"http://www.jeoffrey54.com/article109/sortie-de-zimbra-8-ne-beta-5";s:7:"pubDate";s:31:"Tue, 17 Jul 2012 10:13:00 +0200";s:11:"description";s:2511:"

Hier, la nouvelle version majeure de Zimbra est sortie en beta 5, à savoir Zimbra 8.

Pour l'instant, seule la version Network Edition est disponible au téléchargement. Pour la tester, il faudra demander une clé trial gratuite pour la version Network Edition.

Cette nouvelle mouture apporte quelques améliorations, et surtout pas mal de changements : on notera une volonté d'intégrer plusieurs services dans le Cloud (Click2Call, voicemail, presence et chat) et une volonté de simplifier encore et toujours l'utilisation des emails, calendriers et carnets d'adresses.

Principales fonctionnalités (source zimbrafr.org) :

Pour avoir testé Zimbra 8, c'est un gros changement au niveau des habitudes... L'interface utilisateur a été un peu améliorée, et semble plus claire, comme vous pouvez le voir sur cette capture d'écran de la boite de réception :

En revanche, l'interface d'administration a été totalement réécrite, et me paraît -pour le moment- un peu confuse... Il va falloir un certain temps pour se ré-habituer à cette organisation :

Zimbra 8 est disponible au téléchargement à cette adresse.

";s:7:"content";s:2523:"

Hier, la nouvelle version majeure de Zimbra est sortie en beta 5, à savoir Zimbra 8.

Pour l'instant, seule la version Network Edition est disponible au téléchargement. Pour la tester, il faudra demander une clé trial gratuite pour la version Network Edition.

Cette nouvelle mouture apporte quelques améliorations, et surtout pas mal de changements : on notera une volonté d'intégrer plusieurs services dans le Cloud (Click2Call, voicemail, presence et chat) et une volonté de simplifier encore et toujours l'utilisation des emails, calendriers et carnets d'adresses.

Principales fonctionnalités (source zimbrafr.org) :

Pour avoir testé Zimbra 8, c'est un gros changement au niveau des habitudes... L'interface utilisateur a été un peu améliorée, et semble plus claire, comme vous pouvez le voir sur cette capture d'écran de la boite de réception :

En revanche, l'interface d'administration a été totalement réécrite, et me paraît -pour le moment- un peu confuse... Il va falloir un certain temps pour se ré-habituer à cette organisation :

Zimbra 8 est disponible au téléchargement à cette adresse.

";s:7:"dateiso";s:15:"20120717_101300";}}