Mot-clé - informatique

Fil des billets

vendredi 7 septembre 2012

Mise à jour de Dotclear

En route pour une migration de dotclear, le moteur de blog qui rend bien des services !

Avant toute mise à jour, on ne le répétera jamais assez, il est fort conseillé d'effectuer des sauvegardes ! On commencera donc par effectuer une sauvegarde complète de la base de données puis une copie complète du répertoire d'installation sur serveur. Ainsi, en cas de gros problème, le retour en arrière sera possible !

Ensuite,

wget http://download.dotclear.org/latest.tar.gz

puis

tar xvzf latest.tar.gz

On copie alors tout le contenu de l'extraction vers l'instance courante.

cp -R dotclear/ mon-instance-de-dotclear/

Dans la manip', le dossier 'cache' risque d'avoir perdu son régime de droit, on redonnera au serveur Web le droit d'écrire avec la commande :

chown -R www-data:www-data cache/

(sous Debian, www-data est par défaut l'utilisateur qui exécute le serveur web)

Le tour est joué : il ne reste plus qu'à se reconnecter à Dotclear et profiter de la nouvelle version !

mercredi 29 août 2012

SLiM m'a sauvé !

De retour à Xfce après un passage de 2 ans sur Gnome, GDM avait disparu et seul un startxfce4 caché dans le /etc/rc.local assurait le lancement de l'interface graphique. Mais lors de la mise à jour vers Wheezy, Xfce se refusait à laisser l'utilisateur 'Eteindre' ou encore 'Redémarrer' l'ordinateur : les boutons d'extinction restaient désespérément grisés dans l'interface.

L'ajout des utilisateurs au groupe 'powerdev' et la vérification des règles dbus/hal n'apportaient pas de solution.

La solution vint de manière inattendue quand SLiM, un gestionnaire de connexion léger et tout simple. Outre faciliter la connexion de multiples utilisateurs au poste, SLiM rendit à Xfce la raison et l'utilisateur put éteindre (enfin !) son poste de travail ! Merci SLiM !

Convertir des fichiers MIDI...

Timidity, la boîte à outil linuxienne relative aux fichiers MIDI arrive à notre rescousse.

timidity -Ow *.mid

va créer tous les fichiers WAV correspondants.

Et ensuite, on peut utiliser l'outil de son choix pour les conversions, par exemple :

ffmpeg -i fichier.wav fichier.mp3

Si on souhaite traiter tous les fichiers d'un dossier, la variante de la ligne de commande sera :

for file in *.wav; do `ffmpeg -i "$file" "$file.mp3"`;done

Que du bonheur la ligne de commande !

lundi 30 juillet 2012

Quand Office 2007 ou 2010 attend les modèles attachés

Tous les documents édités sous Word sont attachés à un modèle ('attached template' dans la langue shakespearienne). Par défaut, il s'agit de Normal.dotx (ou Normal.dot) qui est disponible sur toute machine disposant de la suite Office. Dans certains cas toutefois, les documents sont créés avec des modèles particuliers qui sont attachés au fichier.

Lorsque le fichier est enregistré, il garde donc mémoire de l'emplacement du modèle qui a servi à le faire naître. Et pour une raison que je n'explique pas, il tente d'accéder au modèle à chaque nouvelle ouverture.

Si le modèle de départ est encore accessible, l'opération est tellement rapide qu'elle ne se remarque pas. En revanche, si le modèle a le mauvais goût de se trouver sur un partage réseau inaccessible, alors Microsoft Word essaye de contacter l'emplacement... et laisse l'utilisateur patienter de nombreuses minutes. Le temps d'attente est variable : sur Windows 7 64 bits avec Office 2007 ou 2010 (à jour en date de Juillet 2012), le temps d'attente peut dépasser 2 minutes. Et pire, parfois la main n'est jamais rendue à l'utilisateur. Autant dire que ce comportement est fort handicapant !

Typiquement, on peut se trouver dans cette situation si l'on reçoit un document provenant d'une compagnie qui travaille à partir de modèles stockés sur un serveur centralisé et bien sûr inaccessible au public depuis l'extérieur.

Résoudre le problème du côté de l'émetteur Voici trois méthodes qu'il est possible d'appliquer pour 'détacher' le modèle d'un document (et le remplacer par défaut par le modèle Normal.dotx).

Méthode 1 : activer l'onglet développeur dans les options de la suite Office, puis se rendre dans l'onglet 'développeur' et cliquer sur l'icône 'modèle de document'. Dans la fenêtre qui s'ouvre, il est possible de supprimer le chemin vers le modèle lié ce qui provoque le détachement (et le remplacement par défaut par Normal.dotx).

Méthode 2 : utiliser les outils de préparation en supprimant les infos et méta-données XML présentes dans le document.

Méthode 3 : supprimer manuellement la balise <w:attachedTemplate r:id="string"/> qui se trouve dans les fichiers xml qui forment le document .docx (que l'utilisateur avisé saura ouvrir à l'aide de 7zip par exemple)

Méthode 4 : utiliser une routine scriptée (en langage Visual Basic Application) pour supprimer l'attachement :

myCurrentDoc.AttachedTemplate = ""

Résoudre le problème à la réception A la réception, il est difficile d'agir avant que le fichier ne soit ouvert pour toutes les méthodes mentionnées ci-dessus sauf la dernière. Mais elle n'est pas la plus facile à mettre en oeuvre.

Il existe en revanche une option cachée qui permet de choisir un 'time out' (i.e. un temps maximal d'attente avant abandon) pour l'opération de chargement du modèle attaché... Voici comment paramétrer ce 'time out' à une valeur raisonnable de l'ordre de la seconde pour éviter de n'avoir à attendre plusieurs minutes devant le document avant son ouverture.

Etape 1 : ouvrir le gestionnaire des bases de données "regedit" __ Etape 2 :__ dans Regedit, se rendre dans l'arborescence à

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options

Etape 3 : créer une nouvelle clé de type DWORD

Etape 4 : renommer la clé nouvellement créée en

UseTimeoutForAttachedTemplateLoad

Etape 5 : double-cliquer sur la clé et entrer une valeur décimale pour le "time out" (par ex. 1000 pour 1000ms = 1s)

Etape 6 : fermer Regedit et redémarrer le système (si Office avait déjà été ouvert)

Le temps d'attente à l'ouverture ne devrait désormais plus dépasser la durée choisie !

En espérant que ces astuces vous aideront à gagner quelques minutes très productives !

jeudi 26 juillet 2012

Forcer les boutons virtuels sur Android Ice Cream Sandwich

La version Ice Cream Sandwich d'Android apporte les boutons virtuels (qui existaient dans Honeycomb) aux téléphones. Avec ces boutons virtuels, les fonctions de retour à l'écran précédent, de bond à l'écran parent ou d'affichage des tâches en attente n'ont plus besoin d'être déclenchées par des boutons physiquement sur l'appareil.

Conséquence : le dernier né de la gamme Nexus ne possède plus de bouton de navigation physique. Sans doute un avantage en termes de coût pour la production, mais également intéressant car on gagne un peu en espace d'écran (on peut voir les boutons virtuels s'éclipser dans certains cas, par exemple la lecture de vidéos).

J'ai toutefois découvert une autre utilité à ces boutons virtuels : pallier à des boutons physiques devenus défectueux.

Toutefois, par défaut, les images d'Android compilées pour des téléphones à touches physiques ne présentent pas les boutons virtuels. Voyons donc comment réactiver cet élément d'affichage. Quelle liberté !

Récupérons d'abord le fichier applicatif framework-res.apk qui se trouve dans /system/framework. Nous allons décompiler ce fichier applicatif, le modifier, le recompiler et le placer à nouveau dans le téléphone.

Pour le récupérer, connectons-nous via adb au téléphone :

adb pull /system/framework/framework-res.apk

Décompilons le fichier obtenu à l'aide des apktools : http://code.google.com/p/android-apktool/downloads/list Dans mon cas (ICS 4.0.4 via la ROM CyanogenMod 9 RC2 pour Samsung Galaxy S), il m'a fallu décompiler avec la version 1.4.2 et recompiler avec la version 1.4.3 des apktools :

java -jar apktool.jar d framework-res.apk

Le contenu du paquet est extrait dans un dossier ./framework-res.

On modifie alors le contenu du fichier ./framework-res/res/values/bools.xml et on transforme la ligne

<bool name="config_showNavigationBar">false</bool>

en

<bool name="config_showNavigationBar">true</bool>

On peut également désactiver le rétro-éclairage des boutons physiques en modifiant le fichier arrays.xml (dans le même répertoire) : 0 signifiant éteint et 1 allumé de manière assez intuitive.

<integer-array name="config_autoBrightnessButtonBacklightValues">
<item>0</item>
....
</integer-array>

Une fois les modifications effectuées, il est possible de recompiler l'ensemble :

java -jar apktool.jar b framework-res

et un nouveau paquet framework-res.apk est disponible. Comme nous n'avons modifié que les contenus des fichiers xml de ressources, alors on peut ouvrir le package nouvellement créé avec 7zip et en extraire le fichier resources.arc. On peut alors ouvrir le paquet original et verser le fichier resources.arc à l'intérieur (en remplacement de l'existant). On peut alors replacer l'apk hybride créé sur le téléphone :

adb push framework-res.apk /system/framework/framework-res.apk

On redémarre le téléphone et si tout a bien fonctionné, les boutons virtuels sont désormais affichés en bas du téléphone en remplacement des boutons physiques défectueux !

dimanche 3 juin 2012

Changer le titre d'un fichier PDF

Je disposais d'un fichier PDF dont je souhaitais modifier le titre. Ne possédant pas le fichier source, il ne m'était pas aisé de reconstruire le fichier en paramétrant un nouveau titre.

Heureusement, pdftk est venu à ma rescousse :

1) créer le fichier "ajout" avec le contenu suivant :

InfoKey: Title
InfoValue: Something Different

2) utiliser la commande suivante

$ pdftk file.pdf update_info ajout output newfile.pdf

Et on obtient un PDF avec le titre modifié de manière adéquate !

jeudi 17 mai 2012

Reconstruction d'objets 3D à partir de photos

Les recherches en traitement d'image avancent bon train et comme l'impression 3D s'annonce comme une prochaine révolution industrielle, beaucoup d'équipes cherchent à reconstruire des objets en 3D à partir de clichés en 2 dimensions.

Une équipe universitaire de l'université de Washington avait travaillé sur ce sujet : http://phototour.cs.washington.edu/bundler/ Cela leur avait permis de reconstruire une structure en 3D du Colisée à partir de photographies glanées sur le net.

Je testais récemment le logiciel Photoscan de la société Agisoft qui me permettait d'obtenir un résultat très décent à partir de plusieurs dizaines de clichés d'un objet de forme tortueuse :

Reconstruction 3D d'une chaise

Les rendus en sont pas encore parfaits mais déjà très satisfaisants ! Vite, une imprimante 3D que je puisse dupliquer à l'envie mon univers pris en photos 2D !

lundi 30 avril 2012

User not authorized to run the X server

Par simplicité, je n'utilise aucun gestionnaire de connexion sur mon poste et je demande seulement à la machine de lancer l'interface graphique par la ligne de commande

su - user startx

dans /etc/rc.local

Bien sûr, ceci n'est pas très sécurisé car le mot de passe de l'utilisateur n'est pas demandé.

Cette solution m'apportait toute satisfaction jusqu'au jour où je pus lire :

User not authorized to run the X server

La solution est de reconfigurer x11-common :

dpkg-reconfigure x11-common

et de spécifier que l'on souhaite que 'tout le monde' puisse lancer startx.

Problème réglé !

A bientot

dimanche 4 mars 2012

Configurer Rails mailer

Rails 3 est arrivé avec tout le nécessaire pour envoyer des courriels facilement.

La configuration s'effectue dans les fichiers d'environnement : pour un paramétrage fonctionnel dans l'environnement de développement on se concentrera sur le fichier /config/environments/development.rb.

Si l'envoi est effectué par un smtp externe :

  #Settings for send emails
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => "smtp.myhost.tld",
    :port => 25,
    :domain => "emetteur.fr",
    :authentication => "plain",
    :user_name => "utilisateur",
    :password => "motdepasse"
  }

Si l'envoi est effectué par sendmail :

  config.action_mailer.delivery_method = :sendmail
  config.action_mailer.sendmail_settings = { 
    :location       => '/usr/sbin/sendmail', 
    :arguments      => '-i -t'
  }

La seconde méthode fonctionne avec le petit utilitaire 'sendmail' fourni avec nullmailer (pas un vrai 'sendmail', une émulation qui injecte le courriel dans la queue de nullmailer).

Git ignore .gitignore !

Vous venez de placer un fichier .gitignore à la racine de votre dossier suivi par git et vous constatez que git ignore votre .gitignore... ennueux !

C'est peut-être car votre dépôt git a été initialisé sans ce fichier et il est donc nécessaire de faire un petit nettoyage du cache de git.

Il faut donc se placer à la racine du dépôt :

git rm -r --cached .
git add .
git commit -m ".gitignore is not ignored anymore!"

Et voilà vos fichiers enfin ignorés !

Nullmailer s'emballe

Si on lance Nullmailer (un Mail Transfer Agent très simple qui redirige les messages vers un SMTP externe par exemple) alors que le nom de la machine est mauvais, on risque de trouver dans ses logs l'erreur suivante :

Mar  4 08:46:38 mon-desktop nullmailer[4412]: smtp: Failed: 450 4.1.8 <root@mon-desktop.mon-desktop>: Sender address rejected: Domain not found

Pas de panique : il suffit de modifier le /etc/hostname de la machine pour paramétrer un domaine routable.

Ensuite, il peut être nécessaire de purger les anciens messages qui sont dans la file d'attente de nullmailer avec un expéditeur erroné : toute la queue est stockée dans /var/spool/nullmailer/queue. Donc :

cd /var/spool/nullmailer/queue
rm *

Et voilà, nullmailer ne devrait plus poser de problèmes désormais !

dimanche 8 janvier 2012

Changer le sens d'une vidéo

Ayant obtenu plusieurs fichiers vidéo (format dv) enregistrés en sens inverse (i.e. dans le sens non chronologique des événements), j'ai eu recours à la boîte à outils melt pour la retourner :

melt  framebuffer:input.dv reverse=1 -consumer avformat:output.dv

Et hop, quelques minutes plus tard j'obtenais une vidéo dans le sens chronologique. Bien plus confortable pour visionner la bande !

dimanche 20 novembre 2011

Ne jamais oublier un anniversaire !

Las d'oublier souvent des anniversaires, j'ai décidé de prendre le taureau par les cornes et de déployer un outil pour m'aider !

L'outil sur lequel j'ai jeté mon dévolu s'appelle "reminder", petite application console fort performante !

On l'installe de manière classique avec le sélecteur de paquets, on créé un fichier de paramétrage que l'on va remplir avec le contenu suivant :

FSET _yr_num(yr)         YEAR(TRIGDATE()) - yr

REM Mar 27 MSG Anniversaire de XX le 27 mars ([_yr_num(1986)] ans)
REM May 12 MSG Anniversaire de XX le 12 mai  ([_yr_num(1987)] ans)

Et hop, si l'on lance la commande

remind fichier-reminder

alors le système nous rappelle les événements du jour !

Afin que le rappel soit expédié par courriel :

remind -k'echo %s | mail -s "Reminder" mon@email.fr' fichier-reminder

et il ne reste plus qu'à scripter cela dans /etc/cron.daily et le tour est joué !

dimanche 13 novembre 2011

Découverte de Gnome 3.0

Gnome 3 a atteint ma machine sous Debian testing aujourd'hui. Cela faisait plusieurs semaines que j'attendais/craignais cela - les revues sur les nouveautés de Gnome 3 ayant été fort partagées...

Voici pour mémoire les quelques paramétrages qu'il m'a fallu faire pour être à nouveau opérationnel avec ce système : (j'ai été bien aidé par l'article dédié sur TuxPlanet : www.tux-planet.fr/toutes-les-astuces-pour-gnome-shell/

Faire apparaître un dock Je suis un peu perdu sans un dock qui me permette d'accéder rapidement à quelques unes des applications que je lance fréquemment. Il existe une extension à Gnome 3 pour cela : l'extension "dock".

Rétablir les boutons "réduire, agrandir" à côté du bouton de fermeture de fenêtres

gconftool-2 -s -t string /desktop/gnome/shell/windows/button_layout ":minimize,maximize,close"
gconftool-2 -s -t string /desktop/gnome/shell/windows/button_layout "menu:minimize,maximize,close"

Redémarrer Gnome Shell pour profiter des nouveautés Presser les touches Alt+F2 puis lancer la commande "r".

Redonner à la touche Suppr tous ses pouvoirs

gsettings set org.gnome.desktop.interface can-change-accels true

Bon maintenant je vais laisser la magie Gnome 3 opérer et voir si cela prend !

dimanche 6 novembre 2011

Ruby et mysql

Au cours d'un essai d'installation du gem 'mysql' pour Ruby, je rencontrais l'ennuyeux message suivant :

checking for mysql_query() in -lmysqlclient... no

Pour régler ce problème, il fallait installer libmysqlclient-dev !

checking for mysql_query() in -lmysqlclient... no

Même souci avec le gem 'pg' :

Can't find the 'libpq-fe.h header

Il fallait cette fois installer :

aptitude install libpq5 libpq-dev 

samedi 5 novembre 2011

Disparition de la barre de menu et du bureau sous Xfce 4 et Debian

Pas de panique - il est possible de relancer le bureau et la barre latérale avec les commandes :

xfce4-panel

et

xfdesktop

Pour lancer ces deux commandes, on peut presser les touches Alt+F2 qui doivent permettre d'ouvrir une fenêtre d'exécution.

Et pour quelles raisons ces deux éléments pourtant essentiels avaient-ils disparu ? Mystère. Je me perds en conjecture.

mardi 27 septembre 2011

Si Samba ne doit pas s'appuyer sur CUPS

Par défaut, Samba est capable de s'interfacer avec CUPS afin de gérer des imprimantes partagées. Si CUPS n'est pas installé, on verra toutefois Samba râler quelque peu :

[2011/09/27 08:57:36.853924,  0] printing/print_cups.c:108(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused
[2011/09/27 08:57:36.855535,  0] printing/print_cups.c:108(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused

Pour forcer Samba à ne plus jeter un seul regard à Cups, voici ce qu'il faut ajouter au fichier de config smb.conf :


        #Désactivation de l'impression via Samba car cups n'est pas installé !
        load printers = no
        show add printer wizard = no
        printcap name = /dev/null
        disable spoolss = yes

Pour info, samba 3.5.6 sur Debian 6 stable.

samedi 24 septembre 2011

Failed to fork?

Hier, au sein d'une petite machine virtuelle OpenVZ tournant sous Debian, je lançais un classique "aptitude install un_paquet" et me retrouvais confronté à un message bien cryptique :

apt-get FATAL -> Failed to fork

Cela signifie en fait que la quantité de mémoire est dépassée - il faut donc l'augmenter ! Selon les cas, on investira donc dans des barrettes supplémentaires, ou bien dans mon cas (machines virtuelles) on changera les paramétrages de la machine virtuelle afin d'augmenter la quantité de RAM disponible.

samedi 10 septembre 2011

Sons étranges avec Flash dans Debian Testing 64bits

Les dernières semaines ont été marquées par un comportement un peu gênant : alors que le son fonctionnait sans problème sur le système quand on lisait un fichier .ogg ou bien des vidéos via VLC (par exemple), impossible d'avoir un son convenable sur les sites de musique comme Grooveshark ou Jamendo. Des bruits parasites (étranges) accompagnaient la musique de base.

Plus troublant encore, le son était parfait quand il accompagnait une vidéo dans les lecteurs Flash de vidéo. Et bien sûr, les sons et vidéos HTML5 ne posaient aucun problème.

Après plusieurs (longues) heures de recherche sur le net, il semble que ce soit un problème d'incompatibilité entre la version de Flash 64bits et la nouvelle librairie glibc. Ce comportement étrange a été rapporté sur cette page : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628652

Une solution proposée (qui a fonctionné pour moi) :

update-flashplugin-nonfree --install

Bonnes écoutes musicales !

dimanche 4 septembre 2011

Tapoter pour cliquer !

Sur les postes portables, les utilisateurs apprécient souvent la possibilité de 'tapoter' pour effectuer un clic ("tap to click" en anglais). En pratique, l'utilisateur tapote à 2 reprises sur la zone tactile de l'ordinateur portable qui interprète cela comme un clic.

Malheureusement, ce comportement n'est pas activé par défaut X.org sur Debian Squeeze ni sur Debian Stretch.

Sur Debian Squeeze

Pour l'activer, il suffit de modifier le fichier '/usr/share/X11/xorg.conf.d/50-synaptics.conf' afin d'ajouter l'option suivante à la section "InputClass" :

      Option "TapButton1" "1"

Sur Debian Stretch

Pour l'activer, il suffit de modifier le fichier '/usr/share/X11/xorg.conf.d/60-libinput.conf' afin d'ajouter l'option suivante à la section "InputClass" :

      Option "Tapping" "on"

Au redémarrage de X.org, tapoter devrait désormais permettre de cliquer.

Bonne soirée

- page 2 de 3 -