kna a écrit 761 commentaires

  • [^] # Re: Cloud et Grid

    Posté par  . En réponse au journal C'est quoi le "cloud computing" ? 1/2. Évalué à 2.

    Oui, il faut capitaliser sur ses features pour que AWS soit interessant.

    Si tu as un site ou une appli classique, et que tu le déplaces sans modifications sur des EC2 « on-demand », tu vas juste exploser ton coût.

    En revanche, si tu as des variations de trafic importantes, l'auto-scaling est plus interessant qu'avoir toute une flotte de serveurs qui dorment 90% du temps juste pour être dispo lors de fortes charges. Si tu as des traitements à faire, et qu'ils peuvent reprendre sans pertes après une coupure, tu peux utiliser les « Spot instances » pour avoir des machines qui sont démarrées quand le prix est faible et stoppées quand le prix augmente.

    Quand tu développes ton appli from scratch, tu as toute une flotte de micro-services que tu peux utiliser à ta guise (et ils sortent des nouveaux services ou nouvelles fonctionnalités très régulièrement). Ils sont facturés à l'usage, donc quand tu te lance ça te coûte quasiment rien, et ça gère tout seul la montée en charge. En les utilisant bien, tu peux optimiser tes coûts. C'est aussi pour ça que ça intéresse surtout les startups. Quand ton appli tourne depuis 5, 10, 20 ans, et qu'elle tourne bien, tu décides pas de tout casser à moins d'être certain que l'économie réalisée soit à la hauteur de l'investissement (et c'est difficile de calculer combien AWS va te coûter exactement à l'avance).

  • [^] # Re: Quel FAI ?

    Posté par  . En réponse au journal Retour d'expérience sur un hébergeur Français. Évalué à 3.

    Chez OVH on peut aussi modifier les reverses de ses IPv6. Ça n'avait pas l'air possible quand j'étais chez Free, mais ça a peut-être changé depuis ?

  • [^] # Re: Python

    Posté par  . En réponse au message Passer d'une liste monocolonne délimité à une liste sur plusieurs ligne.. Évalué à 2.

    Après les gens pestent que perl est un WOL (write only language), en sortant des exemple de code abscons (un peu comme mon premier one liner).

    Moi je viens des scripts shell à la base. Je m'étais mis à perl pour fuir awk :)

  • [^] # Re: Python

    Posté par  . En réponse au message Passer d'une liste monocolonne délimité à une liste sur plusieurs ligne.. Évalué à 3.

    Je préfère : perl -pe 'chomp if not (/^\[\//)'

  • [^] # Re: Triste je suis

    Posté par  . En réponse au journal La princesse Leia bronsonisée. Évalué à 9.

    telnet towel.blinkenlights.nl

  • # c'est bien, mais pas suffisant

    Posté par  . En réponse au message attaques et sauvegardes. Évalué à 7.

    Les backups, c'est comme l'immobilier à Paris.

    Vous faites des sauvegardes. C'est bien, mais pas suffisant
    Ces sauvegardes sont faites régulièrement. C'est bien mais pas suffisant.
    La rétention est assez longue. C'est bien, mais pas suffisant.
    Vous avez des backups sur 2 sites différents. C'est bien, mais pas suffisant.
    Elles ne sont pas accessibles depuis la source (et donc pas supprimable depuis la source). C'est bien, mais pas suffisant.
    Elles sont faites automatiquement. C'est bien, mais pas suffisant
    Un monitoring vous renvoie une alerte si un job est en erreur. C'est bien mais pas suffisant.
    Vous recevez aussi une alerte si le job n'a pas été lancé. C'est bien, mais pas suffisant.
    Le monitoring est monitoré. C'est bien, mais pas suffisant.
    Vous faites régulièrement des tests de restauration. Bon, c'est déjà mieux là.

  • [^] # Re: Du coup ?

    Posté par  . En réponse au journal [HS_C_EST_PAS_DU_LIBRE] Zone Téléchargement, what.cd, quadrature du snobisme. Évalué à 7.

    Si tu vois le dernier Batman ou Game of Thrones avec un peu de décalage ta vie n'est pas foutue.

    L'offre légale c'est pas un peu de décalage.
    Ça doit être pour ça que Netflix fait sa propre production, c'est disponible sur Netflix avant de l'être en téléchargement illégal.

    Pour le reste, ben soit t'achêtes le DVD à prix d'or bourré de pubs et de bandes-annonce, soit t'attends 3 ans pour le voir en VOD.

  • # mpd.socket

    Posté par  . En réponse au message rc.local. Évalué à 2. Dernière modification le 25 novembre 2016 à 11:42.

    Voir le résultat de :

    # systemctl list-units | grep mpd
    

    Si tu as mpd.socket qui apparait, systemd va ouvrir un socket sur le port d'écoute de mpd et démarrer mpd lorsqu'un client se connecte sur ce port.
    Le service mpd stop va le stopper s'il est démarré, mais le socket restera ouvert par systemd. Du coup, si ton rc.local essaye de démarrer mpd, il ne pourra pas bind le port, car il est déjà ouvert.

    Dans ce cas, il faudra faire :

    # systemctl stop mpd.socket
    # systemctl disable mpd.socket
    

    et ton rc.local devrait fonctionner.

  • [^] # Re: Analogie

    Posté par  . En réponse au journal Toute résistance n’est pas futile.. Évalué à 2.

    pourtant la lumière est bien déviée par la force gravitationnelle !?

    Elle va pas toujours en ligne droite, gravitation ou pas ??
    (alors oui, seulement dans un milieu homogène, et la gravité peut rendre le milieu hétérogène).

  • [^] # Re: Probablement…

    Posté par  . En réponse au message Chiffrer disque avec clés de chiffrement stockée sur périphérique amovible. Évalué à 3.

    En fait, j'ai créé quelques fichiers ordinaires de quelques méga-octets que je monte en loopback lorsque j'en ai besoin et qui sont ensuite exploités comme des volumes habituels

    Il faut juste pas que ton système swappe ou que tu fasses du suspend2disk.

  • [^] # Re: Merci

    Posté par  . En réponse à la dépêche surveillance:// Entretien avec son auteur Tristan Nitot et 10 livres à gagner. Évalué à 2.

    Est-ce que Facebook va cafter à madame si tu la trompes ? Non.

    Effectivement. Mais est-ce que Madame pourrait te soupçonner de faire certaines activités dans son dos, en voyant les pubs qui apparaissent quand tu es sur Facebook (et qui n'apparaissent pas sur son compte à elle) ? Déjà que tu as eu du mal à lui faire comprendre que la jeune Gwendoline dans la popup en bas à droite qui prétendait habiter ton bled et vouloir chatter avec toi n'existait pas…

  • [^] # Re: Malpoli Tic

    Posté par  . En réponse au journal Hello again. Évalué à 3.

    Il bat de l'aile ?

  • [^] # Re: lesspipe

    Posté par  . En réponse au journal Back to basics : avoir un excellent pager avec less. Évalué à 4.

    J'ai remarqué la commande : dvi2tty "$1" >/dev/null il écris sur sa sortie standard ? (je ne connais pas du tout l'outil)

    Ça date, et je n'ai pas souvenir d'avoir lu un DVI depuis longtemps (les rares fois où je fais du LaTeX, je produis en pdf directement). Du coup, je pense que c'est une erreur, le >/dev/null est en trop.

    Ta reprise est sympa, je vais la récupérer du coup. C'est vrai que j'ai rajouté des lignes au fur et à mesure mais n'ai jamais revu ce script globalement.

  • [^] # Re: Le mojo des imprimantes

    Posté par  . En réponse au journal HP, l’informatique de trahison.. Évalué à 2.

  • # lesspipe

    Posté par  . En réponse au journal Back to basics : avoir un excellent pager avec less. Évalué à 10.

    Tout d'abord, je signale que ~/.lessfilter ça ne fonctionne que sous debian.

    lesspipe regarde le contenu de la variable LESSOPEN. Logiquement, on créé un script lesspipe qui renvoie ses variables lorsqu'on l'exécute sans argument :

    $ lesspipe
    export LESSOPEN="| /usr/bin/lesspipe %s";
    export LESSCLOSE="/usr/bin/lesspipe %s %s";
    

    D'où le eval $(lesspipe) pour l'activer. Il se trouve que le lesspipe fourni par debian cherche un fichier ~/.lessfilter, ce qui permet à chaque utilisateur d'avoir son script perso. Mais ce n'est pas le cas sous toutes les distribs.

    Pour ma part, j'ai refait un lesspipe à ma sauce, d'abord inspiré de ceux trouvés dans les distribs que j'ai utilisés, puis alimenté au fur et à mesure des fichiers que j'ai voulu lire avec less. Le voici aujourd'hui :

    #!/bin/sh
    # input preprocessor for less
    
    # print LESSOPEN variable, when called without args
    # (use it with absolute path)
    if [ $# -eq 0 ]; then
        echo "LESSOPEN=\"|$0 %s\""
        echo "LESSCHARSET=utf-8"
        if env | grep -q '^LESS=' ; then
            if ! echo $LESS | grep -q '\-R' ; then
                echo "LESS=\"-R $LESS\""
            fi
        else
            echo "LESS=-R"
        fi
        echo "export LESS LESSOPEN LESSCHARSET"
        exit
    fi
    
    # Check usage
    if [ $# -gt 1 ]; then
        echo "Usage: Don't use it directly"
        echo 'Launch "eval $(/path/to/lesspipe.sh)" to use it with less'
    fi
    
    # We just determine file type of $1
    # and determine which viewer is appropriate
    case "$(file -Lb "$1")" in
    # Folder
    directory)
        ls -la "$1" 2>/dev/null ;;
    
    # Archive
    POSIX[[:space:]]tar[[:space:]]archive*)
        tar tvvf "$1" 2>/dev/null ;;
    gzip[[:space:]]compressed[[:space:]]data*) # Test if tar or man 
        if gzip -dc "$1" | file - | grep -q 'tar archive' ; then
            tar tvvf "$1" 2>/dev/null
        elif gzip -dc "$1" | file - | grep -q 'roff' ; then
            gzip -dc "$1" | nroff -S -mandoc -
        else
            gzip -dc "$1" 2>/dev/null
        fi ;;
    bzip2[[:space:]]compressed[[:space:]]data*)
        if bzip2 -dc "$1" | file - | grep -q 'tar archive' ; then
            tar tvvf "$1" 2>/dev/null
        elif bzip2 -dc "$1" | file - | grep -q 'roff' ; then
            bzip2 -dc "$1" | nroff -S -mandoc -
        else
            bzip2 -dc "$1" 2>/dev/null
        fi ;;
    cpio[[:space:]]archive)
        which cpio >/dev/null && cpio -it < "$1" 2>/dev/null ;;
    [Xx][Zz][[:space:]]compressed[[:space:]]data*)
        if xz -dc "$1" | file - | grep 'tar archive' ; then
            xz -dc "$1" | tar tvvf - 2>/dev/null
        else
            xz -dc "$1" 2>/dev/null
        fi ;;
    data) # Test if lzma archive
        if xz -t "$1" ; then
            if xz -F lzma -dc "$1" | file - | grep 'tar archive' ; then
                xz -F lzma -dc "$1" | tar tvvf - 2>/dev/null
            else
                xz -F lzma -dc "$1" 2>/dev/null
            fi
        else
            echo "Unrecognized file"
        fi ;;
    ISO[[:space:]]9660[[:space:]]CD-ROM[[:space:]]filesystem[[:space:]]data*)
        if which isoinfo >/dev/null ; then
            echo "$1:" ; isoinfo -d -i "$1"
            echo
            echo '***Contents:' ; isoinfo -f -i "$1"
        fi ;;
    Zip[[:space:]]archive[[:space:]]data*)
        unzip -l "$1" 2>/dev/null ;;
    RAR[[:space:]]archive[[:space:]]data*)
        which unrar >/dev/null && unrar l "$1" 2>/dev/null ;;
    
    # Distributions Packages
    Debian[[:space:]]binary[[:space:]]package*)
        if which dpkg >/dev/null ; then
            echo "$1:" ; dpkg --info "$1"
            echo
            echo '*** Contents:' ; dpkg-deb --contents "$1"
        else
            ar p "$1" data.tar.gz | tar tzvf -
        fi ;;
    RPM*)
        if which rpm >/dev/null ; then
            echo "$1:" ; rpm -q -i -p "$1"
            echo
            echo '*** Contents:' ; rpm -q -l -p "$1"
        elif which rpm2cpio >/dev/null ; then
            rpm2cpio "$1" | cpio -it
        elif which rpm2tar >/dev/null ; then
            rpm2tar -O "$1" | tar tvf -
        fi ;;
    
    # Printable documents
    PDF[[:space:]]document*)
        which pdftotext >/dev/null && pdftotext "$1" - 2>/dev/null ;;
    PostScript[[:space:]]document*)
        if which pdftotext >/dev/null && which ps2pdf >/dev/null ; then
            ps2pdf "$1" > /tmp/less-$$ 2>/dev/null
            pdftotext /tmp/less-$$ - 2>/dev/null
            rm -f /tmp/less-$$
        fi ;;
    TeX[[:space:]]DVI[[:space:]]file*)
        which dvi2tty >/dev/null && dvi2tty "$1" >/dev/null ;;
    
    # Editable documents
    LaTeX*document[[:space:]]text)
        which highlight >/dev/null && highlight -S tex -O ansi "$1" 2>/dev/null ;;
    HTML[[:space:]]document[[:space:]]text)
        which highlight >/dev/null && highlight -S html -O ansi "$1" 2>/dev/null ;;
    OpenDocument[[:space:]]Text)
        which odt2txt >/dev/null && odt2txt "$1" 2>/dev/null ;;
    CDF[[:space:]]V2[[:space:]]Document*) # MS Office document
        if echo "$1" | grep -q '\.doc$' ; then
            which catdoc >/dev/null && catdoc "$1" 2>/dev/null
        elif echo "$1" | grep -q '\.xls$' ; then
            which xls2csv >/dev/null && xls2csv "$1" 2>/dev/null
        fi ;;
    troff*)
        nroff -S -mandoc "$1" 2>/dev/null ;;
    
    # text
    *[Pp]erl*script*text*)
        if which pygmentize >/dev/null ; then
            pygmentize -l pl "$1" 2>/dev/null
        elif which highlight >/dev/null ; then
            highlight -S perl -O ansi "$1" 2>/dev/null
        fi ;;
    *[Pp]ython*script*text*)
        if which pygmentize >/dev/null ; then
            pygmentize -l py "$1" 2>/dev/null
        elif which highlight >/dev/null ; then
            highlight -S python -O ansi "$1" 2>/dev/null
        fi ;;
    *sh*script*text*)
        if which pygmentize >/dev/null ; then
            pygmentize -l sh "$1" 2>/dev/null
        elif which highlight >/dev/null ; then
            highlight -S Bash -O ansi "$1" 2>/dev/null
        fi ;;
    *[Pp]ython*script*text*)
        if which pygmentize >/dev/null ; then
            pygmentize -l py "$1" 2>/dev/null
        elif which highlight >/dev/null ; then
            highlight -S Bash -O ansi "$1" 2>/dev/null
        fi ;;
    *[pP][hH][pP]*script*text*)
        if which pygmentize >/dev/null ; then
            pygmentize -l php "$1" 2>/dev/null
        elif which highlight >/dev/null ; then
            highlight -S php -O ansi "$1" 2>/dev/null
        fi ;;
    *C*program*text)
        if which pygmentize >/dev/null ; then
            pygmentize -l c "$1" 2>/dev/null
        elif which highlight >/dev/null ; then
            highlight -S c -O ansi "$1" 2>/dev/null
        fi ;;
    *text)
        if echo "$1" | grep -q 'Makefile' ; then
            if which pygmentize >/dev/null ; then
                pygmentize -l make "$1" 2>/dev/null
            elif which highlight >/dev/null ; then
                highlight -S make -O ansi "$1" 2>/dev/null
            fi
        else
            cat "$1" 2>/dev/null
        fi ;;
    
    # Images
    JPEG[[:space]]image[[:space:]]data*)
        which identify >/dev/null && identify "$1" 2>/dev/null
        which jp2a >/dev/null && jp2a --color "$1" 2>/dev/null ;;
    
    *image[[:space:]]data*)
        which identify >/dev/null && identify "$1" 2>/dev/null
        which jp2a >/dev/null && convert "$1" jpg:- 2>/dev/null | jp2a --color - 2>/dev/null ;;
    
    # Others
    # *)
    #   cat "$1" ;;
    
    esac
  • [^] # Re: Liste des autres outils

    Posté par  . En réponse au journal Passprotect - Gestionnaire de mot de passe. Évalué à 3.

    Sinon, le stockage local avec synchro me semble indispensable, non seulement pour un côté pratique (accès offline) mais aussi car c'est un moyen d'avoir des sauvegardes multiples plutôt que de devoir compter sur la sauvegarde sôté serveur.

    Ça ne te dispense pas de la sauvegarde non plus. Si jamais ta base keepass est en vrac (ça m'est arrivé une fois), il faudra que tu puisses revenir à une version antérieure, ce qui ne sera pas possible si la dernière version a été synchronisée partout (sauf si tu synchronises avec un gestionnaire de versions).

  • [^] # Re: Ne pas s'emballer

    Posté par  . En réponse au journal Purism lance un sondage pour la création d'un téléphone entièrement libre avec infra chiffrée. Évalué à 5.

    Avant, les téls Android étaient en mass-storage, mais le problème c'est que le filesystem ne supporte pas les accès concurrents, une partition système restait montée sur le téléphone pour le permettre de fonctionner, et une autre partition était montée sur le PC (et démontée du tél pendant ce temps).
    Maintenant, il n'y a plus qu'une partition, elle est exposée en MTP pour pouvoir être accédée à la fois par le PC et le tél. Donc ça fonctionne sous GNU/Linux si tu as un service MTP installé.

  • [^] # Re: Canal

    Posté par  . En réponse au journal [HS] Abonnés freebox révolution, attention à une possible tentative de vente "forcée".. Évalué à 8.

    Je fais tout de même une différence entre d'un côté changer le prix d'un pack auquel tu as volontairement souscrit, sans te redemander de confirmer tous les ans que tu acceptes les nouveaux tarifs, et de l'autre t'ajouter une option que tu n'as pas demandée.

  • [^] # Re: Si on savait déja...

    Posté par  . En réponse au journal "Logiciels préchargés : la CJUE se décrédibilise.". Évalué à 0.

    Je vais te vendre une voiture avec assurance comprise. Tu auras le choix de choisir ta propre assurance, du moment que tu payes celle que je t'ai imposé.
    Comme ça, je gagne de l'argent même si tu n'utilises pas mon assurance.

    Tu peux, j'achèterai juste pas ma voiture chez toi.

  • [^] # Re: L’automatisation, c’est bon, mangez-en

    Posté par  . En réponse au message Let's Encrypt en prod en entreprise. Évalué à 4.

    Si tu gères toi-même ta zone DNS, tu peux mettre en place des views pour que l'adresse renvoie l'IP LAN si tu la résoud depuis ton LAN et l'IP WAN si tu la résoud ailleurs.

    Après oui, ça serait plus simple si les box des FAI géraient l'hairpinning. D'autant que ce n'est pas évident de gérer sa zone quand on est autohébergé, vu que la bonne pratique est d'avoir 2 serveurs dans des AS différents.

  • [^] # Re: L’automatisation, c’est bon, mangez-en

    Posté par  . En réponse au message Let's Encrypt en prod en entreprise. Évalué à 3.

    Ou bien ton god master récupère la clé et le certificat sur Certbot Host, et la pousse sur les autres serveurs.

  • [^] # Re: L’automatisation, c’est bon, mangez-en

    Posté par  . En réponse au message Let's Encrypt en prod en entreprise. Évalué à 3.

    Et mon archi n’est pas compliquée, c’est le b.a-ba d’une infra correcte aujourd’hui (virtualisation, dual stack ipv4 (reverse proxy)-ipv6 (direct access), HA proxy…)

    Il manque juste un outil type ansible/puppet/chef/salt à ta liste.
    Sinon, tu peux simplement gérer le TLS sur haproxy, et laisser les backends en HTTP (avec une interface sur un VLAN privé).

  • [^] # Re: L’automatisation, c’est bon, mangez-en

    Posté par  . En réponse au message Let's Encrypt en prod en entreprise. Évalué à 3.

    Impossibilité de générer du certificat sur du HTTPS-only (il faut obligatoirement HTTP actif, un comble…)

    Chezmoiçamarche™ quand je redirige HTTP vers HTTPS.

  • [^] # Re: Heureux sont les ignorants

    Posté par  . En réponse au sondage Les serveurs des geeks : écolos ?. Évalué à 3.

    Pour le problème du stockage avec un Rpi, il doit bien avoir possibilité de monter sa Freebox (qui elle aussi est allumée H24) comme stockage non?

    Sur la v4, tu avais un FTP, tu pouvais donc le monter avec curlftps (fuse, donc faut pas avoir besoin de grosses perfs). Il y a peut-être mieux sur la v5 ?

    Après le problème de la freebox, même sans utiliser son disque, si tu ne la mets pas en bridge (ce qui imposerait un autre machine derrière), c'est qu'elle est totalement indispo si tu as un problème sur ta ligne. Du coup, ton LAN est alors par terre, tu peux pas accéder à tes mails déjà reçus sur ton serveur chez toi depuis un poste aussi chez toi parce que ta connexion internet a un problème.

  • [^] # Re: Ma solution

    Posté par  . En réponse au journal jus - Just Upload Stuff. Évalué à 3.

    J'ai découvert plus ou moins récemment qu'un daemon existait (de base dans debian depuis quelques années) qui fait exactemenet ce boulot, mais avec un côté bien plus configurable: incrond (http://inotify.aiken.cz/?section=incron&page=doc&lang=en)

    Ou plus simple dans ce cas : lsyncd (c'est dans debian aussi)