LBSNDD : le blog sans nom de dimitri

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 18 juillet 2008

Convertir un timestamp

Juste histoire de dire que ce blog n'est pas à l'abandon et pour vérifier qu'il marche toujours et aussi pour noter un truc utile...

Des timestamps on en trouve plein les logs. Sauf que pour les comprendre il faut être une machine. Voici le traducteur :

echo $timestamp | awk '{print strftime("%F %T",$1,$1)}'

Vous remplacez $timestamp par votre timestamp et ça roule tout seul. Par exemple :

$ echo 1216310257 | awk '{print strftime("%F %T",$1,$1)}'
2008-07-17 15:57:37

Pour un fichier :

awk '{print strftime("%F %T",$1,$1) $0}' fichier

Ici $1 représente la position du timestamp dans la ligne de chaque fichier (en admettant également que le séparateur est l'espace). Adaptez en fonction de vos fichiers. Si le timestamp est en 4e position dans chaque ligne, mettez $4. $0 représente la totalité de la ligne. On peut peut-être faire en sorte de ne pas réafficher le timestamp. Mais la solution que je vous propose ici est pour faire rapide. Pour une solution sérieuse utilisez Perl.

Pourquoi le paramètre $1 est répété ? Parce qu'il est utilisé deux fois. Une fois pour afficher la date avec %F, une fois pour l'heure avec %T. Pour connaître tous les symboles possibles faites un man date.

À bientôt pour un nouveau billet.

mardi 18 décembre 2007

Éditer un wiki via WikipediaFS

À l'aide de WikipediaFS il est possible de monter, telle un volume NFS, le contenu d'un Wiki (propulsé par MediaWiki) distant dans sa propre arborescence.

WikipediaFS repose sur fuse qui doit être installé. Il faut charger le module fuse dans le noyau et ajouter les utilisateurs souhaitant utiliser ce service au groupe fuse.

Read next

dimanche 17 décembre 2006

Thunderbird et les requêtes Ldap

Ldap est un système de gestion de bases de données (SGBD) épuré, optimisé et surtout orienté annuaire (d'où le « d » de Ldap). Il est donc naturel qu'un annuaire Ldap contienne des noms avec des adresses e-mails (plus deux-trois autres choses, mais c'est pas le propos). Il est également naturel qu'un client mail digne de ce nom puisse interroger un annuaire Ldap comme il le ferait avec votre carnet d'adresse. Thunderbird, comme vous vous en doutez, ou mieux, le savez, est un client mail digne de ce nom.

Si vous avez activé l'option quivabien, soit Édition -> Paramètres des comptes -> Rédaction et adressage puis cochez Utilisez un serveur Ldap différent, Thunderbird interrogera le serveur dont vous aurez précisé l'adresse. Il fait cela lorsque vous commencez à taper le nom ou l'adresse d'un destinataire dans la fenêtre de composition de mail. Dans la fenêtre de configuration du serveur Ldap il y a même possibilité de préciser un filtre.

Il faut savoir que par défaut, Thunderbird utilise déjà un filtre auquel le votre sera concaténé. Ce filtre est (|(mail=*motif*)(cn=*motif*)(givenName=*motif*)(sn=*motif*))[1]. Si vous êtes dix personnes à utiliser ce service, pas de problème. Mais si vous êtes tout une université, le serveur risque de souffrir un brin.

Les options de configuration de Thunderbird n'étant pas toutes documentées il a fallu aller chercher là où se trouve forcément l'information. Les sources bien sûr ! Au passage, merci le logiciel libre qui permet un tel accès à la connaissance. Le filtre par défaut est codé en dur dans le source mais il y a moyen de l'outrepasser. Il suffit de rajouter dans les préférences de Thunderbird la clé ldap_2.servers.MonServeurLdap.autoComplete.filterTemplate avec comme valeur le filtre que vous souhaitez. Par exemple (sn=%v*) recherchera le motif en début de nom. Ce qui est amplement suffisant je trouve. MonServeurLdap est le nom que vous avez défini dans Thunderbird.

Notes

[1] Respectivement la recherche du motif se fait dans l'adresse e-mail, le common name (généralement nom et prénom dans une même chaîne), le prénom et le nom, pour chaque entrée de la branche choisie. Les astérisques offrent la possibilité que le motif ne soit pas au début ni à la fin. Un vrai carnage.

samedi 11 novembre 2006

Pense-bête pour admin

Quelques articles lus sur Debian Administration pour ne pas les oublier... D'ailleurs, je suppose que ces astuces doivent fonctionner ailleurs que sur une Debian. Une Ubuntu par exemple...

  • Vous connaissez sans doute le ls en couleurs, mais saviez-vous que grep aussi propose une sortie avec le ou les mots recherchés colorés. Il suffit juste de déclarer dans son .bashrc la variable GREP_OPTIONS avec --color=auto, comme expliqué dans grep: highlighting matches in color.
  • Que faire quand votre ordinateur est bloqué (sous Linux, bien sûr, car sous Windows, il s'agirait d'une fonctionnalité normalle, donc, pas de solution) ? Avant de faire appel à Hannibal et ses compères essayez donc les combinaisons de touches magiques : The magic sysreq options introduced.
  • Les pages de man, que vous utilisez peut-être tous les jours en les affichant dans votre xterm favori, peuvent également être converties en HTML pour affichage dans un navigateur, ou en PostScript pour impression dans un format plus adapté qu'un simple copié-collé du terminal. Lisez donc Manual pages: not just for the console anymore.
  • Enfin, un petit topo sur comment sécuriser un peu plus son serveur SSH.

Attention, de vrais morceaux de mauvaise foi sont cachés dans ce billet. Aucune fenêtre n'a été cassée pendant la rédaction de ce billet.

mardi 7 février 2006

Apache 2 et les modules

Parce que je ne configure pas tous les jours un Apache 2 et que j'avais oublié depuis la dernière fois.

Pour activer des modules, ce n'est plus le fichier /etc/apache/httpd.conf qu'il faut modifier, mais l'on doit utiliser les commandes a2enmod (pour activer) et a2dismod (pour arrêter).

a2enmod rewrite

Bien sûr, il faut ensuite relancer le serveur pour qu'il prenne en compte les modifs (au cas où vous oubliriez, Apache vous le rappelle).

/etc/init.d/apache2 force-reload
  • la liste des modules actifs se trouve dans le répertoire /etc/apache2/mods-enabled/
  • la liste des modules disponibles (donc activables) se trouve dans /etc/apache2/mods-available/

Apache 2 c'est bon, mangez-en.

mercredi 4 janvier 2006

Astuce : copier des cellules d'un tableau dans Firefox

Soit un tableau de données sur une page Web. Dans Firefox vous voulez copier une ou plusieurs colonnes un peu comme vous feriez un Ctrl + V dans Vim :

  • enfoncez la touche Ctrl en même temps que vous cliquez sur la première cellule ;
  • faites glisser la souris jusqu'en bas de la colonne (vous pouvez englober plusieurs colonnes) ;
  • copiez (Ctrl + C) ;
  • collez ailleurs (Ctrl + V) ;

À noter que malheureusement, la structure des colonnes n'est pas conservée, c'est-à-dire, que vous aurez toutes vos données sur une seule ligne. Si vous souhaitez conserver la structure, vous pouvez toujours copier une colonne à la fois dans Calc (vous obtenez des lignes), puis inverser les lignes et les colonnes.

Vous pouvez également copier des cellules non contiguës. Il suffit de cliquer sur chacunes en maintenant la touche Ctrl enfoncée.

mardi 3 janvier 2006

Astuce : inverser lignes et colonnes dans Calc

Pour inverser les lignes et les colonnes dans OpenOffice.org Calc, c'est-à-dire, renverser le tableau, il faut :

  • copier les cellules à basculer,
  • faire un collage spécial et cocher Transposer.

vendredi 8 avril 2005

Bip

Hier je me suis posé un petit problème (j'aime bien me creuser la tête pour des trucs insignifiants) : je communique avec mes proches par le biais de réseaux de messageries instantannées et j'utilise un client sous Linux que je trouve fabuleux pour gérer tout ça. Il s'agit de centericq. J'ai donc des contacts sur ICQ, AIM et MSN, tous affichés dans la même liste de la même fenêtre. Lorsqu'un message me parvient, le haut-parleur interne m'envoie un bip. Jusqu'ici tout va bien. Sauf que j'ai découvert que l'on pouvait attribuer des sons différents pour chacun des contacts. Ces sons ne sont pas joués par le haut-parleur interne, mais par la carte son.

Cruel dilemme : ma carte son fonctionne en permanence, avide de musique comme je le suis. En effet, j'écoute la radio en continu (j'oscille entre la douce musique de Gotham Radio et les sédiments magnétiques de Divergence-FM). Dans ce cas, les sons produits par centericq sont tout bonnement ignorés, la carte son étant déjà occupée.

L'idéal serait de pouvoir faire une pause dans la musique le temps de jouer le son du message. L'idéal est possible, voici la solution. Cependant, cette solution est très ciblée. Elle est adaptée à l'usage de Xmms auquel il faut rajouter xmms-shell, un outil permettant de manipuler Xmms depuis la ligne de commande.

Le problème de la pause classique est quelle ne libère pas le périphérique son. Vous pouvez essayer de mettre Xmms en pause et de jouer un son depuis un autre logiciel, ça ne marche pas. En regardant dans les commandes de xmms-shell on remarque celle-ci : fakepause : pause XMMS and release the output device. C'est la commande qu'il nous faut.

Pour exécuter une commande xmms-shell en mode non-interactif, on utilise la syntaxe suivante : xmms-shell -e commande

Or, fakepause ne peut être exécutée qu'en mode interactif (c'est-à-dire, en exécutant xmms-shell sans argument ; on se retrouve alors avec un nouveau prompt). En effet, la commande fakepause, pour libérer le périphérique son, est obligée de faire en réalité un « stop », donc de perdre la position courante dans le morceau (en vrai pause, on conserve cette position). C'est donc xmms-shell qui conserve cette position. Or, appelé en mode non-interactif, xmms-shell est quitté, et toutes ses variables vidées dès la fin de la commande appelée. En mode interactif, xmms-shell n'est terminé qu'à l'appel de la commande quit (ou d'un arrêt brutal).

Le but premier de ce billet est de réaliser un script. Il nous faut donc trouver un moyen d'appeler cette commande fakepause puis de glisser un son ! Voici donc ce script :

echo "fakepause" | xmms-shell
music123 $1

On envoie le mot « fakepause » à une instance interactive de xmms-shell créée à la volée. Pour une raison que j'ignore encore, cette instance ne vit pas longtemps et nous laisse juste le temps de placer une autre commande derrière. Si quelqu'un a une idée sur la question, je suis preneur.

J'utilise ici la commande music123, qui, en fonction du format du fichier passé en paramètre, appelle la commande nécessaire pour traiter ce format (par exemple ogg123 pour un son Ogg Vorbis, esdplay pour un fichier Wav).

Il ne reste ensuite plus qu'à dire à centericq quelle commande appeler à quel moment. Ouvrez le fichier ~/.centericq/sounds. Vous verrez sans doute une ligne comme celle-ci :

*   msg   !spk1

Cela signifie qu'à l'arrivée d'un message, quelque soit l'expéditeur (*), un bip sera joué par le speaker (haut-parleur interne). Pour vos contacts auxquels vous voulez attribuer un son ajoutez une ligne ressemblant à celle-ci :

icq_numéro msg /home/dimitri/bin/icq-sound /usr/share/games/wesnoth/sounds/eagle.wav

Ici j'utilise un son provenant du jeu de stratégie en tour par tour Battle of Wesnoth dont je parlerai forcément prochainement.

Évolution : il y aurait encore mieux à faire, mais pour l'instant cette solution me convient. Quand j'en aurai marre que la musique soit entre-coupée sans cesse au cours d'une discussion, je réfléchirai au moyen de faire passer les deux sons ensemble par la carte son. Je pense que c'est possible. Toutes les suggestions sont les bienvenues dans les commentaires.

PS : je ne suis pas geek, simplement curieux :)