KrISS feed 8.7 - A simple and smart (or stupid) feed reader. By Tontof
  • Friday 01 August 2014 - 13:04

    En cette période de vacances, nous sommes nombreux à nous connecter depuis nos terminaux ( smartphone, tablette .. ) pour surfer, parfois travailler , dépanner .
    Il est vrai que ces appareils sont formidables sur ce point ( le coté nomade ). Mais le revers de la médaille, c'est la sécurité !
    Lorsque vous vous connectez à une borne wifi ( gratuite ou non ), qui vous assure que votre navigation n'est pas épiée ?
    Voilà pour le coté sécurité, mais il peut être aussi utile de se connecter à son réseau local depuis l'extérieur.
    Nous allons pour cela nous connecter via un serveur proxy de type socks.
    Maintenant peu importe ce qui motive l'utilisation d'une telle connexion, voyons comment faire pour nous y connecter depuis un client Android non chrooté

    Les apps à installer

    1. juiceSSH
    2. Firefox

    JuiceSSH est un client SSH qui fonctionne vraiment bien, gratuit pour les fonctionnalités de base, mais payant pour faire une redirection de port. Vous allez donc devoir l'acheter, mais l'investissement en vaut la peine.
    D'autres ont utilisé ConnectBOT qui lui est à 100% gratuit, mais de mon coté il plantait régulièrement je n'ai donc pas insisté.

    Configuration de juiceSSH

    Nous allons commencer par créer une connexion SSH de base, le tout en image :

    2014_08_01_12.06.59.png

    2014_08_01_12.08.03.png

    • Nickname : nom de la connexion
    • Type : SSH
    • Adresse : Adresse du serveur SSH
    • Identity : Login pour se connecter au serveur SSH
    • Port : port à utiliser pour se connecter au serveur SSH

    Configuration de la redirection de port

    Allez dans l'onglet PORT FORWARD, et nous allons utiliser la connexion SSH précédemment crée, comme ceci.

    2014_08_01_12.08.40.png

    Il est ensuite possible de mettre une icône sur votre page principale, pour se connecter plus rapidement au serveur proxy SOCKS

    2014_08_01_12.08.57.png

    Configuration de Firefox

    Pour utiliser le serveur proxy ( après s'y être connecté ), dans firefox, ouvrez un nouvel onglet et entrez dans la barre d'adresse :

    about:config


    Voici les 5 paramètres à configurer comme ceci

    2014_08_01_12.05.51.png 2014_08_01_12.06.11.png

    Tests

    Voilà maintenant vous pouvez tester le bon fonctionnement en entrant l'url suivante : http://www.whatismyip.com/, qui devrait vous afficher l'ip du serveur SSH à partir duquel vos requêtes sont envoyés .

    Bonnes vacances .

  • Saturday 02 August 2014 - 02:00
    Depuis la publication de ce post, la motorisation de ce site a changé pour Hugo, aussi les liens d’exemples sont dépréciés. Les instructions déposées restent à vérifier. Inspiré pour reprendre l’étude de l’IndieMark sur cette instance Jekyll. Une inspiration particulièrement dopée par l’arrivée sur IndieWeb de Pierre Ozoux. Et par le dépannage webmention reçu de Michiel, notre ami sauveur du web passé à Paris mercredi dernier pour le premier meetup de décentralisation du net chez Mozilla.
  • Saturday 02 August 2014 - 20:56
    Bonjour,

    J'ai eu peu de temps à consacrer à mon blog ces derniers temps, mais voici un nouvel article publié avec du retard.

    Les changements d'adresse IP avec Orange, m'ont conduit a mettre en place un script permettant de fonctionner avec le service Dynhost de OVH charger de gérer de manière dynamique l'adresse IP associée à un nom de domaine.

    Je me suis basé sur les liens suivants:

    • http://guide.ovh.com/DynDns
    • http://www.tropfacile.net/doku.php/raspberry-pi/comment-installer-un-serveur-mail
    • http://dev.kprod.net/?q=dns-dynamique-avec-dynhost-ovh
    Ainsi que les conseils d'un lecteur du blog que je remercie


    Je ne vais pas faire un tutoriel de plus, mais voici les commandes que j'ai utilisé pour installer ce script:
    sudo apt-get update
    sudo apt-get install dnsutils
    wget http://www.bozorokus.net/DynHost.tgz
    tar xvzf DynHost.tgz
    cd DynHost/

    J'ai ensuite modifié le script d'origine pour qu'il lise la nouvelle adresse IP attribuée par Orange dans l'interface de la Livebox.

    J'ai aussi ajouté un contrôles pour vérifier que l'IP soit bien enregistrée dans les DNS.

    Voici ma version du script:

    #! /bin/sh

    IFACE=eth0
    HOST=error418.net
    LOGIN=error418.net-dyn
    PASSWORD=418_dyn
    OPTIONS=""

    getip() {
          NEWIP=`curl 192.168.0.1 | awk '/WAN/{getline;split($2,Addr,">");split(Addr[2],AddIp,"<");print "\n\n"AddIp[1]"\n\n"}'`

    CURIP=`host error418.net | awk '/address/ {print $NF}'`


           OLDIP=`cat ./old.ip`
            }

    echo ---------------------------------- >> ./dynhost.log
    echo `date` >> ./dynhost.log 
    echo Démarrage de DynHost >> ./dynhost.log
    getip
            echo -n "New IP: " >> ./dynhost.log
            echo $NEWIP >> ./dynhost.log

            echo -n "Current IP: " >> ./dynhost.log
            echo $CURIP >> ./dynhost.log

    echo -n "Old IP: " >> ./dynhost.log
            echo $OLDIP >> ./dynhost.log

    if [ "$NEWIP" ]; then
    if [ $OLDIP != $NEWIP ] || [ $CURIP != $NEWIP ]; then
    echo "Mise à jour!" >> ./dynhost.log
         if [ "$OPTIONS" =  "" ]; then 
              OPTIONS="-a $NEWIP" 
             fi
        python /home/pi/DynHost/ipcheck.py $OPTIONS $LOGIN $PASSWORD $HOST >> ./dynhost.log
        echo -n "$NEWIP" > ./old.ip
         else
              echo IP Identique! Pas de mise à jour. >> ./dynhost.log
         fi
     else
         echo Panique à bord: Aucune IP Disponible!! >> ./dynhost.log
     fi

    Enfin, une petite tache planifiée pour completer le tout:

    */10 * * * * /home/pi/DynHost/dynhost >> /home/pi/dynhostcrontab.log 2>&1

  • Sunday 03 August 2014 - 02:00
    Les collections dans Jekyll 2.0 Tout dans votre site Jekyll n’est pas un post ou une page. Vous voudrez peut-être documenter différentes méthodes dans votre projet OpenSource, l’annuaire des membres d’une équipe ou une liste d’albums de musique. Les collections vous permettent de définir un nouveau type de document qui se comporte comme le font normalement les Pages ou les Posts, mais elles disposent aussi de leurs propres propriétés uniques et d’un espace-nom.
  • Tuesday 05 August 2014 - 02:00
    Humeur à 100% avec Algie Vasculaire de la Face. Même si ça pique toujours aussi fort… (#douleur) Wikipedia raconte que les Américains la surnomment cyniquement the Boss Headache (le mal de tête du patron) … Des références sont demandées ! L’algie vasculaire de la face (AVF) est une forme aigüe de céphalée essentielle. Il s’agit d’une maladie neurologique rare qui touche à la fois les nerfs et les vaisseaux.
  • Wednesday 20 August 2014 - 09:24
    Je confirme que si ce tunnel est sympa, les piétons n'ont pas assez de place et empiètent sur les pistes cyclables régulièrement (pas que je leur en veuille, notez). Et on n'y voit vraiment que dalle si on n'a pas de lampe à vélo. Et on n'entend encore moins les usagers à cause de la zic d'ambiance qui tourne en permanence.

    via shaarli-river
    (Permalink)
  • Monday 01 September 2014 - 08:33

    Il y a quelques jours, Johannes Shlüter a donné une conférence à propos du fonctionnement de phpng.

    Pour ceux qui l’ignorerait, Johannes a été le « release master » de la version 5.3 du langage, et phpng sera le remplaçant du Zend Engine 2 dans ce qui sera PHP 7, qui correspond à la prochaine version majeure du système et qui prendra donc la suite de PHP 5.

    Vous avez bien tout suivi ? Si ce n’est pas le cas, relisez le paragraphe précédent en faisant abstraction de vos connaissances en arithmétique élémentaire…

    Le mariage de PHP 7 et de phpng devrait être consommé dans approximativement un an, d’après Zeev Suraski.

    Grâce à phpng, PHP 7 devrait donc apporter un gain de performance très significatif, comme d’habitude avec chaque nouvelle version du langage…

    Or, cette date de livraison de PHP 7 a plus ou moins été décidée arbitrairement par les promoteurs de phpng, et d’autres développeurs, à commencer par ceux qui mettent quotidiennement les mains dans le code du langage, doute très fortement qu’un tel délai soit tenable.

    Et comme à ma connaissance, la feuille de route fonctionnelle relative à PHP 7 est inexistante même si beaucoup ont des idées sur ce qui devrait être son contenu, je ne peux que partager leur opinion, car je vois mal comment une date de livraison peut avoir été définie alors que la masse de travail à réaliser est inconnue.

    Comme le disent si bien deux comiques français, il y a en qui ont essayé, et ils ont eu des problèmes.

    De plus, phpng est apparemment lui-même loin d’être finalisé, puisqu’il semble manquer de cohérence et que sa documentation est succincte pour un code de cette complexité.

    There is almost no documentation, the APIs are not clean or inconsistent […] but having two separate zpp, same area's functions mixing use of zend_char and char (creating hard to catch bugs, not always catch-able at compile time f.e.)

    Et enfin, même si ce délai de livraison était réaliste, il faudrait à minima que les développeurs du langage produisent une version 5.7 du langage pour respecter le rythme prévu.

    Durant un an à minima, si tout se passe bien, les développeurs de PHP devront donc travailler sur deux versions divergentes du code techniquement parlant puisque l’une utilisera la dernière version du Zend Engine 2 et l’autre phpng.

    Et de plus, phpng évoluera certainement pendant ce temps de son côté, car même s’il a énormément progressé depuis qu’il a été présenté par Zend, il subira encore des évolutions significatives, ne serait-ce que pour rester compatible avec les modifications apportées au Zend Engine 2.

    Or, le fiasco de PHP 6 a, entre autres choses, démontré que la gestion de deux branches très différentes du code du langage est un exercice plus que périlleux pour les développeurs.

    J’ai donc l’impression que contrairement à ce que je pensais, ces derniers n’ont pas vraiment tiré les leçons de l’échec du développement de PHP 6, et que malheureusement l’histoire va une nouvelle fois se répéter, d'autant que les luttes d'influences au sein d'internals@ ont été plus qu'intense à ce sujet.

    Et même si je peux comprendre la pression et le danger économique que représente le développement de HHVM pour Zend, j’ai à contrario vraiment du mal à comprendre que la plupart des développeurs du langage ne voient pas le danger que représente cette stratégie.

    Donc, lorsque j’apprends que Johannes donne des conférences à propos de phpng, un produit non finalisé qui ne sera intégré au sein du langage que probablement dans plusieurs années, je ne peux m’empêcher de rire un peu jaune, et j’espère que cela intéressera suffisamment les développeurs présents à sa conférence pour qu’ils décident de participer au mariage de phpng avec PHP 7 pour que je n’ai pas à faire dans trois ans sa nécrologie.

  • Tuesday 09 September 2014 - 13:28

    Si les livres relatifs à l’agilité du point de vue du développeur sont légion, ceux l’abordant du point de vue fonctionnel sont assez rares.

    Or, l’agilité mise avant tout sur la bonne collaboration de toutes les parties prenantes d’un projet pour parvenir à sa concrétisation.

    Il est donc primordial que chaque intervenant dispose d’une vision claire des concepts agiles et sache les exploiter au mieux dans son domaine de compétence.

    Le livre de Thierry Cros intitulé Spécifiez agile a donc éveillé très fortement ma curiosité lorsque j’ai découvert son existence, à tel point que je me le suis offert en me disant que cela me permettrait peut être de mieux faire passer l’agilité auprès des experts fonctionnels avec lesquels je tentais de travailler à l’époque.

    Voici donc ma critique de ce livre qui, je l’espère, permettra à Thierry d’améliorer son ouvrage.

    Il commence d’ailleurs son livre en nous expliquant la façon dont il a été conçu, c’est-à-dire de manière agile, et donc en nous encourageant à lui fournir un retour afin qu’il puisse l’améliorer.

    L’existence de ce billet implique que cette explication atteint parfaitement son objectif, en plus d’humaniser l’ouvrage puisque Thierry nous explique en prime ce qui l’a poussé à se lancer dans l’écriture de ce livre et le chemin qu’il a suivi pour parvenir à sa publication.

    Cette humanisation se poursuit d’ailleurs dans les deux chapitres suivants, Thierry nous y expliquant dans le premier le rôle du « product owner » tandis qu’il pose les bases d’une mise en application de l’agilité en terme fonctionnel dans le cadre d’un cas pratique théorique.

    Mais malheureusement, son discours devient beaucoup plus académique dans les chapitres suivants, et je le regrette.

    En effet, je pense que la transmission de son message aurait été beaucoup plus efficace s’il s’était servi de cette base de départ pour illustrer au moins une partie des concepts présentés par la suite de son livre, sinon la totalité.

    Ainsi, la digestion de cette masse d’information serait certainement plus facile et accessoirement favoriserait potentiellement sa mémorisation en offrant des repères mnémoniques.

    Cela ne veut cependant pas dire que les chapitres suivants sont pour autant inintéressants, bien au contraire.

    Le vocabulaire agile relatif à l’aspect fonctionnel du développement d’un logiciel est parfaitement expliqué, associé à une dose pertinente de concept psychologique relatif à la communication dans le cadre d’un groupe.

    Malheureusement, les références illustrant ces concepts sont bien souvent succinctes, mais je pense avoir été handicapé à ce sujet par le fait que je n’utilisais pas la version numérique du livre qui doit, contrairement à la version papier, contenir des liens vers les articles correspondants.

    Les chapitres relatifs à la « valeur métier » ainsi qu’à la « vision » du produit sont ceux qui m’ont le plus interpellé, et pas uniquement parce que dans mon contexte de l’époque, ces deux concepts étaient complètement ignorés.

    En effet, d’après ce que j’ai pu constater au cours de ma carrière ou des discussions que j’ai pu avoir à ce sujet, les développeurs savent bien souvent plus ou moins approximativement ce qu’ils doivent faire, mais ne savent en général pas pourquoi ils doivent le faire. En clair, ils n’ont que trop rarement connaissance de l’objectif que leur travail est censé permettre d’atteindre à un niveau plus global (bien souvent parce que le client n’en a lui même qu’une vague idée, mais c’est un autre débat).

    Or, je suis persuadé qu’un développeur doit savoir à la fois ce qu’il doit faire et pourquoi il doit le faire afin de pouvoir trouver dans la combinaison de ces deux informations la motivation pour sortir de sa zone de confort, se surpasser, évoluer et ainsi ne plus être juste un « pisseur de code » bête et méchant.

    Ainsi, le client y trouve son compte, car son produit répond mieux à ses besoins et le développeur gagne en compétence et en estime de soi, car il sait à la fois à quoi et comment il a contribué.

    Et enfin, la vision peut permettre aux développeurs de résoudre leur problème en plus d’être pour eux un redoutable outil d’aide à la décision.

    Ainsi, si la vision du produit met en avant la performance, ils choisiront les technologies qu’ils mettront en œuvre en conséquence, et lorsqu’un consensus ne peut être atteint au sein des développeurs sur un point ou un autre, se référer à la vision peut permettre de dénouer la situation en remettant les choses en perspective par rapport à l’objectif à atteindre.

    Il est donc important que les fonctionnels et les développeurs disposent d’une vision commune du produit correspondant à celle du client, et Thierry insiste donc à juste titre sur ces deux notions bien souvent trop occultées durant la vie d’un projet.

    Et pour le coup, j’aurais trouvé très pertinent d’illustrer à minima ce chapitre relatif à la vision à l’aide du cas pratique mis en place dans le second chapitre.

    J’ai également aimé que Thierry évoque dans son ouvrage la problématique de la prise de décision et présente une méthode permettant d’y parvenir en y impliquant tous ceux devant y prendre part, tout en n’occultant pas le fait que cela n’est pas simple pour autant, tant s’en faut.

    Au passage, pour ceux que la problématique de la prise de décision intéresse, la conférence d’Olivier Sibony à ce sujet est remarquable.

    L’un dans l’autre, j’ai donc trouvé mon compte en lisant le livre de Thierry, et je ne peux donc qu’en recommander la lecture aux développeurs ou aux fonctionnels qui veulent améliorer leur façon de travailler avec « celui d’en face », qu’il soit développeur ou fonctionnel, ne serait-ce que parce qu’il permet à un développeur de mieux comprendre les contraintes et la façon de travailler d’un fonctionnel dans un tel contexte, et réciproquement.

    En effet, si la forme du livre serait à mon avis beaucoup plus agréable si l’ambiance des deux premiers chapitres était propagée aux autres, reste que son fond est plus qu’intéressant puisqu’il propose des solutions et des pistes à suivre pour résoudre des problèmes que l’on rencontre communément lorsque l’on développe un logiciel.

    Alors, à 23 € ou à partir de 7 € au format numérique, faites-vous une faveur, offrez ou offrez-vous Spécifiez agile  (et non, ce billet n'est pas sponsorisé) !

  • Friday 12 September 2014 - 13:38
    "Et d'après mon ophtalmo, le Flou, c'est quand même plus ou moins l'ennemi du Net"
    Mouarf ! :-D
    (Permalink)
  • Monday 15 September 2014 - 11:25

    Après une belle maj de votre système, vous avez, au moment de vous remettre au travail, un sympathique message du genre

    ImportError: No module named datetime
    

    detatime !! Cette lib fait pourtant partie du standard de python ! Le fait est que lorsque l'on met à jour python, les liens utilisés à la création du venv sont hs !

    Ici c'est la lib datetime qui a été remonté, mais ça peu être n'importe laquelle ..

    Solution

    Il ne m'a pas fallu longtemps pour résoudre ce problème tout bête, ( beaucoup de cas similaires sur le net ).

    Réinitialiser le virtualenv

    Par exemple avec mon venv nommé foo

    virtualenv /home/cdsl/.virtualenvs/foo
    New python executable in /home/foo/.virtualenvs/creasoft3/bin/python
    Installing setuptools............done.
    Installing pip...............done.
    

    Et voilà ..