pma a écrit 69 commentaires

  • [^] # Re: Regex master

    Posté par  . En réponse au message Regex - Modifier une heure dans une chaîne. Évalué à 5.

    En étant tordu au point de se passer de date pour n'utiliser que du Bash (contrairement à l'exemple donné plus bas):
    for i in *.jpg ; do t=$((10#${i: -10:2}*3600+10#${i: -8:2}*60+10#${i: -6:2}-620)) ; mv "$i" "${i:0:-10}$(printf %02d%02d%02d $((t/3600)) $((t/60%60)) $((t%60)))${i: -4:4}" ; done

    Sinon, une regexp ne fait que reconnaître un motif, pour transformer ton texte, il faut lui ajouter une autre construction. Donc grep n'est pas suffisant, mais sed l'est (en passant par de l'arithmétique unaire).

  • [^] # Re: requis ou rooky ?

    Posté par  . En réponse au message [offre d'emploi] ingénieur système et réseaux sur Grid'5000. Évalué à 3.

    Oui, c'est exactement ça. À priori les recruteurs s'attendent seulement à une expérience en stage et rien de plus car le poste est obligatoirement réservé à un jeune diplômé. Il faut seulement que le cursus soit adapté au poste proposé. En fait, ce type de contrat (c'est assez courant dans le secteur public) est prévu comme un tremplin entre la formation initiale et un premier emploi dans le privé (qui aura donc un jeune pas cher avec de l'expérience) et c'est donc plutôt une bonne chose.

  • [^] # Re: Bel exercice

    Posté par  . En réponse au message signification d'un script. Évalué à 5.

    Je confirme, ça me semble aussi pas très clair au premier abord et puis cette fonction a 2 ou 3 défauts.

    Pour faire fonctionner cette fonction, il doit y avoir dans le script d'origine (ou dans un fichier de configuration inclus) des déclarations de variables correspondant à l'activation ou non de bibliothèques (c'est l'utilisation la plus probable, j'imagine que c'est dans un script ./configure de compilation ou similaire). Chaque variable est le nom d'une bibliothèque sans le préfixe "lib" et ça va rendre le nommage des variables potentiellement non explicite:

    lapack="yes" # Pour liblapack, tout va bien. Maintenant 3 contres exemples:
    utils="yes" # pour libutils, et non pas "inclure les outils complémentaires ou non."
    c="yes" # Pour la libc, et non pas un bête compteur.
    libxml_plus_plus="no" # car on peut mettre l'opérateur + dans un nom de variable.

    Ensuite ton appel devait être dans une fonction, seul endroit où l'on utilise return. Par exemple:

    example() {
    name="liblapack"
    enabled ${name#lib} || return 0
    return 1
    }

    Comme te l'apprendra le man de Bash, ${name#lib} sera remplacé par la valeur de la variable name à laquelle on aura retiré le préfixe lib s'il existe. Donc l'appel est en fait "enabled lapack".

    Maintenant, le fonctionnement de la fonction elle-même:

    Ligne 1: test "${1#!}" = "$1" && op== || op=!=

    ${1#!} : C'est la même chose, on prend le premier argument de la fonction et on retire un point d'esclamation s'il y en a un.
    test "${1#!}" = "$1" : On teste si la valeur sans le point d'esclamation est la même qu'avec. Autrement dit, on teste s'il y a un point d'esclamation ou non.
    Si la condition est vraie (&&), op== est exécuté. On peut l'écrire plus explicitement op = "=".
    Si la condition est fausse (||), op=!= est exécuté. On peut l'écrire plus explicitement op = "!=".
    Donc la ligne 1 stocke un opérateur d'égalité ou de différence on fonction de si l'argument commence par un point d'esclamation ou non. Donc la fonction enabled() sert aussi a tester si une librairie est désactivée, ça fait une fonction de moins mais ça peut être moins lisible quand on lit le code en diagonale.

    Ligne 2: eval test "x\$${1#!}" $op "xyes"

    On commence par la substitution des variables:
    ${1#!} devient "lapack" si $1 était "!lapack".
    $op devient != si j'avais un préfixe !, = sinon.
    Donc la ligne est: eval test "x\$lapack" != "xyes"
    Ensuite la commande eval est exécutée, elle exécute le code qui lui est donné donc, en ayant retiré un niveau de protection: test x$lapack != xyes. Pour faire cette exécution, il y a une dernière substitution de variable (d'où l'utilisation du eval), donc le test est xyes != xyes dans notre cas. test renvoi 1 à eval qui retourne à son tour cette valeur.

    Ligne 3: }

    La fonction ne contenait pas de return, c'est donc la valeur de la dernière ligne qui est retournée.

    Donc dans notre cas, la fonction retourne le 1 du eval. La fonction example() a dit que liblapack n'est pas désactivée.

  • # Oui, mais pas forcément tes coordonnées complètes

    Posté par  . En réponse au message Doit-on afficher les mentions légales d'un site web sur le site en question?. Évalué à 2.

    De ma compréhension, car je ne suis pas juriste, tu dois afficher les mentions légales sur ton site et elle se divisent en plusieurs catégories:
    - l'éditeur (et donc un directeur de la publication): tu dois mettre tes coordonnées complètes sauf si tu n'agis pas en tant que professionnel. Si tu es un professionnel, de toute façon, tu voudras mettre un maximum de coordonnées et numéros d'enregistrement divers à disposition de tes clients pour prouver ton sérieux. Si tu es non professionnel, tu peux te faire identifier par un pseudo. Pour cela, tu dois avoir transmis tes coordonnées complètes à ton hébergeur et afficher les coordonnées complètes de celui-ci sur ton site. Cette solution ne me semble pas possible si tu t'auto héberge. Même si tu n'y es pas obligé, tu peux ajouter un formulaire de contact (ou un email dans une image), ça peut éviter que toute la machine judiciaire soit lancée pour un différent qui peut se régler à l'amiable.
    - La licence d'utilisation des contenus de ton site. Par défaut, aucun droit de reproduction n'est accordé mais tu peux choisir de diffuser des contenus sous licence libre et dans ce cas c'est utile de le faire savoir! N'oublie pas aussi de préciser les droits des contenus tiers (textes, images) que tu utilise (auteur, licence). Les licences des logiciels que tu utilise pour faire tourner ton site peuvent aussi t'obliger à ajouter des mentions ou à publier les éventuels patchs.
    - En cas de traitement automatisé de données personnelles, la loi "Informatique et Liberté" t'oblige à mentionner comment exercer le droit d'accès et de rectification. Voir le site de la CNIL.

  • # Une image propre?

    Posté par  . En réponse au message kadeploy et grid5000. Évalué à 1.

    Bonjour,

    Ça fait quelques années que je n'ai pas touché à Grid'5000 cependant le principe ne doit pas avoir beaucoup changé:
    * Le plus facile, le plus rapide et le plus facile à maintenir pour la suite est de partir d'une des images de bases qui te sont fournies et qui sont pré-configurées. Tu y installe les logiciels dont tu as besoin de façon propre pour tes expériences. Ta VM contient alors le strict nécessaire sans superflu. Et tu pourra ensuite faire évoluer ton image en fonction des expériences suivantes.
    * Sinon, il y a sûrement encore sur le wiki de Grid'5000 une page qui explique comment créer l'image de base. Tu personnalise le script de création afin de construire ton image avec ton environnement.
    * Sinon, faire une image de ta machine de bureau n'est pas forcément une bonne idée puisque tu va te retrouver avec tout ton environnement de bureau et un tas de choses inutiles qui vont finir par te pourrir la vie quand tu va tenter de faire évoluer ton image. Si tu as fait tes installations dans des répertoires déterminés (par exemple dans ton HOME), essaye de recopier ces répertoires vers une image de base ayant la même version de distrib et la même archi que ta machine. Ce sera déjà mieux.

  • [^] # Re: Commentaire

    Posté par  . En réponse au message serveur kimsufi debian et ipv6. Évalué à 0.

    Dans un monde parfait, IPv6 devrait auto-configurer les IPs et le routage de la machine donc tu n'aurais du rien n'avoir à faire à part vérifier que ton serveur web écoute bien en IPv6.

    La doc. que tu as copié te permet de faire une première configuration pour vérifier que ça marche mais n'assure pas la mise en place de la conf. après un redémarrage. Il te faut donc suivre un howto du genre http://wiki.debian.org/DebianIPv6#Native_IPv6 pour éditer ton /etc/network/interfaces.

    Éventuellement, il faudra configurer ip6tables avec la même configuration que pour iptables en IPv4.

    Ensuite tu pourra activer l'IPv6 sur ton serveur web (voir la doc de celui-ci).

    Enfin, ton adresse IPv6 étant impossible à retenir, il faudra la mettre dans le DNS.
    Une IPv6 est effectivement en hexa donc non sensible à la casse.

  • [^] # Re: Pas possible

    Posté par  . En réponse au message Réimplémenter un code php sous licence cc-by-nc dans un autre langage, quelle licence s'applique ?. Évalué à 1.

    Je suis assez d’accord bien que je ne préfère prévenir que je ne suis pas juriste. Tu effectue une simple traduction donc les droits de l'auteur originel et du traducteur s'appliquent à l’œuvre dérivée. Il te faut donc l'accord de l'auteur pour changer la licence. Dans le cas où la traduction serait faite par un moyen automatisé, tu n'aurais même aucun droits (comme pour une compilation).
    Dans le cas où tu écrirais une implémentation complètement différente du même algorithme, il n'y aurait plus de problème (hors problèmes de brevets), les deux œuvres seraient indépendantes. C'est ce qui a d'ailleurs permis de produire des implémentations libres de protocoles ou formats de fichiers propriétaires.
    Je pense que le plus simple est de contacter l'auteur, vous devriez pouvoir trouver un terrain d'entente et mettre en place au minimum une double licence sur la version C++.

  • [^] # Re: Des moufles, parce qu'il fait froid.

    Posté par  . En réponse au message Quelle solution opensource pour creer un site d'enchere temps réelle ?. Évalué à 4.

    Wikipédia traduit "race condition" par "Situation de compétition". Je te laisse lire l'article. En gros, le but est d'essayer d'éviter des problèmes tels que deux personnes parfaitement synchronisées ne puissent toutes deux remporter l'enchère... Le plus simple est de te reposer sur les propriétés ACID (lire Wikipédia) de ta base de données en lui soumettant les bonnes requêtes SQL.

    Sinon, j'utiliserai un environnement d'e-commerce pour avoir la facturation, le paiement et les expéditions. Tu y ajoute ensuite le plugin d'enchères (à créer s'il n'existe pas). Un compte-à-rebours en javascript devrait se trouver facilement. Enfin, n'hésite pas à demander à un tiers de vérifier la sécurité de ton application, même les plus grosses sociétés ont des problèmes avec.
  • [^] # Re: Réponse à deux balles \_o< \_o<

    Posté par  . En réponse au message proxy. Évalué à 1.

    Bonjour,

    Ma réponse à 2 cents:

    Dans l'hypothèse ou tu parle d'un cache HTTP, celui-ci ne peux à priori pas savoir comment le document à été construit (entièrement à la main ou via une base de données). Il y a donc des directives prévues pour indiquer dans quelles conditions le document doit être conservé:
    http://www.mnot.net/cache_docs/
  • # autre possibilité: la machine virtuelle

    Posté par  . En réponse au message Compte utilisateur avec droits TRES restreints. Évalué à 9.

    Bonjour,

    Si tu pouvais lui interdire tous les répertoires sauf ~, il aurait des problèmes à exécuter les commandes de base n'ayant pas accès /bin. De même avec /etc, certains logiciels ne fonctionneraient pas ou utiliseraient la configuration par défaut. Donc il doit garder l'accès en lecture aux répertoires du système. Normalement, les modifications sont réservées à root, propriétaire de ces fichiers donc il ne peux rien y changer (et ne peux même pas lire /etc/shadow qui contient les mots de passe).

    Tu peux lui barrer l'accès à ton répertoire ~ en lui en interdisant l'accès et la traversée de ce répertoire, il ne pourra alors pas descendre dans l'arborescence. Évidement, tu ne dois pas lui donner l'accès root/sudo.

    Autre solution que le chroot: créer une machine virtuelle sur ta machine avec un ssh que tu rend accessible depuis l'extérieur. Il pourra y faire ce qu'il souhaite (accès root) mais n'aura pas accès aux systèmes de fichier et à la mémoire réels. (mais le chroot ou le sftp suffit peut être à tes besoins).
  • # Téléphone portable

    Posté par  . En réponse au message traceurs GPS et photographie. Évalué à 2.

    J'utilise tout simplement le GPS de mon téléphone portable (Nokia 5800) avec l'une des applications (exemples: RaceChrono ou AFTrack ; existe-t-il des solutions libres pour les remplacer?) qui enregistre la trace au format NMEA ou GPX ou KML. Mon téléphone ne marche pas trop mal depuis le fond d'une poche ce qui fait qu'il ne me gêne absolument pas pour les prises de vues. Puis sur ma machine, j'utilise si besoin gpsbabel pour convertir en gpx. Et enfin, je réalise la corrélation avec GPSCorrelate.
  • # DDC

    Posté par  . En réponse au message Mettre en veille un écran séparement d'un autre. Évalué à 2.

    Tu dois pouvoir contrôler directement ton écran via le Display Data Channel. Si je me souviens bien, il y a une commande pour l'allumer et l'éteindre à distance.
    Voir http://ddccontrol.sourceforge.net/ ou apt-get
  • [^] # Re: Avant de mettre les mains dans le cambuis

    Posté par  . En réponse au journal De l'écriture d'un pilote Linux pour un gadget. Évalué à 4.

    Le site de Toshiba est malheureusement actuel. Il a été mis à jour le 25 février 2010 d'après la première page. Il montre que l'effort de Toshiba en faveur d'un support de Linux est assez timide et c'est dommage.
    J'avais oublié la documentation de J. Buzzard. Elle montre pour sa part qu'une documentation complète de l'interface ne serait pas si difficile à fournir pour Toshiba; et que cela aurait évité à la communauté de passer des heures à essayer de deviner les maximum 6 valeurs de chaque fonction. Ces fonctions sont relativement universelles sur les portables Toshiba et je pense que certaines datent de plus d'une décennie.
    Pour compléter la doc, je crois que j'utilisais aussi cet utilitaire qui contient quelques fonctions supplémentaires:
    http://www.schwieters.org/toshset/
  • [^] # Re: udev à l'ouest ?

    Posté par  . En réponse au message fdisk -l ne montre rien après un apt-get upgrade. Évalué à 3.

    En solution de secours, tu dois pouvoir peupler ton /dev à la main ou faire comme ceci:
    Tu dois pouvoir booter sur un livecd. Tu monte ensuite tes partitions. Tu monte le /proc et le /dev de ton livecd dans l'arborescence de ta partition habituelle. Tu fais ensuite un chroot sur cette arborescence et tu corrige le problème (là je sais pas, tu peux essayer de voir dans /var/log/ le paquet qui n'a pas marché lors de l'upgrade) Enfin tu quitte le chroot, démonte tout et reboot.
  • [^] # Re: divers

    Posté par  . En réponse au message LinuxFR.org: stats (type de machines, charge système, etc...). Évalué à 4.

    Et les infos sur le matériel sont données à chaque dépêche annonçant un changement de serveur.
    Question délai pour la prochaine version: la version actuelle sous Templeet ne me semble pas être catastrophique au point de devoir tout réécrire d'ici fin août. Cependant, si tu veux accélérer les choses, tu peux contribuer à la future version du site. Je crois que c'est ici: http://github.com/nono/linuxfr.org
  • [^] # Re: Avant de mettre les mains dans le cambuis

    Posté par  . En réponse au journal De l'écriture d'un pilote Linux pour un gadget. Évalué à 8.

    Il y a effectivement quelques infos à glaner auprès de Toshiba ici:
    http://linux.toshiba-dme.co.jp/linux/eng/develop.htm
    ... mais c'est assez limité car ils donnent assez peu de réponses en fait. J'en est appris presque autant en lisant le driver Linux.
    On apprend que l'interface utilisée ici est l'implémentation ACPI de l'ancienne interface HCI/SCI utilisée depuis fort longtemps par Toshiba pour contrôler le Bios. Sur mon ancien Toshiba, il n'y avait pas d'interface utilisateur pour le Bios et tout se fait via les utilitaires Windows. :( Cette interface permet donc pas mal de modifications (potentiellement catastrophique pour le bon démarrage de la machine) et c'est donc pas terrible qu'elle soit aussi facilement accessible.
    Pour ma part, mon gadget était (la carte vidéo de ce portable est morte depuis) un petit écran LCD de quelques caractères qui servait à afficher le titre du morceau sous Windows. J'avais arrêté mon étude (c'était exactement le même process que décrit ici) au moment où l'auteur passe au débugueur. J'aurais du écrire un journal, ça lui aurait fait gagné quelques heures...
  • # Duplication des E/S standards

    Posté par  . En réponse au message Reprendre la main sur un tty. Évalué à 1.

    Bonsoir,

    A partir d'un programme en C, tu peux toujours redéfinir tes 3 flux d'E/S (stdin, stdout, stderr) à l'aide de l'appel dup(int) de <unistd.h> décrit dans "man dup".

    Tu peux aussi le faire en ligne de commande: (ici en concatenant un fichier donné sur l'entrée standard puis un fichier test.sh sur l'entrée standard de mon programme "bash")
    shell1# echo "echo hello world" > test.sh
    shell1# cat /dev/stdin test.sh | bash
    shell2# echo "ma commande à la main"
    puis CTRL+D
    affiche bien:
    ma commande à la main
    hello world
  • [^] # Re: tc

    Posté par  . En réponse au message Rediriger une application sur l'interface réseau de notre choix. Évalué à 2.

    D'ailleurs, normalement, la Freebox de ton voisin doit elle aussi donner la priorité aux paquets de ton voisin par rapport aux tiens afin qu'il puisse aussi mouler sur Linuxfr :) . "route" doit être la manière la plus simple, comme expliqué dessous, pour répondre à ton problème de façon temporaire. En plus d'ajouter des priorités, l'idéal serait d'agréger les 2 liens de manière à utiliser Freewifi une fois ta propre ligne saturée. Ce serait notamment pas mal intéressant au niveau de l'upload (franchir le méga!).
  • # Bibtex + outils Unix

    Posté par  . En réponse au message base de donnée de textes avec références bibliographiques. Évalué à 1.

    Bonjour,

    Sous forme d'application web, Aigaion doit correspondre un peu à ce que tu cherche. Tu dois pouvoir y adjoindre un moteur de recherche (web) classique si les documents sont stockés dans des répertoires sur le serveur.
    Pour ma part, j'entasse tout simplement mes fichiers PDF et Postscript dans un répertoire et mes références Bibtex dans un seul fichier, mais je veille à bien mettre un lien vers chaque fichier dans les entrées de bibliographie correspondantes (j'utilise Jabref, il n'y a qu'à cliquer pour ouvrir le fichier correspondant).
    Pour la recherche dans le texte, si tu n'as pas de formatage ni de figures, tu peut mettre les fichiers sous forme de fichiers textes et alors faire tes recherches avec grep ou ton moteur d'indexation favoris (et c'est compatible avec les logiciels Bibtex classiques et ton éditeur favoris).
  • [^] # Re: Auto-signés = danger !

    Posté par  . En réponse au message Certificats SSL en centré utilisateur ?. Évalué à 2.

    Dans ce cas là, tu as encore une solution avec le certificat auto-signé, c'est de contacter, via un canal de confiance, la personne qui a émis le certificat et vérifier avec lui l'empreinte / somme de contrôle du certificat. Mais, bon, aucune chance que ton banquier sache ce que c'est qu'une empreinte...
  • [^] # Re: autorité de confiance

    Posté par  . En réponse au message Certificats SSL en centré utilisateur ?. Évalué à 2.

    Oui, le certificat de LinuxFr est signé par CACert. Tu peux le vérifier en cliquant sur le cadenas affiché par ton navigateur préféré lorsque tu est sur https://www.linuxfr.org/. Par contre, CACert n'est pas reconnu par toutes les versions de navigateurs. Les signatures de Cacert reposent sur une communauté et répondent donc en partie à la question.
    Sinon, il existe des certificats SSL personnels qui te permettent de signer un mail ou de t'authentifier (mieux qu'un mot de passe!) sur un site. C'est notamment le cas du certificat des impôts. Il existe plusieurs autorités qui délivrent ces certificats gratuitement.
    Tu peux aussi créer ta propre autorité comme le disait NeoX, mais c'est pas forcément très pratique pour tes amis.
    Enfin, tu as des certificat pour les mêmes usages persos qui sont signés par ta communauté d'amis: c'est GPG.
  • [^] # Re: Faire un tube

    Posté par  . En réponse au message Manipulation d'un programme interactif en C++. Évalué à 2.

    Oui, à priori, vu que les certificats répondent à un standard, tu devrais pouvoir les utiliser quelque soit le logiciel. (c'est l'avantage par rapport à un format fermé)
  • [^] # Re: synchronisation contacts et agenda

    Posté par  . En réponse au message Le serveur domestique parfait. Évalué à 1.

    Pour mon Nokia, j'ai testé la synchronisation SyncML (qui existe aussi peut être sur Android) avec Opensync (et autres outils liés genre msynctool, multisync). J'arrivais à synchroniser en bluetooth avec un répertoire. Mais je n'arrivais pas ensuite à synchroniser le dit répertoire avec mon carnet d'adresse (kaddressbook de KDE) et agenda (Korganizer) car les outils nécessaires n'étaient pas encore au point, donc j'ai laissé tombé pour le moment. Ça a peut être évolué depuis.
  • [^] # Re: eeepc

    Posté par  . En réponse au message Le serveur domestique parfait. Évalué à 7.

    Il faut aussi penser à une batterie (donc un UPS) pour la box ou le modem, sinon plus de net en cas de coupure et le serveur serait isolé donc pas forcément utile.
  • # Faire un tube

    Posté par  . En réponse au message Manipulation d'un programme interactif en C++. Évalué à 3.

    Bonjour,

    L'idéal serait d'utiliser les bibliothèques d'OpenSSL directement, ton programme ne serait alors pas dépendant d'un changement d'affichage d'openssl (mais seulement d'un changement d'API). Ça fait un moment que je n'ai pas regardé openssl, mais "man 3 x509" doit pouvoir te renseigner (reste à trouver un exemple: les sources d'openssl?).

    Pour rediriger les flux, il faut que tu crée un tube (pipe) qui servira de tampon entre les E/S de tes 2 processus. "man pipe" te donnera un exemple complet.