Christophe --- a écrit 227 commentaires

  • # Problèmes de ligne de commande ?

    Posté par  . En réponse au message ps-watcher et wget. Évalué à 3.

    Bonjour,

    Je ne connais pas ps-watcher mais j'aurais tendance à penser que dans la ligne ce commande avec le wget il y a des caractères qui ne sont pas interprétés comme par le shell et cela génère un process wget avec de mauvais arguments, ce qui fait qu'il ne fonctionne pas?

    Pourrais-tu au moins donner la commande wget concernée?
  • [^] # Re: Complément

    Posté par  . En réponse au message Config et commande EXTVLCOPT d'un m3u. Évalué à 2.

    Bonjour,

    Je ne suis, de loin, pas spécialiste du sujet, et j'ai peut-être mal compris ton message, mais comme les m3u sont des playlists, j'aurais tendance à penser que l'adresse UDP que tu fournis est l'endroit ou aller chercher le stream, donc il ne faut pas attendre à ce que quelque chose sois envoyé vers l'adresse spécifié.

    Au passage, je confirmes le manque de doc sur ces options. Cependant mes lectures me laissent à penser que les paramètres qui y sont placés sont traités comme si ils avaient été mis en paramètre en ligne de commande, donc avant de travailler avec une playlist je te suggère déjà de faire marcher une chaine en ligne de commande.

    Enfin, j'ai vu le texte suivant dans l'aide:
    --m3u-extvlcopt, --no-m3u-extvlcopt
    Enable parsing of EXTVLCOPT: options (default disabled)
    Enable parsing of EXTVLCOPT: options in m3u playlists. This option is default disabled to prevent untrusted sources using VLC options without the user's knowledge. (default disabled)
  • [^] # Re: livecd

    Posté par  . En réponse au message problème avec le /lib. Évalué à 2.

    Bonjour,

    Tu peux essayer la méthode suivante:

    export LD_LIBRARY_PATH=le_nouveau_chemin

    Ensuite, le mv réparateur devrait passer...
  • # Pour les 150 caractères...

    Posté par  . En réponse au message utilisation du sed. Évalué à 2.

    Bonjour,

    Plutôt que d'utiliser le printf tu pourrais utiliser ceci:
    cut -c-150

    Pour ce qui est du sed, ce serait déjà une bonne idée de mettre la commande entre quotes:
    sed -e 's/...//g'
    pour éviter les problèmes d'interprétation par le shell de la regexp.

    En suite, je pense qu'un pattern comme: s/</?STRONG>//g devrait mieux marcher? (en supposant que tu veuilles supprimer juste les tags)
  • [^] # Re: Screenshot ?

    Posté par  . En réponse au journal Si je peux le lire, je peux en faire ce que je veux. + Question gpg. Évalué à 4.

    <humour>
    heu... oui mais non, y'a justement un complot en cours pour vendre des écrans de portables brillants plutôt que mates, justement pour que le flash éblouisse l'écran et empèche la photo... Ils ont pensé à tout !
    </humour>
  • [^] # Re: Screenshot ?

    Posté par  . En réponse au journal Si je peux le lire, je peux en faire ce que je veux. + Question gpg. Évalué à 4.

    Bonjour,

    Je n'ai pas de réponse parfaite à te fournir car je n'ai pas testé le truc, mais voici quelques pistes techniques, d'après mes experiences:

    - j'ai vu sur le site qu'il faut installer un plug-in, donc déjà avec un truc qui tourne sur la machine locale, ça aide beaucoup...

    - une technique "simple" serait de détourner l'utilisation des fonctions d'overlay des cartes graphiques;

    - on peut mettre des wrappers sur les appels systèmes des fonctions clés.

    Explications sur l'overlay:
    Afin d'accélérer les affichages vidéo, au lieu de copier le flux décodé dans la mémoire vidéo, on demande à la carte d'aller le chercher (et au passage d'appliquer une opération dessus, comme la conversion YUV->RGB) dans la mémoire centrale. C'est par exemple ce que fait l'extension xv sous Linux/X11.

    Pour ce faire, on met dans la fenêtre en question seulement un fond d'une couleur donnée (la chroma-key), et la carte s'occupe du reste. L'effet secondaire, c'est que lors d'une copie d'écran... on ne capture que la chroma-key et pas la vidéo...

    Explications sur les wrappers:
    Je me souviens que sous Windows on peut installer des hooks, c'est à dire des fonctions à sois que le système va appeler lors d'un appel à une fonction donnée pour pré-/post-traiter les infos.

    Par exemple, on peut le faire sous linux avec LD_PRELOAD, ce qui est moins coopératif que la demande par les fonctions *Hook* de Windows, mais tellement plus souple.
  • [^] # Re: moi et mes copines

    Posté par  . En réponse au journal Si je peux le lire, je peux en faire ce que je veux. + Question gpg. Évalué à 6.

    <humour>
    Vite, pose un brevet!

    Claim: A technique to encrypt a message using a user built-in technique

    Y'a des millions à faire sur ce coup!
    </humour>
  • [^] # Re: et crontab lui-même?

    Posté par  . En réponse au message Impossible d'utiliser CronTab: Accès refusé. Évalué à 2.

    Ouais, mais c'est normal...

    Par contre, suite au message de Kerro ci-dessous, j'ai fait une deuxième vérif, sur Ubuntu cette fois au lieu de la Slackware, et je l'ai bien aussi sur le groupe. Il faut que tu corriges les droit sur le répertoire des tables:

    - chmod g+x /var/spool/cron
    (pour avoir le droit de descendre dans le répertoire)

    - chmod g+wx /var/spool/cron/crontabs
    (pour pouvoir y créer les infos par utilisateurs)
  • # et crontab lui-même?

    Posté par  . En réponse au message Impossible d'utiliser CronTab: Accès refusé. Évalué à 2.

    Bonjour,

    Pourrais-tu vérifier ceci:

    ls -l /usr/bin/crontab
    -rws--x--x 1 root bin 10432 2005-09-12 01:41 /usr/bin/crontab

    Il faut vérifier qu'il y a bien le s dans les droits, sinon c'est normal qu'il ne puisse pas accéder au répertoire.

    Si le problème viens bien de là, il serait intéressant de vérifier le package d'origine et de faire remonter le bug à l'équipe de debian pour qu'ils puissent le corriger.
  • [^] # Re: Dépôt Jeux Linux

    Posté par  . En réponse au journal Jouer sous Linux, d'un point de vue de canard. Évalué à 1.

    Ça me donne une page vide

    C'est surement à cause du déménagement de TuxFamily, cf.:
    https://linuxfr.org//2008/04/01/23922.html
  • [^] # Re: Incohérence

    Posté par  . En réponse au message connection GNUplot et script linux. Évalué à 2.

    pour supprimer la légende, il suffit de rajouter:

    echo "unset key" > $MAFIFO

    après le set yrange
  • [^] # Re: Bah... faut pas utiliser de playlist?

    Posté par  . En réponse au message mplayer playlist joué un seul titre. Évalué à 4.

    en fait -shuffle mémorise aussi les titres joués et évite de les répéter

    En est-tu bien sûr?
    De mon côté, je pense plutôt que -shuffle prend la liste des fichiers à jouer, la met dans le désordre, puis joue cette liste... Implicitement, un titre joué ne sera donc pas rejoué, mais en pratique si tu quittes mplayer au milieu de la playlist et que tu le relances, tu te rendra compte qu'il ne garde pas de trace de ce qui a été joué (et heureusement, ça n'est pas son rôle).

    Je vais faire mon pénible, mais si tu ne veux jouer qu'un seul titre, la notion de déjà joué n'existe pas, et si tu veux en jouer plusieurs, l'option -shuffle est là pour cela...

    Enfin, comme tu lances mplayer à partit d'un script, j'en déduirais naturellement que c'est le boulot de ce script de savoir quelle vidéo jouer...

    <troll mode="pas_discret" option="deuxième_couche">
    mais si Python ne sait pas le faire, il est toujours temps de passer à un langage plus évolué comme TCL...
    </troll>
  • [^] # Re: Incohérence

    Posté par  . En réponse au message connection GNUplot et script linux. Évalué à 2.

    la variable r ne sert à rien, car comme indiqué au fin-fond de la page de man de bash:

    If a command is terminated by the control operator &, the shell executes the command in the background in a subshell.

    Le subshell signifie qu'il a lancé un nouveau shell, donc la variable r n'est plus la même, donc changer sa valeur dans le premier shell ne sera pas vu dans le deuxième shell.

    Si tu fais rm tube, tu détruit le "fichier", mais pas ce qui lis de l'autre côté. Si tu ne veux pas de problème, il faut faire:

    echo "quit" > $MAFIFO ; sleep 1; echo "exit" > $MAFIFO
    sleep 1; rm $MAFIFO


    comme dans mon 2e exemple, pour n'éffacer le "fichier" que quand l'autre côté en a bien terminé avec.
  • # Bah... faut pas utiliser de playlist?

    Posté par  . En réponse au message mplayer playlist joué un seul titre. Évalué à 3.

    Bonjour,

    Si tu ne veux jouer qu'un seul des fichier de la playlist, il suffit... de lancer mplayer le_fichier, non? quel interet de charger la playlist sinon?

    <humour mode="grod_troll_velu">
    Mais peut-être que Python ne propose pas de fonction pour aller lire la playlist pour aller chercher le nom du fichier en question ? Dans ce cas, il serait peut-être temps de passer à un langage plus mature comme TCL, tu ne crois pas?
    </humour>
  • [^] # Re: Incohérence

    Posté par  . En réponse au message connection GNUplot et script linux. Évalué à 2.

    mais il y'a encore un petit problème, la fenêtre se ferme après 5ms!!

    Il vaut vérifier que la commande xprop fonctionne, car c'est elle qui détecte que l'on a fermé la fenêtre. Pour cela, taper xprop -h dans un terminal devrais confirmer que c'est bon. S'il ne trouve pas la commande, cela vas être difficile.

    j'essaye de travailler avec un 3ème argument. qui prend 2 valeurs "oui" ou "non",
    oui : ça veut dire c'est le dernier point a tracer dans la fenêtre ("donc la fenêtre(gnuplot) doit se fermer apres une seconde par exemple)


    il suffit de rajouter à la fin le code suivant:
    if [ "$3" = "oui" ]; then
       echo "quit" > $MAFIFO
    fi
  • [^] # Re: Incohérence

    Posté par  . En réponse au message connection GNUplot et script linux. Évalué à 2.

    Bon en fait voila, c'est presque pas compliqué...
    MAFIFO=kapoueee
    if [ ! -p $MAFIFO ]; then
      MAFNETRE="Mon GNUPLOT a moi"
      mkfifo $MAFIFO
      ( tail -f $MAFIFO | gnuplot ; rm $MAFIFO ) &
      echo "set term x11 title '$MAFNETRE'" > $MAFIFO
      echo "set multiplot"     > $MAFIFO
      echo "set xrange [0:10]" > $MAFIFO
      echo "set yrange [0:10]" > $MAFIFO
      ( sleep 5 ; while
          xprop -name "$MAFNETRE" WM_NAME > /dev/null 2>&1
        do sleep 1; done ; echo "quit" > $MAFIFO
        sleep 1 ; echo "exit" > $MAFIFO ) &
    fi
    echo "plot \"< echo $1 $2\" w p pt 2" >> $MAFIFO
    
  • [^] # Re: Incohérence

    Posté par  . En réponse au message connection GNUplot et script linux. Évalué à 2.

    Là par contre je vais te décevoir: ce n'est pas possible (simplement, en tout cas)...

    Le problème est le suivant: quand tu ferme la fenêtre, c'est normal pour gnuplot, donc il ne fait rien, il ne préviens pas, il ne se termine pas. Donc, comme on ne peut pas savoir du côté du script que la fenêtre à été fermée, on ne peut pas réagir en conséquence.

    Les seules solutions reposent sur du bricolage. Je fais quelques essais et je te tiens au courant.
  • [^] # Re: Incohérence

    Posté par  . En réponse au message connection GNUplot et script linux. Évalué à 2.

    En même temps, le code ne fonctionnais pas... Voici qui fonctionne:
    MAFIFO=kapoueee
    if [ ! -p $MAFIFO ]; then
      mkfifo $MAFIFO
      ( while true; do
          cat $MAFIFO
        done | gnuplot
      ) &
      echo "set multiplot"     > $MAFIFO
      echo "set xrange [0:10]" > $MAFIFO
      echo "set yrange [0:10]" > $MAFIFO
    fi
    echo "plot \"< echo $1 $2\" w p pt 2" >> $MAFIFO
    
  • [^] # Re: Incohérence

    Posté par  . En réponse au message connection GNUplot et script linux. Évalué à 2.

    Bonsoir, ce qu'il te faut, c'est détacher le process gnuplot de ton script pour qu'il reste dans son co1n. Voici une idée pour faire cela:
    # Le nom du pseudo-fichier qui va permettre d'envoyer les instructions
    # à gnuplot (c'est une FIFO, pour ceux qui suivent pas)
    MAFIFO=/tmp/ma_jolie_fifo_a_moi_que_jai
    
    if [ ! -f $MAFIFO ]; then
      # C'est la première fois, il faut donc la créer
      mkfifo $MAFIFO
    
      # ...et lancer gnuplot
      gnuplot < $MAFIFO &
      # Ne pas oublier le '&', car le gnuplot il est grand, il est majeur,
      # il va vive sa vie bien gentillement de son côté
    fi
    
    # Bon, bin plus qu'à envoyer une commande:
    echo "Hello you..." >> $MAFIFO
    # Je sait pas pourquoi, mais je pense qu'il va pas l'aimer celle là,
    # pourtant j'suis poli :)
    
    voila l'idée, plus qu'à remplir joyeusement et avec entrain.
  • [^] # Re: C'est parce qu'il manque un petit détail

    Posté par  . En réponse au message unicode et ncurses. Évalué à 2.

    Bonjour,

    je devrais peut-être apprendre à lire

    Oh ben non, je te rassures, le problème ne se situe pas au niveau de tes yeux, mais de l'expérience. Je me suis déjà fait avoir par un problème identique il y a quelques années, et j'y avais perdu quelques heures...

    À ce propos: Piege à connaitre... un certains nombre de #ifdef des headers n'ont pas le droit d'être définis tels-quels, il faut passer par un nom plus générique qui est convertis dans le features.h qui est inclus partout.

    pour la librairie libncursew.a, je n'ai pas vu où cela est décrit

    Peut-être... par ce que ça n'est écris nul part? Je t'avoue je n'ai pas cherché sur le sujet, mais je m'était fait un test-case de cinq lignes pour comprendre ton problème, et c'est comme cela que j'ai vu que tu y aurais une erreur... Petit coup de locate sur la bibliothèque, de ls pour voir ce qu'il y a autours, et de tenter avec le cursesw au fort potentiel...

    Par contre; je n'ai malheureusement aucune doc à te proposer sur le sujet...

    <ma-vie>
    Justement aujourd'hui j'ai failli re-tomber sur le problème: j'ai utilisé la fonction dlsym, erreur de compilation... mais j'ai eu de la chance, dans la page de man il y a le message pour le -D_GNU_SOURCE, ouf...
    </ma-vie>

    Ce serait peut-être pas mal de proposer aux mainteneurs de ncurses:
    - de rajouter l'info sur -D_XOPEN_SOURCE_EXTENDED dans les notes des pages concernées;
    - de parler de la lib cursesw dans la page générale de curses...

    moi je vais pas le faire, mais j'ai une excuse: je suis un boulet associal paresseux incurable, alors...
  • # C'est parce qu'il manque un petit détail

    Posté par  . En réponse au message unicode et ncurses. Évalué à 5.

    Bonjour,

    Alors dans le désordre:

    ces même fonctions ne sont pas retrouvées lors de la phase de link

    J'ai jeté un oeil sur la page de man, il y a cette note:

    NOTES
    Note that all of these routines except waddnwstr may be macros.

    donc ça peut expliquer pourquoi il ne la trouve pas lors du link.

    Ensuite, il y a le problème de la compilation:
    le prototype existe dans ncurses.h

    il est bien défini, mais si tu regardes plus haut, tu verra que tout ce qui concerne les wchar est entouré d'un:
    #ifdef _XOPEN_SOURCE_EXTENDED

    Il faut que tu compiles en rajoutant l'option -D_XOPEN_SOURCE_EXTENDED, car le support des wchar n'est pas standard, c'est une "nouveauté" de X/Open Unix.

    Et la normalement, tu vas te rendre compte que ça passe (presque) mieux... Sauf qu'il reste encore une surprise: Il ne faut pas linker avec -lcurses mais avec -lcursesw pour que ça marche.
  • # Pas de livre à proposer, mais une remarque:

    Posté par  . En réponse au message Conseils achat de livres pour débuter. Évalué à 2.

    Bonjour,

    d'après la liste que tu donnes, il y a deux catégories de livres:
    - ceux qui expliquer comment utiliser Linux;
    - celui qui explique l'algorithmie.
    Hors, il va te manquer... ce qui va entre les deux:
    - le langage en lui-même que tu vas utiliser (C, C++, Python, TCL, ...);
    - comment utiliser ce langage sous Linux (je pense en particulier au C et à comment le compiler, car ce n'est probablement pas dans un livre sur l'utilisation de l'OS, il y a déjà bien des choses à couvrir).

    Sinon, je suis désolé mais je n'ai pas vraiment de livre à te conseiller, j'avais à l'époque appris "à la dure", et sans budget pour les livres...

    Je te proposerais bien celui-ci, qui est très bon:
    http://www.lmet.fr/fiche.cgi?_ISBN=9780130385604
    mais on vas se moquer de moi car il semble que ce langage (que j'adore) sous passé de mode...

    Une remarque quand même, en général les éditions O'Reilly ont des livres de grande qualité, c'est assez pratique quand on n'a pas la moindre idée pour choisir un livre. Je pense par exemple à:
    - http://www.oreilly.com/catalog/prognu/ ;
    - http://www.oreilly.com/catalog/pcp3/ .
  • # Un lien et une piste

    Posté par  . En réponse au message Convertion dv vers avi "ac3". Évalué à 2.

    Bonjour,

    Une petite remarque, si tu veux garder la piste en AC3, il faut mettre -oac copy, sinon tu la ré-encode (décompression, recompression), et dans ce cas probablement peu d'interet à ne pas garder le MP3 directement.

    Le lien, c'est:
    http://www.kinodv.org/article/view/76/1/13/

    Sur cette page (en anglais) ils expliquent comment modifier l'export de Kino, mais je supposes que c'est ce que tu fait déjà?
  • # Quelques pistes

    Posté par  . En réponse au message Probleme avec Regle udev et insertion HDD externe. Évalué à 3.

    Bonjour,

    Tel que je voie les choses, je pense que:
    - s'il lance ton script trops tôt, c'est parceque tu as deux règles, donc il parrallélise;
    - le fait que dans le cas d'une seule règle il lance plusieurs fois le script doit être un bug, peut-être faut il le remonter au développeur? (d'autant qu'il me semble en avoir déjà entendu parler dans ces forums...);
    - la solution temporaire pourrait consister à mettre un sleep 1 au début de ton script... beurk, mais bon... (délai à adapter);
    - un autre patch pourrais consister à mettre un lock (man lockfile) au début de ton script, à quitter si il existe déjà, et à ne le supprimer à la fin qu'àpres un délai (man sleep ;-) ) (cela permet une réaction plus rapide).
  • [^] # Re: je comprend pas...

    Posté par  . En réponse au message tail qui ne rend pas la main. Évalué à 3.

    Sinon en réfléchissant deux secondes de plus, je viens de penser à une solution super simple et nettement moins bricolée:


    readen=0
    tail -f /file | while [ $readen -ge $x ]; do
       read line
       echo "$line"
       readen=$((readen+1))
    done | (traitement)