SSHplus: le SSHmenu pour unity

S’il est un outil dont je ne pourrais me passer et qui freinait considérablement mon passage à unity, c’est bien sshmenu. Une fois paramétré, j’ai sous la main en quelques clics l’accès ssh aux machines que je gère.

Autant lorsqu’on n’en a que quelques unes ça peut rester gérable à la main, autant quand on en a plus d’une trentaine, c’est impensable de ne pas utiliser un outil dédié.

Malheureusement, sshmenu ne fonctionne pas avec unity. Heureusement, il existe un autre logiciel qui permet de faire la même chose et même plus, c’est SSHplus.

Le seul petit point négatif, c’est que le paramétrage se fait pour l’instant en éditant le fichier de configuration, pas avec une interface graphique. Gageons cependant que ce n’est qu’une question de temps avant que ce ne soit corrigé.

Les fonctionalités

  • Lance SSH, rdesktop, et presque n’importe quelle commande ou application
  • Compatible avec le menu de configuration de sshmenu
  • Supporte les dossiers imbriqués (mais pas encore ceux importés depuis sshmenu)

Je n’ai pas testé l’import depuis le fichier de configuration de sshmenu puisque j’en ai profité pour faire du rangement dans mes entrées, et j’ai réécrit le fichier de configuration, ce qui m’a permis de me faire la main sur son fonctionnement.

Installer SSHplus

  • Téléchargez la dernière version sur le repo github
  • Copiez le dans /usr/local/bin
  • Ajoutez lui les droits en exécution par un chmod +x /usr/local/bin/sshplus.py
  • Lancez sshplus.py ou mettez le dans vos applications au démarrage
  • Éditez le fichier de configuration ~/.sshplus comme indiqué ci dessous

La configuration

Quelques infos rapides avant de commencer:

  • Les lignes commençant par le caractère # sont ignorées (commentaires). Ne placez pas de commentaire à la suite de lignes indiquant des commandes
  • Les espaces en début de ligne sont ignorés. Vous pouvez indenter pour que le fichier soit plus clair
  • Les lignes vides sont ignorées (il n’y en a pas dans mon fichier d’exemple à cause de wordpress qui ne sais plus reconnaitre la fin du code)
  • L’instruction sep ajoute un séparateur dans le menu

Les instructions du fichier de configuration ~/.sshplus

C’est très simple, elles se présentent sous la forme NOM | COMMANDE | ARGUMENTS. Ainsi, pour ouvrir un terminal avec la commande « top », il suffit d’ajouter l’instruction suivante:

Afficher top|gnome-terminal|-x top

Pour lancer firefox sur le site des astuces d’absolacom:

Astuces d'Absolacom|firefox|http://astuces.absolacom.com

Accéder à un dossier local (la structure est la même utilisée dans le fichier ~/.gtk-bookmarks)

Dossier temporaire|nautilus|file:///tmp

ou distant

Dossier distant|nautilus|sftp://manu@192.168.10.214

A partir de là, vous voyez que c’est simple de faire ce qu’on veut. Ne reste plus qu’à savoir quoi y mettre, mais si on ne trie pas, c’est vite le bazar et il est impossible de s’y retrouver.

Menus et Sous menus

On peut heureusement créer des sous menus de façon aussi simple: il suffit d’utiliser l’instruction folder:label pour donner un nom à votre dossier, et l’instruction folder: pour remonter d’un niveau et « fermer votre dossier ».

Exemple de fichier de configuration

Je vous donne ci dessous un exemple de fichier de configuration ((fichier fourni par le développeur et adapté par mes soins)). Attention, rien n’est fonctionnel dans le sens ou les adresses et les identifiants sont fantaisistes. A vous d’adapter à votre besoin.

# Lanceurs d'application dans un dossier
folder:Applications
Show top|gnome-terminal|-x top
Dossier distant|nautilus|sftp://manu@192.168.10.214
# Un sous dossier
folder:Absolacom
Astuces d'Absolacom|firefox|http://astuces.absolacom.com
folder:
folder:
#sep ajoute un séparateur
sep
# label: Ajoute un label aux menus
label:Connexions SSH
SSH server1|gnome-terminal|-x ssh root@google.com
SSH server2|gnome-terminal|-x ssh -p 456 manu@192.168.10.23
sep
# Utilise rdesktop pour se connecter à des postes windows
label:Connexions RDesktop
Win-Server 1|rdesktop|-T “Win-Server 1″ 1.2.3.4
Win-Server 3 (with many arguments)|rdesktop|-g 1320×680 -T “Win-Server 3″ -x l -P -r sound:local 1.2.3.6
sep
label:Connexions Putty
# PuTTY
PuTTY-Session 1|putty|-load SavedSession1
PuTTY-Session 2|putty|-load SavedSession2
#Si un fichier de connexion sshmenu est présent, il sera ajouté automatiquement

Comme vous le voyez, c’est simple d’usage et tellement pratique.

Edit du 24/08/12

Je modifie cet article pour apporter deux petites informations.

Tout d’abord, si vous mettez un underscore dans le nom de votre raccourci, vous pourrez avoir un accès rapide en appuyant sur la lettre correspondante. Par exemple, prenons la ligne PuTTY-Session 2|putty|-load SavedSession2 du fichier ci dessus, si je la note Pu_TTY-Session 2|putty|-load SavedSession2 dans mon fichier de configuration, je pourrais lancer ce raccourci en appuyant sur la touche « T ». Pas primordial, mais pratique, d’autant que je n’ai trouvé cette info nulle part, mais en bidouillant.

Ensuite, j’ai eu besoin de transformer un fichier de conf de sshmenu vers sshplus avec des dizaines d’entrées. Impossible d’utiliser le fichier d’origine dans sshplus, il ne me le prenait pas. Étant donné qu’il n’était pas question que je refasse tout à la main dans le cas présent, j’ai écrit un petit programme python pour le convertir. Il fonctionne comme suit en ligne de commande:

  • Sans argument, il va chercher le fichier ~/.sshmenu. S’il ne le trouve pas, le programme s’arrête.
  • En précisant sur la ligne de commande le chemin vers le fichier à transformer on peut préciser le fichier à utiliser. S’il ne le trouve pas, le programme s’arrête.
  • Le résultat converti est affiché dans le terminal. Une fois validé, on peut le rediriger vers un fichier (en général ~/.sshplus)
  • Le programme essaye de récupérer l’organisation des sous dossiers de sshmenu, mais il a des soucis avec les sous-sous-sous-…dossiers. Au pire, il ne vous restera plus qu’à placer les « folder: » au bon endroit. C’est plus rapide que de le faire manuellement quand on a beaucoup d’entrées.

Téléchargez le fichier sshmenu2sshplus , renommez le en « .py » ((wordpress ne me laisse pas les monter en py)), rendez le exécutable et lancez le en lui précisant l’emplacement vers votre fichier .sshmenu, et redirigez la sortie vers votre fichier sshplus. Par exemple:

./sshmenu2sshplus.py /tmp/.sshmenu >> ~/.sshplus

Ubuntu: system halted ou le poste ne s’éteint pas

L’ordinateur ne s’éteint pas

J'ai dit halte!
Depuis ubuntu 11.04 ((il me semble)), un problème récurent se produit: lors d’une demande d’arrêt, le poste reste sous tension et un message indique laconiquement:

*Will now halt
[...] System halted

C’est d’autant plus embêtant que parfois la commande entrée manuellement dans un terminal fonctionne sans provoquer ce problème, mais que dans un script ou avec certains logiciels, le système ne se coupe pas. Et si le système n’est pas coupé, impossible de démarrer les postes par wake on lan!

J’avais écrit à ce sujet en donnant une solution de contournement qui ne fonctionnais pas systématiquement non plus…

A noter que ce problème apparait lors d’une mise à jour ou d’une installation neuve, quelle que soit la distribution basée sur ubuntu (voyager, mint, Xubuntu, …)

Je suis tombé sur l’explication de Steve Langasek (vorlon) sur bugs.launchpad qui éclaire ce problème:

Ok, j’ai travaillé à ma façon sur toutes les formes de ce bug maintenant, et je dois conclure que ce comportement ne peut pas / ne devrait pas changer.

– La commande «shutdown» a trois options: « -h » (arrêt ou mise hors tension), ‘-H’ (arrêt), et «-p» (hors tension).
– La commande «halt» fait référence à -H,  par défaut.
– La commande «poweroff» fait référence à -p, par conception.
– La configuration de /etc/default/halt affecte *uniquement* le comportement lorsque ni -H ni -P n’a été spécifié.
– Il n’y a pas moyen de faire «halt» correspondre par lui-même à «poweroff», sans qu’il soit impossible de faire un véritable «arrêt».
– Ce sont toutes des options standard qui ne devraient pas être changé.

Donc, je ferme ce rapport de bug comme «wontfix». Le comportement actuel est incompatible avec le comportement arriviste précédent, mais ce comportement était bogué. Le comportement actuel est correct, et je crains que les gens vont juste devoir apprendre que «halt» ne signifie pas ce que vous avez été amené à croire que cela signifie.

Si vous voulez que le système se coupe, vous avez besoin pour fonctionner soit de « shutdown -h now», «halt -p», ou «poweroff». Toutes ces trois commandes fonctionnent. «halt -p» est la plus courte et probablement la plus compatible avec la mémoire musculaire existante.

Même si le ton est un peu hautain à mon goût ((pour les pauvres utilisateurs perturbés que nous sommes, et vraiment nombreux au vu des pages complètes de google à ce sujet)) , il est logique de comprendre que « halt » arrête le système informatique ((ce qu’il fait d’ailleurs très bien comme le prouve le message « system halted »)) et que « poweroff  » coupe l’alimentation matérielle.

Le problème est que pendant des années nous avons appris à utiliser « halt » plutôt que « shutdown -h » ou « poweroff » et qu’il nous semble que ce nouveau comportement est un bug, alors que c’est l’ancien comportement qui était anormal. Il va falloir commencer à changer certaines habitudes…

On peut contourner ce comportement en modifiant les aliases (alias halt= »halt -p ») mais c’est à faire pour tous les utilisateurs et ne fonctionne pas pour les scripts ou programmes qui ne lancent pas un shell.

De plus, sur la 10.04, vous constaterez que « halt » est un lien vers la commande « reboot »… D’autant plus surprenant que « reboot » fonctionne…

Eteindre ubuntu ET l’ordinateur

Note: la solution proposée par chmd dans les commentaires est en effet plus propre et conseillée.

Je me trouve confronté à des logiciels écrits il y a quelques années qui font appel à la commande halt et à qui je peux difficilement expliquer ((pour diverses raisons…)) que c’est une mauvais habitude, mais une solution de comportement existe en interceptant la commande halt et en la renvoyant vers poweroff

  • renommez la commande halt en autre chose

sudo mv /sbin/halt /sbin/haltorig

  • Créez un programme /sbin/halt qui fera appel à « poweroff » ou « shutdown -h now »

#!/bin/sh
/sbin/poweroff

puis sudo chmod +x /sbin/halt

On retrouve ensuite un comportement « normal » ((le comportement attendu, à savoir une coupure propre, même s’il vaudrait mieux prendre la bonne habitude immédiatement)) du système.

Depuis quelques jours que je teste cette modification, je n’ai remarqué aucun effet de bord, ni graphiquement, ni sur le fonctionnement des autres programmes. À part que c’est un bonheur de pouvoir à nouveau éteindre ses machines par cron ou ssh et de pouvoir les relancer par WOL.

J’ai pensé que vous trouveriez cet article utile ;oD

Equivalent à CHKDSK sous Linux

Il est bien évident qu’à choisir un système de fichier mon choix premier ne se porterait pas sur les formats Microsoft. Cependant, l’interopérabilité fait que le choix ne nous est pas forcément disponible.

Surtout quand on me transmet un disque externe  en me disant « Tiens, voilà la sauvegarde, prends en soin c’est la seule » et que je me rends compte que le système de fichier est dans les choux… ((d’ici à ce qu’on vienne dire que c’est parce que j’ai osé le brancher sur un Linux, il n’y a qu’un pas qui a déjà été franchi depuis longtemps!)).

Sueurs froides, tremblement, méditation et incantations :d plus tard, voici ce que ça donne.

Partitions FAT

Certains appareils (lecteur DVD, décodeur TNT, autoradio ou systèmes propriétaires) n’acceptent que les lecteurs externes au format VFAT. Or, quand il y a des problèmes sur la partition et qu’on veut la corriger, c’est dommage de ne garder un windows que pour ça.

Heureusement, le paquet dosfstools possède la commande dosfsck qui permet de le faire:

sudo dosfsck -a -t -w /dev/sdc1

Cette commande va nous permettre de vérifier le disque /dev/sdc1 en réparant automatiquement les erreurs sans confirmation (-a), en marquant les mauvais secteurs comme tels (-t) et en le faisant immédiatement (-w). Vous pouvez aussi ajouter les options -n (à la place de -w) pour simplement tester, -l pour afficher la liste des fichiers traités et -v pour avoir plus de sortie à l’écran.

Démontez votre disque sans le retirer avant de lancer la commande, mais dans les cas où je l’ai utilisée, le disque ne montait pas de lui même.

Partitions NTFS

Je n’ai pas trouvé de commande permettant de le faire. Si vous en connaissez une, je suis preneur.

La commande ntfsfix du paquet ntfsprogs permet de faire certaines réparations simples, mais pas une véritable vérification. Comme le dit le man:

ntfsfix est un utilitaire qui permet de résoudre certains problèmes NTFS communs. ntfsfix N’EST PAS une version Linux de chkdsk. Il répare seulement certaines incohérences fondamentales du NTFS, réset le journal NTFS et programme une vérification du système de fichiers au prochain boot de Windows.

Cependant, on peut s’en sortir sans avoir windows installé, simplement avec le CD d’installation (exemple pour XP) ((même si ça pique les yeux, tout ce bleu)):

  • démarrez un ordinateur où le disque est branché depuis le CD d’installation
  • Dans les choix qui vous sont donnés, choisissez R pour réparation
  • Quand vous êtes dans la console de réparation, lancez la commande CHKDSK C: /R. Si un seul disque est présent, vous pouvez omettre de le nommer.

Si vous n’avez pas le CD d’installation de windows, vous pouvez télécharger Revovery Console (RC.iso) fourni par The computer paramedic qui contient des outils de réparation et l’utiliser comme dans la méthode donnée ci dessus. Notez que si vous avez eu un ordinateur sans CD d’installation, il est utile de le télécharger pour l’avoir sous la main, y compris pour réparer le MBR

Pour Vista et Seven, la méthode est approximativement la même, même si elle n’apporte rien de plus. Démarrez avec votre DVD d’installation et adaptez la méthode à ce qui vous est proposé. Vous pouvez aussi consulter cette page même si l’accès aux consoles de réparation est devenu payant pour des problèmes de licences Microsoft ((Obligé de payer des licences à Microsoft pour permettre de réparer leur système… Comme quoi c’est un business de leur part, pas un bug. Encore un bonnet d’ÂNE mérité.)) depuis Aout 2011.

Rien ne va plus, tout est en panne

Au delà de la polémique qu’il peut y avoir sur le système d’exploitation ou des logiciels choisis, il faut se rappeler une chose: ce n’est pas qu’un système informatique peut tomber en panne, c’est qu’il va tomber en panne un jour ou l’autre.

Plus un commercial me vante la stabilité de son système, plus j’ai peur. Que ce soit dans l’informatique ou dans d’autres domaines. Or, aujourd’hui, l’informatique et les systèmes embarqués sont partout, y compris dans les voitures.

Là où un simple miroir ne peut pas se mettre en carafe, on remplace ceux ci par des caméras + écrans ((où le seul intérêt à mes yeux serait l’enregistrement des informations, le stockage, le traitement et la conservation des données, y compris envers la CNIL, rendent la chose compliquée et coûteuse)), là où un simple interrupteur fait son office, on installe un système intelligent sensé nous simplifier la vie ((mon micro ondes refuse de décongeler mon pain, considérant qu’il n’est pas assez lourd pour justifier la mise en route du four. Je suis obligé de rajouter du poids (2 verres d’eau) pour que la pesée fonctionne et que le four( daigne adapter sa puissance au produit…)), là où in simple téléphone permettait d’appeler les secours, il lui faut maintenant une alimentation et il ne fonctionne plus en cas de coupure électrique.

Plus on rajoute d’éléments dans la chaine de fonctionnement, plus on fragilise le système complet en cas de faille dans l’un des éléments. Sans compter les multiples éléments extérieurs inconnus sur lesquels on ne peut avoir de contrôle (stabilité électrique, parasites électro ou magnétiques, chocs d’un balai, utilisateur lui même, …) qui conduisent parfois à des pannes non franches qu’il est quasiment impossible de reproduire, comprendre et éviter. Les systèmes fermés (logiciels ou matériels) induisent eux aussi une part d’inconnu qui ne nous laisse que la possibilité de constater: c’est en panne, ou ça a été en panne, mais on ne sait pas pourquoi.

Or, lorsqu’un client fait appel à un professionnel, il veut une réponse. Et si le professionnel avoue son ignorance, c’est qu’il est nul et qu’il faut s’adresser à quelqu’un d’autre. La tentation est alors forte d’inventer une cause ou une explication qui satisfera le client, bien qu’on ne sache pas réellement si elle est juste. Déjà que le métier d’informaticien paraît obscur aux non initiés ((ouvrez une ligne de commande chez un client, il vous prend déjà pour un hacker)), que les termes techniques et les explications sont incompris ((ce qui permet à certains de raconter n’importe quoi)), que les médias ne parlent de l’informatique que pour ses effets négatifs (pirates, virus, pédophilie), on arrive très vite à une réputation de menteurs et de voleurs, pas loin derrière les garagistes. C’est parfois difficile à rattraper, surtout quand on passe derrière certains concurrents ((quand il ne s’agit pas du petit fils de la soeur du cousin du beau frère du collègue de travail du voisin qui « s’y connait » et à qui on fait plus confiance)).

Si en plus on apporte des mauvaises nouvelles au client, je vous laisse imaginer ses impressions. Heureusement qu’on ne tue plus les porteurs de mauvaises nouvelles!

Intervenant souvent sur des pannes ((souvent sur des systèmes que je découvre)), le client veut que ça refonctionne au plus tôt ((c’est à dire juste après son appel)) et que ça ne se reproduise plus ((il paye, donc il veut une garantie)). Or, pour étudier une panne, il faut laisser le système dans l’état où il se trouve, c’est à dire en panne. Comme bien souvent un simple redémarrage suffit à résoudre le problème ((en particulier chez qui vous savez)), difficile de savoir le pourquoi et d’être certain que ça ne se reproduira plus. Ce n’est pas le plus difficile à faire comprendre à un client, quand on emploie les mots justes. Il peut comprendre qu’un redémarrage est nécessaire et que c’est un moindre mal mais il est tiraillé entre ce que vous lui dites et le discours appuyé des commerciaux ne disant que ce que les gens ont envie d’entendre. J’appelle ça le chant des sirènes.

En tant que particulier, professionnel ou simple être humain, j’y suis aussi sensible. Entre les publicités et les envies d’être rassuré, difficile de faire la part des choses ((assurances, mutuelles, retraite, services bancaires, alarmes, … On a tous cédé une fois parce qu’on avait envie d’y croire)).

Alors, quand un commercial me jure ses grands dieux que tout est parfait, je lui fait voir la galerie ci dessous ((Y’a bien que des informaticiens pour prendre ces trucs en photo. Et en plus à aimer ça…!)). Ce sont des photos provenant d’Internet pour la majorité, plus quelques unes de mon crû.

Quand un client veut que ça ne se reproduise plus, sans mettre les moyens, je lui fais aussi voir cette galerie. Il comprend alors que si des banques ou des aéroports restent confrontés à des pannes pouvant compromettre la sécurité de leur système alors qu’ils y ont mis des moyens importants ((Et souvent beaucoup plus que le budget disponible chez mon client)), l’objectif de zéro panne n’est pas accessible immédiatement et qu’il va falloir étudier une tolérance de panne acceptable.

Au final, quand on a compris qu’il y aura une panne, qu’on ne saura pas pourquoi ni comment, la seule question importante qu’il reste c’est: comment repartir rapidement après sinistre? Seul un système de sauvegarde efficace ((testé et vérifié régulièrement, ce qui n’est pas le cas dans beaucoup d’endroits)) et une méthodologie de travail adaptée ((Ne pas multiplier les emplacement des données, classer les informations, …)) permettent de relancer, plus ou moins rapidement ((selon les moyens mis en oeuvre et l’acceptation d’un délai de coupure de service)), le système d’information nécessaire au fonctionnement.

Vous qui me lisez, à quand remonte votre dernière sauvegarde vérifiée?

Konica Minolta Bizhub 350 et cups

Après avoir encore une fois perdu du temps à retrouver comment le faire fonctionner, je le note pour pouvoir le retrouver.

Ensuite, ça fonctionne en utilisant le premier driver de la catégorie KONICA MINOLTA (je ne l’ai pas noté…)

A noter que cela est valable pour tous les modèles de la liste suivante:

  • bizhub 7222, 7322, 7228, 7235
  • 7145
  • 7155, 7165, Force 65
  • 7255, 7272
  • 7075, Force 75
  • 7085, Force 85
  • bizhub PRO 1050/1050P
  • bizhub 350/250/200
  • bizhub 500/420/360
  • bizhub 501/421/361
  • bizhub 750/600
  • bizhub 920/PRO 920
  • bizhub C250/C250P
  • bizhub C252
  • bizhub C351
  • bizhub C352/C352P/C300
  • bizhub C353/C353P/C253/C203
  • bizhub C450/C450P
  • bizhub C451
  • bizhub C650/C550
  • magicolor 8650

Utiliser wget pour télécharger un site entier

C’est plus un pense bête qu’une astuce, et ça m’évitera de chercher encore une fois.

Pour l’anecdote, j’ai scripté cet usage afin de garder une copie de sauvegarde d’un site hébergé chez le prestataire d’un client qui a des « problèmes » avec celui ci. En cas de…je ne sais pas, mais au cas où, j’ai une copie de sauvegarde permettant une reprise sans avoir à tout recréer de zéro (images, mise en page, css,…). Et j’ai ainsi l’évolution des modifications sur les x derniers jours (une sorte de google cache en local)

Si vous voulez télécharger un site entier, peut être pour le visiter off-line, wget peut le faire . Par exemple:

$ wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains website.org \
     --no-parent \
         www.website.org/tutorials/html/

Cette commande va télécharger le site  www.website.org/tutorials/html/.

Les options sont:

  • –recursive: télécharge le site web entier.
  • –domains website.org: ne suit pas les liens pointant hors du domaine website.org.
  • –no-parent: ne suis pas les liens pointant hors du dossier tutorials/html/.
  • –page-requisites: récupère tous les éléments qui composent la page (images, CSS et cie).
  • –html-extension: enregistre les fichiers avec l’extention .html.
  • –convert-links: convertit les liens afin qu’ils fontionnent localement (off-line).
  • –restrict-file-names=windows: modifie les noms de fichiers afin qu’ils fonctionnent aussi sur Windows.
  • –no-clobber: n’écrase pas les fichiers déjà existants (utilisé en cas de téléchargement interrompu et repris).

Il peut aussi être important d’ajouter les options --wait=9 --limit-rate=10K qui éviteront de surcharger le serveur qui vous fournit les pages et d’éviter, éventuellement, de vous faire blacklister par un admin un peu pointilleux.

  • –wait=X : attend X secondes entre chaque téléchargement
  • –limit-rate=XK : limite la bande passante utilisée à X Ko/s

Utiliser ces options permet plus de souplesse que de simplement utiliser l’option -m (mirror).

Notez que wget existe aussi sous windows.

source: http://www.linuxjournal.com/content/downloading-entire-web-site-wget

Ubuntu 11.10 (Oneiric) ne s’arrête pas

Sur certains ordinateur, avec Oneiric, l’ordinateur ne s’arrête pas véritablement. L’ordinateur reste sous tension, même si le système est coupé.
Il est alors nécessaire de faire un réset manuellement, ce qui peut être gênant quand l’ordinateur n’est pas accessible.
Cela peut se produire autant lors de la demande d’arrêt que pour celle du redémarrage. Parfois cela fonctionne depuis le gestionnaire de fenêtre, parfois non. La commande « halt » en ligne de commande ne fonctionne pas, elle ((2 machine différentes, même OS, comportement différent. Même avec des systèmes différents (ubuntu/voyager) )) .
Je n’ai pas trouvé de solution, et des rapports de bug ont été ouverts, et on en parle sur beaucoup de forums ((par exemple ici ou ))  mais en attendant, il faut bien pouvoir agir.

J’ai trouvé une solution de contournement qui permet d’effectuer ce qui est véritablement désiré et qui fonctionne sans problèmes.
Créez un script /usr/bin/force_halt et mettez y ce code dedans:

#!/bin/bash
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Rendez le exécutable et remplacez vos appels à « halt » par « force_halt« . Vous pouvez aussi remplacer /sbin/halt par un lien vers force_halt

Concernant le reboot, il faut répéter les mêmes opérations mais remplacer le Stop de la fin de la ligne de commande par Restart

Activer XDMCP sur Ubuntu Lucid 10.04

Cette astuce fonctionne peut être avec les versions suivantes, mais je ne l’ai pas testée. A confirmer.

Si vous avez besoin d’utiliser XDMCP sur votre réseau, vous constaterez qu’avec la « nouvelle » version de GDM, il n’est plus possible de l’activer facilement ((en tout cas, pas aussi facilement qu’avant)).

Or, il suffit de quelques manipulations pour la remettre en place.

Paramétrer le serveur XDMCP

Tout d’abord, il faut créer le fichier /etc/gdm/custom.conf qui va enregistrer les options de GDM, et en particulier celles concernant XDMCP.

Remplissez le avec ceci:

[daemon]
 User=gdm
 Group=gdm
[security]
 DisallowTCP=true
[xdmcp]
 Enable=true
 DisplaysPerHost=2
 HonorIndirect=false
 MaxPending=4
 MaxSessions=16
 MaxWait=30
 MaxWaitIndirect=30
 PingIntervalSeconds=60
 Port=177
[greeter]
[chooser]
 Multicast=false
[debug]
 Enable=false

Il suffit ensuite de redémarrer le service GDM pour activer le XDMCP.

service gdm restart

Cependant, si vous avez désactivé IPV6 sur votre réseau, cela ne fonctionnera pas, puisque XDMCP écoute par défaut en IPV6 désormais. Vous pouvez le voir en root avec la commande netstat:

root@test4:/home/manu# netstat -putan|grep 177
udp6       0      0 :::177        :::*        646/gdm-binary

Il faut alors désactiver IPV6 sur l’ordinateur qui diffusera son affichage, par exemple en le désactivant au niveau du noyau.

On peut le faire en rajoutant une option au fichier de configuration de grub. Modifiez les fichier /etc/default/grub pour ajouter l’option « ipv6.disable=1 »

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

Reconstruisez le fichier de configuration de grub par « sudo update-grub » puis redémarrez votre ordinateur. Netstat vous indique alors que XDMCP écoute en IPV4 ((notez le 6 qui a disparu et la notation des adresses))

root@test4:/home/manu# netstat -putan|grep 177
udp       0      0 0.0.0.0:177        0.0.0.0*        658/gdm-binary

Utiliser le client XDMCP

On peut utiliser Xming depuis Windows, mais depuis Linux, il est plus simple d’utiliser tsclient. Dans la liste des protocoles, si vous ne voyez pas XDMCP, c’est qu’il vous faut l’installer le paquet xnest

sudo apt-get install xnest

tsclient avec XDMCPEnsuite, pour la connexion, c’est du classique.

Un client XDMCP en console

Si vous désirez lancer une session XDMCP systématiquement, il est inutile se charger gnome ou un gestionnaire de fenêtres simplement pour lancer tsclient puis votre session XDMCP. Il est possible de lancer celle ci directement.

Désactivez le lancement de GDM, puis logguez vous sur l’ordinateur et tapez la commande suivante:

/usr/X11R6/bin/X -query 192.168.1.2

où 192.168.1.2 est le serveur sur lequel vous avez activé XDMCP.

Sources:

Changer la couleur de fenêtre de Pidgin

J’ai eu besoin de communiquer par IRC sur un chan particulier, mais j’ai été confronté à un problème auquel je ne m’attendais pas: les administrateurs utilisant mirc (qui utilise par défaut un fond noir), ou irssi (qui fonctionne en console…noire de base) avaient choisi d’avoir des couleurs de polices blanches et jaunes pour certains éléments.

Or, Pidgin utilise un fond blanc, ce qui fait que beaucoup de choses étaient illisibles ((et effectuer des sélections du texte pour arriver à le lire est fatiguant à la longue.)).

Empathy permet de changer les thèmes, et de voir les messages écrits en noir sans tenir compte de la couleur d’origine, mais ne m’affichait pas les personnes présentes dans le salon. Donc, il n’a pas été retenu comme solution.

Mais comme avec le libre, tout est faisable, et un simple changement de couleur devant être à ma portée, j’ai cherché comment modifier Pidgin, et j’ai fini par trouver.

Simple quand on le sait, mais quand on ne sait pas, c’est autre chose…

  • Tout d’abord, ne cherchez pas le dossier pidgin, mais bien purple, qui se trouve dans votre home (~/.purple)
  • Par défaut, pidgin utilise le thème GTK de votre environnement. Sinon, et seulement sinon, il crée un fichier gtkrc-2.0 dans le dossier ~/.purple.
  • Si vous utilisez un gestionnaire de fenêtre basé sur GTK et que vous ne voulez pas changer votre thème général, il faudra créer un fichier nommé gtkrc-2.0 dans le dossier ~/.purple qui apportera des modification à pidgin par rapport à votre thème général.
  • Vous mettrez dans ce fichier texte les informations que vous voulez selon la syntaxe que vous donne la FAQ de Pidgin.((si vous connaissez un peu le CSS, vous devriez comprendre comment fonctionne le fichier))

Dans mon cas, cherchant juste à modifier l’aspect des fenêtres, j’ai utilisé le code fourni:

# Create a style called "inverted" where the text and base (the base color behind the widget) are the reverse of typical.
style "inverted"
{
text[NORMAL] = "#FFFFFF"
base[NORMAL] = "#000000"
}
 
# Apply "inverted" to conversation entry box--where you type.
widget "*pidgin_conv_entry" style "inverted"
 
# Apply "inverted" to conversation history pane--where you read the conversation.
widget "*pidgin_conv_imhtml" style "inverted"

Après avoir relancé Pidgin, c’est tout de suite beaucoup plus lisible ((Il ne s’agit pas du chan qui m’intéressait, mais celui ci présente les mêmes caractéristiques et me sert d’exemple)).

Du texte en couleur, mais lisibleSources: http://developer.pidgin.im/wiki/Using%20Pidgin

Editer les pages web avant de les imprimer

Ne vous est il jamais arrivé de vouloir imprimer une recette, un article ou n’importe quelle information d’une page sans vouloir imprimer l’ensemble des commentaires, des pubs, des menus, des bannières, des boutons, … ?

Moi, c’est souvent.

Alors que j’imprime peu et que ça m’horripile d’imprimer des pages inutiles (sauvons les arbres, mangeons des castors), la partie qui m’intéresse est toujours coupée entre deux pages ou mise en page sur une largeur de 3 cm…

Au moment où je me décide enfin à chercher une solution pratique, korben fait un article sur le sujet, le jour même ((et c’est pas la première fois, il doit lire dans mes pensées)).

Ça s’appelle Print Edit et c’est une extension Firefox qui rajoute une option au menu d’impression et dans la barre de boutons permettant de sélectionner les cadres de la page pour les supprimer ou les masquer. Ça fonctionne très bien, il faut juste faire attention à ses sélections (elles se cumulent quand vous cliquez n’importe où) avant de supprimer, mais un bouton « undo » existe permettant le retour en arrière.

Pas de /var/log/messages sur Ubuntu Maverick/Natty

Sur Ubuntu Natty, j’ai eu la surprise de constater qu’il n’y avais pas de fichier /var/log/messages.

Cela vient du fait que les développeurs ont estimé qu’il était redondant avec les autres fichiers de logs, et ils ont décidé de ne plus l’activer.

…les journaux que vous recherchez sont dans /var/log/syslog. Cela a été une décision délibérée dans maverick pour réduire les chevauchements de log (tout ce qui est logué dans /var/log/messages a toujours été aussi enregistré dans /var/log/syslog ).

Or, certaines applications l’utilisent et se plaignent de ne pas le trouver. On peut le créer vide, mais il le restera. On peut aussi créer un lien vers /var/log/syslog.

Mais le mieux est de le réactiver. Il suffit d’éditer le fichier /etc/rsyslog.d/50-default.conf et de dé-commenter les lignes suivantes:

*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages

ensuite, redémarrez ou lancez

sudo restart rsyslog

Source: http://ubuntuforums.org/showthread.php?t=1728570

Hosts (reur et damnation), la ‘route’ sera longue…

J’ai découvert avec stupeur l’article de Génération Linux qui cite un article de TF1 expliquant comment et pourquoi  ((enfin, le pourquoi n’est pas très clair)) supprimer les fichier hosts d’un ordinateur sous linux (GNU/linux).

(Outre le fait que je suis en phase avec benjamin sur ce qu’il faut penser sur TF0) Je vais vous expliquer réellement à quoi il sert, et comment s’en servir un peu plus (vu que benjamin ne le fait pas). Et je vais le faire à un niveau d’explication qu’un lecteur de TF0 puisse comprendre. Mais je vous le dis tout de suite:

Ne supprimez pas votre fichier /etc/hosts!

Principe de fonctionnement

Lorsque vous voulez aller visiter le site de TF0 ((A publier des bêtises pareil, c’est eux qui vont me servir de cobaye, tant pis)) , vous allez taper l’adresse tf0.fr dans la barre d’adresse, pas leur adresse IP. Parce que c’est plus simple à se souvenir. Or, les ordinateurs communiquent entre eux avec l’adresse IP, parce qu’ils sont conçus comme ça ((et surtout parce que ça fonctionne, pas seulement pour enbêter les téléspectateurs de TF0)). Votre ordinateur va donc s’adresser à un service de DNS (domain name system (« système de nom de domaine ») qui va faire la correspondance entre l’adresse que vous connaissez, et l’adresse IP du site auquel s’adresser.

C’est un peu le GPS de l’informatique: vous connaissez l’adresse, il vous dit où ça se trouve. Et c’est comme ça pour TOUS les services réseau.

Mais, historiquement, (c’est à dire quand j’étais plus jeune non rien), les ordinateurs n’étaient pas connectés à internet. Ils n’étaient même parfois pas connectés du tout (( je sais, c’est l’horreur, la préhistoire…Incroyable mais vrai, ni wifi, ni 3G!)) mais les services réseau nécessitaient quand même d’avoir leur réponse même en l’absence de DNS.

Donc, les informaticiens ont décidé ((arbitrairement, je sais, mais les informaticiens sont comme ça)) d’utiliser un fichier qui ferait la correspondance entre un nom et une adresse IP. Et il faut bien admettre que ça marche! Et que c’est pratique! On le verra bientôt.

De plus, ce fichier étant local, la réponse est plus rapide que d’aller interroger un serveur chez votre FAI, même s’ils répondent assez vite.

Z’en ont de la chance, les linuxiens!

Ce système de fonctionnement n’est pas spécifique à linux, windows possède le même, inspiré de Unix lui aussi. C’est le fichier hosts que vous trouverez dans windows\system32\drivers\etc\hosts (pour XP)

Comparons un fichier hosts et un fichier hosts…:

hosts-linux

hosts-linux

hosts-windows

hosts-windows

Que remarque t-on?

  • Sous linux, on peut lire le fichier dans une console et c’est plus pratique,
  • Sous linux, on peut avoir de la couleur, et c’est beau,
  • Sous linux, on utilise le fichier hosts (en tout cas en ce qui me concerne) alors que sur windows il est là, mais atrophié et malheureux, sans pour autant être anémique vu qu’il a plus de commentaires que d’utilité.
  • Les deux sont identiques, au moins dans l’aspect. Une IP, un nom.

Comment se servir du fichier hosts?

Vu que le fichier est là, autant l’utiliser. Comme il est interrogé par défaut avant la résolution DNS, on peut le modifier et s’amuser.

Dans ce fichier, que vous devrez éditer avec les droits root, ajoutez la ligne suivante:

82.242.245.98          www.tf1.fr

Puis ouvrez votre navigateur pour aller sur www.tf1.fr. Vous constaterez que MON DIEU, MA SOCIÉTÉ VIENT DE PRENDRE POSSESSION DE TF1 ET NOUS SOMMES LES MAITRES DU MONDE!!!

Ah non, c’est juste que mon ordinateur croit que pour aller sur TF1, il faut se rendre à l’adresse Absolacom… ((/me retrouve un rythme cardiaque correct)).

Tiens, ça me donne une idée ((autre que pourrir les ordinateurs de mes collègues, c’est pour ça qu’il faut les droits root. Ah, on me souffle dans l’oreillette qu’avec windows on peut sans droits particuliers… A vérifier de votre côté.)): et si j’indiquais dans mon fichier hosts l’adresse de toutes ces vilaines publicités qui apparaissent sur mon ordinateur?

Eh bien, au lieu d’attendre des heures que google analytics veuille bien répondre avant de m’afficher la page, ou avoir des sites de casino, ou de jeunes filles slaves  voulant à tout prix chatter avec moi (( ce que je peux comprendre)) ou des sites voulant augmenter mon anatomie ((ce que j’ai du mal à comprendre)) , j’aurais une erreur, certes, mais je verrais le reste de ma page. Plus vite, mieux, plus agréable ((presque du Daf Punk)). Vous trouverez plein d’endroits qui vous donneront une liste à ajouter à votre fichier hosts en cherchant un peu sur le net.

Regardez dans mon hosts, la solution pour éviter le rickroll s’y est cachée: saurez vous la retrouver?

Comme je choisis le nom et l’IP à insérer, je peux aussi y indiquer mes machines locales. Ainsi, si je veux faire un ping ou un ssh sur mercure (un de mes postes), je peux le faire avec son IP ou le nom que je lui ai donné dans ce fichier. Pas besoin de DNS sur un petit réseau!

Cool! Je vais pouvoir mettre toutes les adresses de l’internet dans mon fichier hosts et je n’aurais plus besoin de DNS pour naviguer!

Oui, en principe. En pratique, quand ce fichier atteint une certaine taille, il génère l’effet inverse de celui recherché: c’est long à chaque requête.

Et puis c’est surtout la mise à jour qui est laborieuse. Imaginons que google change d’IP, vous ne pourriez plus atteindre leur site tant que vous n’aurez pas modifié le fichier hosts, ce qui est compliqué quand il y a beaucoup d’entrées.

Même pas peur! Et si je le supprime, mon fichier hosts, ça donne quoi?

Ça donne que TF0 pourra à nouveau afficher des pubs sur votre ordinateur. Mais ça va surtout mettre le b…l dans les services réseau qui vont vouloir s’adresser à localhost et qui n’auront plus l’IP correspondante ((je sais, mais c’est bête, un ordinateur)). Un certain programme ((que je ne citerais pas)) se rabat sur ‘localhost’ quand le site demandé ne répond pas (timeout) et repère l’adresse 127.0.0.1 pour passer le message disant qu’il y a un problème. Sauf que s’il n’y a plus le fichier hosts, il n’y a plus de 127.0.0.1 pour localhost, donc le programme est en timeout et se rabat sur localhost qui passe en timeout et le programme se rabat sur localhost qui…. ((comment ça, je l’ai déjà dit?))

Bref, que du bonheur grâce à TF0 ((et ses rédacteurs)).

Résumons un peu:

  1. Le fichier hosts n’a un rôle de filtrage du web que si on lui a demandé de le faire. Le supprimer n’apporterait qu’un comportement non désiré à ce niveau (sauf pour les publicitaires)
  2. Que l’adresse soit présente ou pas dans le fichier hosts, tant qu’un DNS est présent sur le réseau, et l’ordinateur paramétré pour l’interroger, on accèdera au site choisi.
  3. Le fichier hosts n’est pas inutile pour le fonctionnement même de l’ordinateur. Amusez vous à le supprimer sur windows, histoire de rigoler ((puis redémarrez en console, utilisez vi pour le recréer. Comment ça c’est pas possible?!?))
  4. Le fichier hosts n’est pas créé par votre FAI ou par les serveurs DNS. Il ne contient QUE ce que vous y mettez. Dans le cas contraire, ce serait inutile de le supprimer, puisqu’il serait recréé à chaque connexion. ((l’auteur confond sans doute avec le fichier /etc/resolv.conf))
  5. L’auteur ne sait pas lire un man, l’option -f de rm sert à ne pas avoir de demande de confirmation dans tous les cas, certainement pas à effacer un fichier protégé en écriture, qu’il soit protégé ou pas ((ça veut dire quoi, protégé? J’ai les droits ou pas de le supprimer?))

Conclusion

  1. TF0 fait une grande confiance à ses rédacteurs
  2. Le niveau linux chez eux  est le même que le niveau auquel je place leurs émissions
  3. Je vais me prendre un procès si je ne supprime pas leur nom dans mon article (checked)
  4. Faut pas toucher à mon linux quand je voulais dormir le dimanche matin mais que les moustiques m’agressent!

PS: supprimez la ligne que je vous ait fait ajouter au fichier hosts si vous voulez retourner sur TF1 et pas sur le site de ma société.

Problème démarrage windows XP sur Virtualbox (intelppm)

virtualbox

virtualbox

J’ai eu un problème étrange avec un Windows XP pro lancé dans Virtualbox, et j’ai suffisamment cherché pour mettre la solution ici au cas où d’autres rencontreraient le même souci.

Ce windows fonctionnait très correctement jusqu’à ce que je change la machine physique sur laquelle il tournait dans Virtualbox. Sur le nouvel ordinateur, plus puissant et plus « gonflé » en RAM, windows arrivait à l’écran d’identification puis rebootait immédiatement. Ou se figeait.

Une autre image de windows fonctionnait, elle, correctement. Par contre, celle ci ne demandait pas à l’utilisateur de s’identifier, on arrivait directement sur le bureau.

Après avoir modifié le mode de connexion, le même problème que pour la première image se présentait.

Pour les deux images, le mode sans échec fonctionnait et me permettait d’accéder au système.

J’ai donc essayé de modifier le mode d’identification afin que l’ouverture soit automatique (et profiter d’une définition plus grande permettant d’afficher les fenêtres dans leur totalité), mais impossible. Une fois que l’utilisateur devait s’identifier, le problème apparaissait et impossible de revenir en arrière.

Et trouver des infos sur le net avec ces symptômes, c’est mission impossible, vu que des pannes de windows, il y en a plein qui donnent le même résultat…

J’ai donc été modifier l’option indiquant à windows de ne pas redémarrer en cas d’échec afin d’avoir l’écran bleu permettant d’avoir quelques informations supplémentaires (clic droit sur le poste de travail, Propriétés, Onglet Avancé, Démarrage et récupération -> Paramètres, puis décocher redémarrer automatiquement)

Et le BSOD m’a indiqué un problème avec Intelppm.

BSOD intelppm

BSOD intelppm

Une recherche sur le net m’a conduit sur la page d’un blog msdn qui dit:

Dans certaines circonstances avec un système d’exploitation Windows XP / 2003 – intelppm.sys et processor.sys peuvent bloquer une machine virtuelle fonctionnant sous Virtual PC / Virtual Server (ce qui invite le système d’exploitation Windows invité à redémarrer automatiquement – mais si vous avez modifié ce paramètre, vous verrez un écran bleu). La raison de ce crash est que ces pilotes tentent d’effectuer une opération non gérée à l’intérieur de la machine virtuelle (comme la mise à niveau du microcode des processeurs physiques, en changeant l’état d’alimentation du processeur physique).
Aujourd’hui, ce problème se produit uniquement sur les Centrino et processeurs AMD K8. La plupart des gens voient ce problème quand ils déplacent une machine virtuelle qui a été créé sur un autre type de processeur pour un ordinateur exécutant l’un de ces types de processeurs…

Ça parle de Virtual Server (de Microsoft), mais avec Virtualbox, c’est la même chose. Ça provient donc d’un problème de Windows. Et le problème peut se produire avec Processor, pas seulement Intelppm.

La solution est simple:

Si vous voyez ce problème à plusieurs reprises vous pouvez désactiver manuellement ces pilotes (avec aucun effet secondaire négatif) en allant à l’emplacement suivant dans le Registre:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Processor
Ou
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intelppm
et changer la valeur de ‘Start’ à 4.

Dans le même temps nous avons fait quelques changements subtils à la façon dont notre matériel expose le processeur dans Virtual Server R2 de sorte que dans les futurs produits, ces pilotes ne devraient jamais être chargés à l’intérieur des machines virtuelles.

Ouf, je suis rassuré! Virtual Server ne sera plus bloqué par ce comportement, mais peut être que Virtualbox continuera à l’être. Donc, ça peut toujours servir de connaitre le truc pour s’en sortir.

Sources:

[Dolibarr 3.0] Avoir le montant des factures/devis sur les boites d’accueil

Note importante avant de commencer:

  • Je ne suis pas un expert du PHP et de ses subtilités. Pas plus que du code de Dolibarr. Donc on peut sans doute faire plus simple/ plus propre/ plus beau/ plus court/ plus clinquant/ plus rapide/ …
  • Ça fonctionne. Je ne demandais rien d’autre au code. Et ça fonctionne comme je le veux.
  • Ça n’a été testé que sur dolibarr-3.0.0 stable depuis avril 2011. Aucune garantie que ça fonctionne pour vous ou sur votre installation. Prenez les précautions d’usage avant de tout casser (sauvegarde des fichiers, BDD, travail sur une installation de test, etc)
  • Aucune assistance ne sera donnée. Les astuces ci dessous vous sont données brutes. Ensuite, voyez sur les forums de PHP ou de Dolibarr pour le reste. Ce n’est pas un manque de volonté de vous aider, mais un manque de compétence avoué. Je bricole en PHP, mais ce n’est pas mon métier.

Mise à jour:
Sur Dolibarr 3.6 (je ne sais pas pour les autres versions) les fichiers à modifier se trouvent dans /htdocs/core/boxes.
Le reste des modifications est identique.

Genèse

Lorsque j’ai un client au téléphone, ou par  courrier, il n’utilise jamais le numéro de devis ou de facture. Ça n’est pas naturel pour lui. En général, on me donne le montant. Exemple: « oublions le devis de 2412.35, mais on va faire celui de 1200. J’ai envoyé la facture de 360 à la compta, …. »

Ça a du vous arriver, si vous êtes dans la même situation professionnelle que moi.

Sauf qu’avec Dolibarr, quand vous avez la liste des documents sur le tableau de bord, vous n’avez pas sous les yeux tous les devis et toutes les factures. En effet, il faut aller sur la fiche client pour voir les détails de chaque document (les 4 derniers).

Tout va bien client par client. Mais j’ai des clients qui font gérer leur secrétariat par la même société, donc j’ai un seul interlocuteur pour plusieurs clients, et il est plus difficile de sauter d’un client à l’autre.

Et puis ce petit hack permet de diminuer le nombre de clics pour arriver sur la bonne facture ou sur le bon devis.

Pour les propositions commerciales (devis):

Modifier le fichier htdocs/includes/boxes/box_propales.php

ligne 73: modifier de

$sql.= " p.rowid, p.ref, p.fk_statut, p.datep as dp, p.datec, p.fin_validite, p.date_cloture";

à

$sql.= " p.rowid, p.ref, p.fk_statut, p.datep as dp, p.datec, p.fin_validite, p.date_cloture, p.total";

ensuite, à partir de la ligne 121, modifier comme suit (ajout d’un bloc de code et renumérotation des suivants):


$this->info_box_contents[$i][4] = array('td' => 'align="right"',
'text' => dol_trunc(number_format($objp->total, 2, ',', ' '),40)."€",
'url' => DOL_URL_ROOT."/comm/propal.php?id=".$objp->rowid);

$this->info_box_contents[$i][5] = array('td' => 'align="right"',
'text' =>dol_print_date($datec,'day'));

$this->info_box_contents[$i][6] = array('td' => 'align="right" width="18"',
'text' => $propalstatic->
LibStatut($objp->fk_statut,3));

Les dernières factures client modifiées:

Modifier le fichier htdocs/includes/boxes/box_factures.php ligne 75: modifier de

$sql = "SELECT f.rowid as facid, f.facnumber, f.type, f.amount, f.datef as df";

à

$sql = "SELECT f.rowid as facid, f.facnumber, f.type, f.amount, f.datef as df, f.total_ttc";

à partir de la ligne 128, modifier comme suit (ajout du premier bloc et renumérotation des blocs suivants):

$this->info_box_contents[$i][4] = array('td' => 'align="right"',
'text' => dol_trunc(number_format($objp->total_ttc, 2, ',', ' '),40)."€",
'url' => DOL_URL_ROOT."/compta/facture.php?facid=".$objp->facid);

$this->info_box_contents[$i][5] = array('td' => 'align="right"',
'text' => dol_print_date($datec,'day'),);

$this->info_box_contents[$i][6] = array('td' => 'align="right" width="18"',
'text' => $facturestatic->LibStatut($objp->paye,$objp->fk_statut,3));

Les dernières factures client impayées

Même chose que ci dessus, à adapter au fichier htdocs/includes/boxes/box_factures_imp.php

Résultat

N’utilisant pas dolibarr pour les factures fournisseurs, si vous voulez faire la même chose, il vous suffit de modifier les fichiers adéquats dans le dossier htdocs/includes/boxes/ de votre instalation dolibarr

Le total des factures

Maintenant qu’on a les montants de chaque facture, ce serait bien d’en avoir le total, en particulier pour les factures client impayées. C’est quand même pratique de savoir « l’argent qu’on a dehors » quand l’argent qu’on a dedans vient à manquer.

Attention: Le total ne sera calculé que sur la limite d’affichage des factures dans la boite d’information. Si vous avez choisi d’afficher 10 factures seulement dans cette boite, même si vous avez 50 factures impayées, le total sera effectué sur les 10 factures seulement affichées!

On va modifier à nouveau le fichier htdocs/includes/boxes/box_factures_imp.php .

On ajoute ligne 41 une variable qui va cumuler le total à chaque facture rencontrée

var $impayes;

Dans le bloc de code qu’on a ajouté pour avoir le montant, on ajoute une ligne (la dernière ci dessous, j’ai mis tout le bloc de code pour repérage facile dans le code)

$this->info_box_contents[$i][4] = array('td' => 'align="right"',
'text' => dol_trunc(number_format($objp->total_ttc, 2, ',', ' '),40),
'text2' => " €",
'url' => DOL_URL_ROOT."/compta/facture.php?facid=".$objp->facid);
$impayes += number_format($objp->total_ttc, 2, '.', ' ');

Cette ligne va cumuler le total des factures, et il ne reste plus qu’à afficher le total en bas du bloc des factures. Afin d’être logique, le total sera sous la colonne des montants. Il faudra donc donner des éléments vides à l’array de construction pour placer le total au bon endroit. Ce qui se fait avec le code suivant:

.....
$i++;
}
// code à ajouter ///////
$this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"',);

$this->info_box_contents[$i][1] = array('td' => 'align="left"',);

$this->info_box_contents[$i][2] = array('td' => 'align="left" width="16"',);

$this->info_box_contents[$i][3] = array('td' => 'align="left"',);

$this->info_box_contents[$i][4] = array('td' => 'align="right"',
'text' => dol_trunc($impayes,40),
'text2' => " €",);
// fin de code à ajouter /////
if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'align="center"','text'=>$langs->trans("NoUnpaidCustomerBills"));
.....

Repérez vous grâce à la ligne $i++ pour placer le reste après, avant la ligne if ($num==0) …

Résultat final

Conclusion

J’utilise ces modifications depuis plusieurs jours sans aucun soucis, et j’avoue que c’est bien plus pratique que l’affichage de base de Dolibarr.
Notez que vous devrez ré-appliquer ces modifications après chaque mise à jour de Dolibarr.

Vous pouvez aussi télécharger les fichiers modifiés que je met à votre disposition et les copier dans votre installation de Dolibarr.

Voir l’occupation des dossiers avec NCDU

Vous connaissez certainement Baobab, qui permet de naviguer rapidement dans le système de fichier pour trouver quel est le dossier ou le fichier qui prend tant de place (( L’équivalent pour windows est WinDirStat )).

Mais quand on se trouve sur une machine qui n’a pas d’interface graphique, ou par SSH ?
Effectivement, on peut s’en sortir à grand coup de du, grep et find .

Par exemple, et vous conviendrez que c’est facile à mémoriser :

du -cks * | sort -rn | while read size fname; do for unit in k M G T P E Z Y; do if [ $size -lt 1024 ]; then echo -e  « ${size}${unit}\t${fname} »; break; fi; size=$((size/1024)); done; done.

Mais il n’est pas du tout pratique de se construire une représentation de l’arborescence pour agir efficacement et rapidement.

Confronté à un manque surprenant de place sur un NAS distant venant à peine d’être installé (500 Go / 1 mois), j’ai recherché un outil me permettant de trouver quel utilisateur squattait la place.

NCDU, pour NCurses Disk Usage, permet d’analyser le système de fichier, en tout cas l’arborescence dans laquelle vous vous trouvez ou celle que vous lui indiquez, et de naviguer dedans. Et de supprimer les fichiers/dossiers inutiles que vous rencontreriez.

Dans mon cas, supprimer le dossier de films de vacances (( mouais… )) d’un utilisateur a permis de retrouver de quoi travailler confortablement pour les autres.

NCDU se trouve dans les dépôts officiels, et un simple sudo apt-get install ncdu vous permettra de profiter de ce formidable cli tool.

Filtrer les résultats de recherche avec une liste noire sur Google

Les commentaires et l’article que j’ai publié hier m’ont amené à réfléchir et chercher une solution pour nettoyer les résultats de recherche.

En effet, il y a certains sites qui reprennent toutes les recherches effectuées et vous tombez sur des pages contenant les termes que vous recherchez mais sans aucune information pertinente. Ou des sites qui ne font que reprendre le flux d’autres sites sans rien apporter. Tout ça pour afficher leur pub ou augmenter le nombre de visites.

Si on pouvait débarrasser les résultats définitivement de ces sites, la recherche en serait améliorée et plus agréable.

Et je suis tombé sur un article de Korben qui parle exactement de ça et dont la source est ici. Le plus marrant, c’est que son article a été publié à la date où j’ai rédigé la première version du mien. Comme quoi, il y a des coïncidences, parfois… Même le site qui m’insupporte est cité dans les commentaires.

En quoi ça consiste

C’est une extention nommée Personal Block List ((Liste noire personnelle)) fournie par Google pour son moteur de recherche ((donc ça ne fonctionnera pas avec les autres)) pour Chrome et Chromium que vous installez en quelques secondes ((C’est vraiment rapide! )) qui ajoute un lien sous les résultats de recherche. Vous pouvez alors faire disparaitre le domaine concerné de l’ensemble des résultats de recherche dès que vous cliquez sur le lien.

La liste des domaines bloqués est permanentes tant que vous n’éditez pas votre liste noire. Bien sûr, en cliquant sur le bouton de la barre d’outils, vous pouvez débloquer et modifier les domaines voulus.

Notez qu’il est bien précisé que votre liste sera envoyée à Google pour leur permettre d’améliorer leurs résultats de recherche. Il est vrai que si tout le monde bloque un site, il est inutile de le faire apparaitre, ce qui ne peut qu’améliorer le confort de recherche.

Simple et rapide d’usage, agréable à utiliser.

La liste des domaines est conservée dans une base sqlite à l’emplacement ~/.config/chromium/Default/Local Storage/chrome-extension_nolijncfnkxxxxxxxxxxxxxxxxx_0.localstorage.

Rien n’empêche de déployer cette base sur d’autres ordinateurs dont Chromium est équipé de l’extention. Par exemple, pour faire disparaitre des sites que mes enfants ne devraient pas voir ((dans mon cas, le squid de mon réseau est déjà efficace, mais les résultats de Google sont parfois explicites. Bien qu’ils soit impossible de tout bloquer, on peut épurer un peu.))

Et pour firefox ?

Non, ça ne fonctionne pas, il faut utiliser Chromium.

Mais une extension intéressante peut effectuer la même chose, et bien plus encore: OptimizeGoogle. Celle ci permet principalement de supprimer les publicités et les cookies de tracking, mais elle vous permet de gérer une liste de filtres à la façon de AdBlock Plus.

Sauf que je n’ai pas réussi à la faire fonctionner. Avec les réglages par défaut, Firefox se fige… Dommage. Mais vous trouverez plein de sites qui en parlent sur … fefoo, y compris l’article de Cyrille BORNE.

La faiblesse du libre, c’est aussi sa communauté.

SharkAvong 1.0 est enfin disponible!

Nous étions nombreux à attendre la sortie de la version 1 avec impatience. Les développeurs qui passaient sur le forum laissaient sous entendre que la sortie se ferait avant la fin du mois, et ils ont tenu parole! SharkAvong 1.0 est arrivé!

Au menu, beaucoup de nouveautés, dont certaines attendues depuis longtemps. Jugez plutôt:

  • support de l’internationalisation. L’anglais et le brésilien sont déjà disponibles, le français est en cours.
  • splash screen à l’ouverture du logiciel, avec indication du statut!
  • binaires disponibles pour les plus grandes distributions (Ubuntu)!
  • nouveau thème de couleurs, nouveau thème d’icones par défaut
  • application skinnable (même si les skins ne sont pas encore disponibles)
  • génération d’un fichier de log dès le lancement, facilitant la recherche de bugs
  • on peut à tout moment accéder à la fenêtre d’identification (enfin!)
  • les derniers éléments non GPL ont été supprimés!
  • Installable sur Windows XP!!! (même si ça reste en beta) Bientôt sur Seven(W7)!
  • et beaucoup d’autres bugs éliminés!

La mise à jour vous sera proposée au lancement du logiciel, et je vous invite à la suivre de façon automatique, tout s’est très bien déroulé pour moi.

De qui se moque t-on?

Là, toute de suite? De vous. Et c’est moi qui me moque.

SharkAvong n’existe pas. Enfin, pas sous ce nom. Inutile de le chercher sur google, vous ne le trouverez pas au détail. Je me suis bien assuré de n’égratigner personne.

Mais j’en ai eu marre!

Marre des nouvelles qui n’annoncent rien, des infos qui n’en sont pas, des pseudo-journalistes qui ne sont ni journalistes, ni même approchants d’un pseudo quelque chose.

Marre de lire des articles dont le seul but est d’employer des mots clefs destinés à faire augmenter le nombre de visiteurs (malheureusement, ça fonctionne…).

Marre des blogs sur lesquels il faut s’enregistrer pour un commentaire demandant des éclaircissements.

Marre des articles « d’actualité » non datés qui datent de plusieurs années en arrière.

Marre des fanatiques du libre qui font du bruit pensant faire de la publicité.

Parce qu’il est là, le problème.

Revenons au début (traveling arrière, camera zoom avant): le pseudo article que vous avez lu au dessus est une copie d’un article que j’ai lu sur le net. Copie à l’identique ((exception faite des fautes de grammaire et d’orthographe que je ne peux me résoudre à laisser dans un de mes textes)), aux liens près. Bien qu’il n’y en ait aucun…

Or, que dit cet article? Qu’avez vous appris à sa lecture?

Rien. Ni à quoi sert le logiciel, ni où le trouver, ni l’emplacement de la communauté… Rien.

Toujours est il que cet « article », et toutes les copies presque à l’identique repris sur tous les autres blog remplissent les moteurs de recherche de bruit, masquant plus ou moins fortement le site réel du logiciel qui se trouve relégué à la 38e page de google.

Et des articles comme ça, il en apparait tous les jours.

De l’éthique et des liens

Lorsqu’on écrit un article, il faut réfléchir un peu!

Voici 10 préceptes que j’applique avant de cliquer sur « publier »:

  1. Qui va me lire ? Seulement les gens qui connaissent mon blog ? Non! Les moteurs de recherche amènent autant, voire plus, de lecteurs.
  2. L’article s’adresse t-il aux initiés, ou aux néophites ? Dans tous les cas, un minimum d’explication est nécessaire, ne serait ce que pour savoir de quoi on parle. Inutile de faire un pédigrée complet à chaque fois, mais une phrase aide à centrer le sujet. L’article complet est il compréhensible?
  3. Pourquoi j’écris cet article? Si c’est pour ramener des gens à la communauté, il est nécessaire de leur permettre de rejoindre rapidement ladite communauté. Un lien vers le site du projet, ou vers une page qui en parle plus longuement est un minimum pour que l’article serve à quelque chose.
  4. Cet article est il important/nécessaire? Si l’information que vous diffusez est présente partout sur le net, pourquoi en faire un article? Si vous ne faites que reprendre ce qui existe ailleurs, liez l’article externe à votre blog, au lieu de dupliquer l’information.
  5. L’article est il juste/pertinent? Avez vous au moins vérifié vous même la véracité des informations? Vous n’imaginez pas le nombre de co***eries ((nn  ;o) )) recopiées d’un blog à l’autre dans une course à la primeur de diffusion…
  6. L’article est il suffisamment commenté/documenté? Un minimum de recherche et de liens dans votre article permet au visiteur de trouver ce qu’il cherche, les réponses à ses questions, et augmente votre crédibilité. Et par conséquent, le fait de rester ou revenir sur votre blog. Sinon, il suffit de regarder combien de visiteurs partent de votre site en moins d’une minute. Une centralisation dans votre article des liens nécessaires permet de faire revenir les visiteurs qui sauront qu’ils n’ont pas à chercher ailleurs ce qu’ils ont trouvé chez vous.
  7. Cet article est il nécessaire d’une manière ou d’une autre? ((Excepté pour le plaisir de publier sur son blog, bien sûr)) Si je ne le publie pas, va t-il manquer? Si je le publie, que va t-il apporter aux lecteurs? Si je me fais le porte parole d’une communauté, le fais-je bien?
  8. L’article est il mûr? Vais-je le modifier après publication? ((la réponse est toujours non, mais dans les faits…)) Souvent, après être passé à autre chose, l’esprit se détend et on voit qu’on aurait pu formuler les choses autrement, apporter plus de précisions ou d’indications. Ne publiez jamais après avoir fini la rédaction d’un article. Laissez passer un peu de temps. Pourquoi? Les agrégateurs ne prennent en compte que la première version publiée, et vos modifications ne seront jamais vues si on ne vient pas sur le site. Et si l’article est flou, imprécis, pas intéressant, comme mon exemple du début, on ne viendra jamais sur votre site.
  9. Me suis-je relu suffisamment? Les fautes de grammaire et d’orthographe sont pénibles à lire, changent le sens des phrases, et surtout, diminuent votre page rank dans les moteurs de recherche! Il existe plein d’outils (à commencer par les navigateurs eux même) qui signalent vos fautes et des sites vous permettant de conjuguer correctement, sans compter Verbiste disponible dans votre distribution. On peut pardonner quelques fautes, mais s’il faut déchiffrer votre écriture, on passe vite au site suivant de google. ((Chromium m’a même proposé la traduction en français d’un site entièrement écrit en français (et bien paramétré au niveau du serveur et des entêtes) mais dont tous les termes étaient mal écrits, en phonétique, cowboyz ou avec des fautes…))
  10. Ais-je été correct dans mes propos? L’article n’est il pas violent, agressif, malpoli ? L’ai-je écrit sous le coup de l’excitation, la colère ?Pourrais-je un jour le regretter devant mes parents, mes enfants, un employeur, une administration? Liberté d’expression, OK, mais respect des libertés, surtout.

Ce ne sont que les questions principales à se poser lorsqu’on écrit un article. Bien sûr que vous savez de quoi vous parlez, mais si vous êtes le seul, à quoi bon parler?

J’ai plein d’articles dans mes brouillons qui n’ont pas été publiés parce qu’ils ne répondaient pas aux questions ci dessus. un peu de temps suffirait à les rendre éligibles, mais le temps ou l’envie me manquent. Ce n’est pas grave, la qualité générale ne baisse ainsi pas.

Logiciels libres, expression libre

Libriste, c’est bien. Intégriste, même libriste, non.

Mais pour autant, doit on laisser dire n’importe quoi?

Il est vrai que l’assimilation Ubuntu <-> Linux est souvent désagréable, mais cela a ses raisons.

Ubuntu a réussi à fédérer une large part des utilisateurs de Linux ((Je rappelle qu’on doit dire GNU/Linux, mais que dans un soucis répondre à la question 2, je simplifierais en Linux)) pour une raison simple: la simplicité d’utilisation. Ce qui a amené un grande communauté, qui rameute largement à tous les niveaux et qui fait beaucoup de bruit.

Du coup, cela laisse penser que les autres distributions sont minoritaires et négligeables.

La faute à qui?

A tous ces blogs qui n’expliquent pas correctement la distribution dont ils parlent? A ces auteurs qui font savoir qu’ils savent mais ne transmettent pas ce savoir? Aux communautés qui n’assurent un soutien que lorsqu’on parle déjà leur langage? Au manque de documentation compensé par les forums des utilisateurs dont les propos sont 1kompéansib ? A l’assistance RTFM ?

J’ai lu un jour qu’ « une communauté à les utilisateur et le soutien qu’elle mérite« . J’ai été révolté sur le coup, ce qui fait que la phrase m’a marqué. Mais je ne suis pas loin de le penser aujourd’hui. Depuis que je consulte le planet-libre, et que j’y suis publié, je pense en effet qu’une diversité, si elle est rafraichissante et puissante, ne peut être utile que si elle est guidée et canalisée.

Les distributions les plus importantes aujourd’hui sont toutes dirigées/contrôlées/organisées par un comité directeur qui ne fait pas que du développement mais aussi de l’administration et de la modération de forum, ce qui permet d’indiquer la direction à suivre.

Et quand un de mes articles est refusé à la publication (sur le net ou en papier), c’est parce que j’ai raté le coche, pas parce que ces $*µ£% d’admins sont des intégristes bornés équipé d’œillères. Le bien de tous, et la survie de la communauté passe parfois par le désagrément de quelques uns.

Espoir, quand tu nous tiens

Internet commence a rassembler plus de fausses informations que de vraies, en particulier sur les logiciels libres. Les communautés devraient être plus attentives à ce qu’on dit d’elles, et pas attendre que ça vienne tout seul. Et contacter les auteurs pour leur faire corriger les fausses informations, rumeurs et manque de précision. La qualité perçue, la réputation passe par là.

C’est vrai que cela représente un gros travail, mais c’est un travail qui a été négligé depuis trop longtemps.

L’image a toujours été négligée, que ce soit dans le graphisme ou dans la communication. Ceux qui n’ont pas fait cette erreur ont réussi à percer (Mozilla, Google ((don’t be evil, quel formidable slogan, un logo travaillé, une page épurée. Ensuite seulement viennent les résultats.)), Ubuntu, Apple ((dont tous les produits sont basés sur l’image avant les aspects techniques)), même Microsoft accorde une importance primordiale sur ces points). Les campagnes publicitaires ou de mises en avant se retrouvent réduite à néant à cause des mauvais articles des utilisateurs. Pourquoi pensez vous que les plus grand xxxxx ((mettez ici ce que vous voulez)) censurent leurs forums et font des procès aux détracteurs? Sans aller jusque là, une attention particulière est nécessaire de la part du libre pour continuer d’exister la tête haute.

Pour l’histoire

Je teste beaucoup de distributions. Les bonnes idées sont à prendre où elles sont, et les logiciels libres sont un creuset où chacun peut faire sa cuisine. J’ai voulu tester une distribution non confidentielle dont je tairais le nom, dont on m’avait venté les outils d’administration. Même en parlant 3 langues, en en lisant deux autres et avec le traducteur de Google, j’ai passé un temps fou à trouver les informations minimales sur les logiciels intégrés.

Si j’avais vraiment voulu basculer sur cette distribution, j’aurais fait bien vite demi tour! Cette distribution n’était pas faite pour moi, selon certains. Peut être. Peut être aussi qu’elle n’est faite pour personne et que le problème se règlera de lui même, lorsque sa communauté aura fini de se saborder…

PS: cet article a été écrit il y a quelques jours et seulement publié aujourd’hui. Que les auteurs dont les billets me précèdent ne voient pas d’attaque envers leur article.

Tous les Windows touchés par une faille de sécurité

Voici ce qu’en dit directement microsoft:

Aujourd’hui, nous avons publié l’Avis de sécurité 2501696 pour alerter les clients à une vulnérabilité divulguée publiquement dans le gestionnaire de protocole MHTML. Cette vulnérabilité pourrait permettre à des attaquants de construire des liens malveillants pointant vers des documents HTML qui, lorsqu’on clique dessus, génèrerait le document ciblée et exécuterait le script dans le contexte de sécurité de l’utilisateur et l’emplacement cible. Le résultat final de ce type de vulnérabilité est un script codé dans le lien exécuté dans le contexte du document cible ou le site Web cible.

Par défaut, le gestionnaire de protocole MHTML est vulnérable sur Windows XP et les versions ultérieures Windows pris en charge. Internet Explorer est un vecteur d’attaque, mais parce que c’est une vulnérabilité de Windows, la version de IE n’est pas pertinente.

Je vous ai mis en gras la partie importante. Vous pouvez remplacer le conditionnel du texte par du présent, cette faille est déjà largement exploitée sur des sites de crack et de porno.

En clair, en cliquant sur un lien, vous ne ferez pas que télécharger un document, vous exécutez un script qui peut modifier le document que vous téléchargez et va faire des choses sur votre ordinateur. Par exemple, le lien à cliquer pointe vraiment vers un document officiel de Microsoft (patch de sécurité, logiciel, jeu, …) mais alors que vous le téléchargez, le script peut modifier le programme ou vous rediriger vers un autre document modifié. Sans que vous ne puissiez voir quoi que ce soit, même en vérifiant la cible avant le téléchargement. En clair, on ne peut plus faire confiance aux liens de téléchargement ((sauf à utiliser un autre système d’exploitation, comme Linux, MacOS, ou un autre navigateur internet . Firefox, par exemple.)).

Pour résumer, encore une fois, Internet Explorer + Windows, c’est non sécurisé! ((Microsoft a dépensé des milions pour des campagne publicitaires pour dire que IE8 était fun, rapide et sécurisé, ils ne vont donc pas dépenser un sou pour dire le contraire…)) Même avec le meilleur firewall et le meilleur anti-virus.

Pour vérifier votre système, rendez vous sur la page http://vulnerabilite.absolacom.com/2501696.mht. Si vous voyez le popup, vous êtes vulnérable et vous devriez installer le correctif fourni par Microsoft.

Dans le cas où vous verriez un bandeau comme sur l’image suivante, votre système est protégé contre l’utilisation à votre insu du protocole.

Message après correctif de microsoft

Par contre, faites attention: si vous autorisez tous les protocoles sur un site, celui ci peut alors faire n’importe quoi sur votre ordinateur! Ne vous laissez pas avoir par un message vous demandant d’activer ce protocole sous prétexte de vous autoriser à installer un jeu/ voir du porno/ communiquer avec vos amis/ accéder à un crack/ obtenir les 15975325 millions de dollars que vous auriez gagné….

Denyhosts: dé-blacklister une adresse IP valide

J’ai déjà parlé de denyhosts et de tous le bien que j’en pensais (dans l’article filtrer-les-connexions-ssh) mais il arrive parfois qu’une adresse IP valide et ne devant pas être bloquée se retrouve blacklistée ((parce qu’on a fait des essais, qu’on a oublié le mot de passe ou fait une erreur dans le port à utiliser…Et c’est du vécu.)). Du coup, l’adresse se retrouve systématiquement listée dans le fichier /etc/hosts.deny, ce qui fait qu’il est impossible de se connecter sur le serveur depuis ce site. Ce qui est catastrophique quand on a interdit toute connexion, SAUF depuis cette IP fixe…qui vient de se faire blacklister!.

Tout d’abord, lorsque vous mettez denyhosts en place sur un serveur, si vous avez une IP fixe depuis le site d’accès, pensez à vous autoriser en permanence afin de ne pas vous trouver renfermé dehors. Pour ce faire, il suffit d’ajouter la ligne suivante au fichier /etc/hosts.allow, en remplaçant les XXX par votre adresse IP fixe ((si votre IP est variable, ça ne sert strictement à rien. )):

ALL: XXX.XXX.XXX.XXX

Si vous êtes déjà enfermé dehors et que vous n’avez pas physiquement accès au serveur, il vous faut absolument changer d’adresse IP. Rebootez votre modem, ou allez chez un ami, un cybercafé ou au McDonald pour vous connecter au serveur et corriger le problème. Pensez ensuite à changer tous les mots de passe utilisés dès que vous rentrez chez vous.

Si vous avez blindé les accès au serveur et que vous n’arrivez pas à entrer, il va vous falloir être inventif. Dites vous que c’est comme ça qu’on apprend le métier et à être prudent ((Il existe deux types d’administrateurs : Ceux qui ont fait une très grosse connerie en tant que root et ceux qui vont en faire une… )) . J’ai bien fait 1000 km AR en voiture juste pour re-démarrer un serveur qui avait pris un « halt » dans la mauvaise console, ce qui ne m’est plus jamais arrivé…

Mais si vous avez réussi à rentrer sur votre serveur, vous avez fait le plus gros:

  1. Arrêtez denyhosts (/etc/init.d/denyhosts stop)
  2. Supprimez l’entrée du fichier /etc/hosts.deny correspondant à votre IP
  3. Profitez en pour ajouter votre IP au fichier /etc/hosts.allow comme indiqué plus haut
  4. Allez dans le dossier /var/lib/denyhosts ((sur Ubuntu. Dans le cas d’autres distributions, cela peut varier. Il semblerais que sur certaines versions ce soit dans/usr/share/denyhosts/data/ )). Vous devriez y trouver des fichiers comme ci dessous. Supprimez de ces fichiers toute occurrence à l’adresse IP concernée en supprimant complètement les lignes. la commande rgrep « xxx.xxx.xxx.xxx » /var/lib/denyhosts/ vous dira dans quels fichiers vous devez agir.
  5. Relancez ensuite denyhosts (/etc/init.d/denyhosts start)
  6. Envoyez moi une petite bénédiction
  7. Rentrez chez vous et allez vous coucher ((c’est en général parce qu’on est fatigué qu’on fait ce type de bêtise.))

Liste des fichiers du dossier /var/lib/denyhosts:

112253 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts
112142 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-restricted
112251 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-root
112146 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-valid
112148 -rw-r--r-- 1 root root  108 2010-12-08 22:26 offset
113817 -rw-rw-rw- 1 root root  27K 2010-12-08 11:42 purge-history
112147 -rw-r--r-- 1 root root    0 2010-12-08 22:26 suspicious-logins
112143 -rw-r--r-- 1 root root  109 2010-12-08 22:26 users-hosts
112145 -rw-r--r-- 1 root root  14K 2010-12-08 22:26 users-invalid
112144 -rw-r--r-- 1 root root  118 2010-12-08 22:26 users-valid

Vérifiez quand même que l’IP n’est pas bloquée pour de bonnes raisons. Ça m’est arrivé dernièrement à cause de mauvais droits sur le home de l’utilisateur, donc le serveur SSH m’envoyait systématiquement bouler. Par conséquent, au bout d’un certain nombre d’essais échoués, denyhosts a considéré que j’étais illégitime et a blacklisté l’IP.

Je confirme avoir cherché un moment ((que de souvenirs passionnant et haletants j’aurais à conter à mes petits enfants…! )).

Utiliser (tidy) HTML Validator sur Ubuntu Lucid 10.04


J’utilisais l’extension de Firefox Tidy HTML Validator jusqu’à ce qu’elle ne fonctionne plus avec les versions packagées par Ubuntu.

HTML Validator est une extension Mozilla qui ajoute une validation HTML dans Firefox et Mozilla. Le nombre d’erreurs d’une page HTML est visible sur la forme d’ une icône dans la barre d’état lorsque vous naviguez. Les détails des erreurs sont vu quand on regarde la source HTML de la page.

L’extension est basée sur Tidy et OpenSP . Les deux algorithmes ont été élaborés par le Web Consortium W3C . Et maintenant étendus et améliorés par un grand nombre de personnes. Les deux algorithmes sont intégrés à l’intérieur de Mozilla / Firefox et permettent la validation en local sur votre machine, sans envoyer de HTML à un serveur tiers.

Mais depuis quelques temps, je dois de nouveau me plonger dans la création de sites, et elle me manquait. Donc je me suis penché sur les solutions nécessaires pour l’utiliser.

Puis finalement, sans trop savoir le pourquoi du comment, j’ai réussi à la faire fonctionner. J’ai reproduit avec succès l’installation sur deux autres ordinateurs et je vous livre ici la méthode pour la Lucid Lynx en 32 bits.

HTML validator est compilé pour utiliser la librairie libstdc++5. Or, sur Ubuntu, ce n’est pas la dernière version existante (c’est la libstdc++6).Si vous essayez d’installer directement l’extension, vous aurez le message d’erreur suivant:

error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

Installation de la librairie libstdc++5 sur Ubuntu

La première chose à faire est de trouver cette librairie et de l’installer. Pas de chance, les liens vers les sites Ubuntu des anciennes versions proposant cette librairie sont morts, mais heureusement, on peut la trouver chez Debian et l’installer sans problème. J’ai utilisé la version Lenny (stable)/ i386 sur le miroir ftp.de.debian.org/debian

Installation des paquets supplémentaires

Certains paquets seront nécessaire par la suite, ajoutons les directement, cela évitera les problèmes de dépendances:

apt-get install libosp5 libnspr4-dev

Il faudra aussi modifier le fichier /etc/profile pour ajouter la ligne suivante en toute fin de fichier:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/usr/lib/xulrunner/

Ensuite, fermez votre session et reconnectez vous pour que cela soit pris en compte.

Installation des éléments nécessaires au module HTML Validator

Quelqu’un a eu la bonne idée de packager les différents éléments nécessaires au fonctionnement du module, et de les mettre sur un PPA. Par contre, impossible d’utiliser le ppa, il ne liste pas les paquets qui nous intéressent… Mais on peut y accéder directement en suivant cette adresse.

Installez les paquets « data » et html-validator pour votre version. Dans mon cas: htmlvalidator-data_0.8.5.8+svn65-0ubuntu1~ppa1_all.deb et htmlvalidator_0.8.5.8+svn65-0ubuntu1~ppa1_i386.deb. Vous pouvez les télécharger et les installer en ligne de commande, ou le faire graphiquement, tant que vous commencez par le paquet « data ».

Installation du module

Si tout est présent, en redémarrant Firefox, vous verrez le module présent dans la liste des modules. Mais il vous dira que ce module n’est pas compatible avec la version de Firefox. Dommage…

Rassurez vous, les éléments nécessaires au fonctionnement sont installés. Il suffit maintenant d’aller sur le site de l’extension et de télécharger le module pour Firefox, et de l’installer normalement.

Redémarrez Firefox, et le module sera opérationnel.

Les idées sur lesquelles je ne me suis pas penché

Tout simplement parce que la méthode ci dessus fonctionne. Ce n’est peut être pas le plus propre, mais je manque de temps pour tout défricher.

  • Si on faisait croire à Firefox que la libstdc++6 est la libstdc++5 en créant un lien adéquat? Je ne connais pas les différences entre les deux versions.
  • Peut on utiliser wine pour faire tourner Firefox win32 et l’extention Tidy HTML Validator ?
  • Contacter le mainteneur du PPA pour savoir pourquoi il ne liste pas les paquets html-validator et s’il peut corriger ceux ci pour qu’il ne soit plus nécessaire d’installer l’extention par la suite (et suivre les mises à jour avec le gestionnaire des paquets)
  • Contacter le mainteneur de l’extention Tidy HTML Validator pour lui soumettre la méthode, et voir s’il peut proposer une extension directement compatible avec Ubuntu.

Si vous avez du temps…

gReemote, une remoteware pour votre freebox

Il m’arrive de mettre la télé lorsque je travaille à la maison. Non pas que je la regarde, mais je me sens moins seul et ça m’aide à ne pas perdre la notion du temps lorsque je suis absorbé par mon travail ((et il ne faut pas rater la sortie de l’école!)).

En général, je n’agis sur la télé que pour baisser le son quand les pubs se lâchent sur les décibels, ou que le programme ne me plait pas (certains « artistes » me sortent pas les yeux). Et à ce moment, je suis toujours en train de me demander où j’ai bien pu poser cette télécommande qui n’est pourtant pas discrète!

Puis je me suis dit que, vu que Free a libéré des API’s d’accès à la freebox, quelqu’un avait sans doute développé un soft pour la remplacer ((au pire, je me lançais dans le dev à ce sujet)) et je suis tombé sur ce post sur le forum Ubuntu.

Alors j’ai installé le logiciel comme indiqué dans la documentation et j’en suis très satisfait!

Simple à installer, à paramétrer, à utiliser. Un seul petit reproche ((quand même, il faut que je critique un peu)), les boutons de couleur ne sont pas en couleur, ce qui fait qu’il est parfois difficile dans les menus de la freebox d’appuyer sur le bon bouton. Au risque de faire une erreur. Ils sont notés A B X Y, mais dans les menus seules les couleurs sont indiquées ((Un coup de marqueur sur l’écran du PC pour colorer les boutons de l’interface n’est PAS une bonne idée ;oD )). Depuis la version 1.73 (et l’indication dans le commentaire de sellax), les boutons de l’interface reprennent les couleurs de la télécommande.

Autre avantage que j’y ai trouvé, c’est que mes enfants cachaient la télécommande pour qu’on ne stoppe pas la chaine de dessins animés… On éteignait mais on passait du temps à trouver cette télécommande. Désormais, je leur montre que papa est le plus fort!!!

Petites précisions:

  • Le logiciel sert à commander la freebox et ce qui est affiché sur la télé. Si vous regardez les chaines sur votre ordinateur, ça ne vous servira à rien.
  • Il ne fonctionne que si vous vous trouvez sur le réseau interne de la freebox (wifi, CPL ou ethernet). Pas de fonctionnement en freewifi (heureusement).
  • On peut choisir le débit par défaut des chaines et accéder à celles ci d’un simple clic.
  • Applet 100% opérationnel avec gnome. Il parait que ça l’est aussi pour KDE.

Depuis un mois que je l’utilise, rien à signaler, à part que tout fonctionne bien.

Résoudre « erreur segmentatione des dépendances…50% »

Aujourd’hui, après une installation propre de Maverick Meerkat et une mise à jour du système, je me suis retrouvé dans l’impossibilité d’installer quoi que ce soit…

L’erreur suivante apparaissait toujours:

manu@pctest:~$ sudo apt-get install mplayer
Lecture des listes de paquets... Fait
Erreur de segmentatione des dépendances... 50%

Aucune des commandes habituelles (apt-get -f install, apt-get update) , pas plus que la réparation des fichiers de status ne donnait de résultat positif. J’ai trouvé la solution dans un vieux post de 2005 (!).

Voici ce qu’il faut donc taper:

$ sudo rm -f /var/cache/apt/*.bin
$ sudo apt-get update

Et tout refonctionne de nouveau correctement.

PS: vous aurez noté la faute dans le message d’erreur: ce devrait être « segmentation » au lieu de « segmentatione »

Pourquoi GNU/Linux est il meilleur ?

Et comment l’expliquer simplement ?

Surtout à des gens qui n’y connaissent rien ou qui n’ont pas le temps d’écouter toutes les explications passionnées qu’on a envie de leur transmettre ?

En les envoyant sur ce site: http://www.whylinuxisbetter.net/index_fr.php?lang=fr

Et ce que je trouve excellent, c’est que chaque image, en plus de soulever une question chez le visiteur, lui apporte surtout des réponses lorsqu’il clique dessus.

Je trouve l’idée génialement simple. Pas vous?

Convertir un carnet d’adresse LDIF en VCF (Thunderbird vers Roundcube)

Thunderbird exporte son carnet d’adresses en format LDIF ou CSV ou  TSV. Or, quand on veut importer son carnet d’adresses dans Roundcube qui n’importe que le format VCF, on est un peu coincé…

Du coup, j’ai écrit rapidement un petit programme python qui fait la conversion (ldif2vcf.py) d’un carnet d’adresses rapidement, puisque je n’ai pas trouvé de solution sur le net ((vive les formats ouverts!)).

Comme il est destiné à Roundcube et que celui ci n’utilise pas (pour l’instant) tous les champs disponibles dans une vcard, seules sont converties les informations de nom, prénom, nom à afficher et adresse mail principale. Par conséquent, si vous voulez l’utiliser pour autre chose, ne vous étonnez pas si toutes les informations ne sont pas récupérées dans le fichier de sortie ((mais la modification de code serait simple pour tout récupérer)).

Le fonctionnement est simple: vous indiquez le fichier d’entrée (.ldif) avec l’option « -f » et le fichier de sortie (.vcf) avec l’option « -o« . Si vous n’indiquez pas de fichier de sortie, le résultat s’affiche à l’écran.

Il faut bien sûr exporter préalablement votre carnet d’adresses depuis Thunderbird quelque part sur votre ordinateur.

exemple:

python ldif2vcf.py -f /tmp/adresses_personnelles.ldif

ou

python ldif2vcf.py -f /tmp/adresses_personnelles.ldif -o /tmp/sortie.vcf

L’option « -h » affiche une aide succincte.

Netspeed: monitorer l’activité réseau sur Gnu/Linux

Voici Netspeed, une applet permettant de monitorer l’activité de votre (ou vos) carte réseau d’un seul coup d’oeuil.

Pour l’installer:

sudo apt-get install netspeed

Ensuite, un clic droit sur l’une de vos barres d’outils et Ajouter au tableau de bord

Ce qui vous donnera ceci:

Enfin, clic droit sur l’applet sur le tableau de bord pour sélectionner les préférences (en particulier la carte réseau) et pour voir les détails sous forme de graphique du périphérique

Mine de rien, c’est un programme pratique pour vérifier que les échanges sur le réseau se font bien à la vitesse attendue et aider à déterminer si un ralentissement provient du réseau ou de la machine. Je sais qu’il existe des outils plus puissants en ligne de commande, mais il est parfois nécessaire que des néophytes sachent constater par eux même certains éléments, et Netspeed est simple et rapide à utiliser pour eux.

Mysql: Résoudre l’erreur « La connexion au « controluser » tel que défini dans votre configuration a échoué. »

Après une réorganisation de serveurs, et migration de mes bases Mysql vers une autre machine, j’ai pu voir dans la fenêtre de phpmyadmin l’erreur suivante:

« La connexion au « controluser » tel que défini dans votre configuration a échoué.« mysql

Comme je passe de la hardy vers la jaunty (LTS to LTS) pendant le déplacement, je me suis dit que quelques différences pouvaient exister et afficher ce message d’erreur qui ne m’empêchait pas de me connecter à phpmyadmin.

Puis je me suis souvenu que pendant l’installation de ce programme, il m’avait demandé plusieurs fois la configuration de MySql sans arriver à s’y connecter. Et dans le speed de la migration, j’ai oublié de vérifier que ça fonctionnait correctement, vu que j’arrivais à me connecter. Et que les principales opérations étaient effectuées en ligne de commande.

Après une recherche un peu plus poussée dans le code des fichiers de phpmyadmin, je me suis rendu compte qu’il cherchait à utiliser l’utilisateur phpmyadmin. Utilisateur visible dans les privilèges de l’ancien serveur, mais pas sur les privilèges du nouveau.

J’ai donc créé un nouvel utilisateur nommé « phpmyadmin » pour le serveur « localhost » ((très important: « localhost », pas autre chose)) avec le mot de passe permettant tous les privilèges, à savoir celui de root, et j’ai donné un droit d’usage simple, non Grant.

Il parait que lancer sudo dpkg-reconfigure phpmyadmin peut résoudre le problème, mais cela n’a pas fonctionné dans mon cas, au contraire de la création manuelle de l’utilisateur.

Classé dans la catégorie « ça a fonctionné pour moi ».

Afficher les icones des paquets debian

Les paquets de logiciels debian peuvent intégrer une icone du logiciel qu’ils installent. Tous n’ont pas cette icone, mais certains, et de plus en plus, l’intègrent. C’est joli, inutile,mais forcément indispensable.

Pour les afficher, il faut installer un logiciel deb-thumbnailer , soit en passant par le ppa

sudo add-apt-repository ppa:deb-thumbnailer-team/ppa
sudo apt-get update
sudo apt-get install deb-thumbnailer

soit en installant directement le paquet deb puis en vous déconnectant/reconnectant.

Problème de lancement de thunderbird 3

J’ai rencontré une erreur surprenante:

Sur un ordinateur avec Thunderbird 3 installé, et qui fonctionnait correctement jusqu’à présent, l’installation de certaines extensions (lightning et enigmail dans mon cas, mais peut être avec d’autres) empêchait le démarrage de thunderbird.

  • L’installation se passait correctement, le redémarrage après installation de l’extension aussi, mais une fois fermé, impossible de relancer le gestionnaire de messagerie.
  • Le clic sur l’icone ouvre un bouton dans la barre des tâches, le sablier tourne pendant quelques secondes puis le bouton et le sablier disparaissent.
  • La tentative de lancement en ligne de commande n’affichait aucune information ni message d’erreur quelconque. Le lancement en mode safe mode lançait Thunderbird correctement.
  • Pour pouvoir le relancer, il fallait vider le répertoire des extensions /home/user/.thunderbird/profile.default/extensions

Mais bien sûr, les extensions voulues n’existaient alors plus…

Le problème vient du fait que le dossier .thunderbird n’existe pas dans le home de l’utilisateur. Dans mon cas, ce n’est pas un dossier, c’est un lien .thunderbird qui pointe vers une autre partition. Déplacer le dossier depuis la partition vers le home de l’utilisateur, avec un vrai dossier .thunderbird, permet de tout faire re-fonctionner correctement.

Pourquoi avoir un lien, me demanderez vous¹?

Tout simplement parce que thunderbird ne gérant pas les boites en maildir, que les fichiers de mail font des tailles phénoménales² et que les sauvegardes des comptes utilisateurs prennent des heures à cause de ces boites énormes, cette partition est sauvegardée en arrière plan à des fréquences différentes des homes utilisateurs³. Et parce que j’ai des dizaines d’utilisateurs et qu’il faut uniformiser le fonctionnement de tous, d’un site à l’autre, d’un ordinateur à l’autre.

Voilà qui clôt mon histoire d’amour avec thunderbird et m’a décidé à trouver un remplaçant qui ne me poserait pas ces problèmes. Le phénix ne renaitra pas des cendres qu’il a laissé sur mes tapis.

J’avais choisi thunderbird pour ses extensions (et son potentiel de personnalisation), sa gestion des spams, sa simplicité d’utilisation, son évolution rapide et le fait qu’il tourne identiquement sur tous les OS, facilitant ainsi la migration.

Mais autant thunderbird est fantastique pour une utilisation personnelle, autant en entreprise il s’avère inadapté.

Aujourd’hui donc commence la recherche du gestionnaire de messagerie en maildir, efficace avec les spams, permettant les signature/cryptages PGP, intégrant si possible un calendrier publiable. S’il peut fonctionner sur Windows, c’est mieux, mais sans aucune obligation, je continuerais avec thunderbird sur cet OS, au besoin.

Des suggestions sur le gestionnaire de messagerie que vous me conseilleriez?

1- Si, si, je sais que vous allez me le demander.
2- En entreprise, vous n’imaginez pas la quantité de mails reçus, stockés, utilisés.
3- Sauvegarder 700 Mo, même sur le réseau, toutes les heures, occupe une bande passante qui ralentit tout le monde. Pour un seul mail reçu, c’est l’ensemble des mails qui est sauvegardé.

Ubuntu à la caisse des écoles de Perpignan

J’ai découvert dans le numéro de septembre du journal des écoles de la mairie de Perpignan un article citant 2 fois Ubuntu.

Même si on peut penser que la description des avantages d’Ubuntu est à côté de la plaque, que les logiciels libres ne sont ni cités, ni expliqués pour leurs avantages, que la photo illustrative représente des postes sous XP (avec Word!), que l’économie en coûts logiciels n’est pas citée ou qu’utiliser Ubuntu en ayant remplacé tous les postes antérieurs à 2007 est une aberration¹, il faut saluer l’initiative.

Ce que je fais ici.

Ce journal, distribué avec le journal de Perpignan, contient 8 pages format A3 et rassemble des informations pratiques. Mais surtout, il est gratuit, disponible dans toutes les administrations et même distribué dans les boites aux lettres de certains quartiers.

Ajoutons que Ubuntu est cité dans un article pleine page, lui même mis en avant en une du journal.

Comme je l’expliquais dans l’article sur l’hôtellerie/restauration, la présence de ces mots (Ubuntu, en l’occurrence) permet de préparer l’oreille et l’esprit des interlocuteurs à une approche différente de Windows et facilite le travail d’approche, au moins pour ma part.

Il sera temps, ensuite, de leur expliquer ce que sont Ubuntu, GNU/Linux, la FSF, les logiciels libres, les avantages/inconvénients…

Comme l’article n’étant pas encore en ligne sur le site de la mairie, en voici un scan (4.5Mo). Par contre, je n’ai pas encore de détails techniques sur l’installation (matériel, versions, logiciels, utilisation, …). Mais je ne manquerais pas de vous informer dès que j’en aurais.


¹- A l’attention des gens de la mairie de Perpignan qui ne manqueront pas de me lire: Ubuntu (et linux en général) étant moins gourmand en ressources que Windows, il permet de réutiliser de « vieux » postes sans besoin de les remplacer, fonctionne bien plus rapidement qu’un poste neuf avec Windows et ne nécessite pas d’investissement matériel. Contactez moi pour plus de détails.