KrISS feed 8.7 - A simple and smart (or stupid) feed reader. By Tontof
  • Wednesday 04 May 2016 - 19:04

    Lorsqu’on bidouille de l’électronique et des bouts de codes pour inventer tous un tas de trucs qui ne servent à rien révolutionnent la planète, il est nécessaire de faire de la veille, de tester des versions, d’échanger des infos… il est alors pénible de s’apercevoir que ça devient très rapidement un bordel pas possible de sources, de bout de code, de liens vers des composants etc.. à gérer et à partager

    C’est à la lueur de ce constat que je me suis développé un petit outil nommé hackpoint.

    Hackpoint est une application PHP (gratuite évidemment) avec base sqlite mono-fichier (installation en un clic) permettant de stocker du code, des composants, des readme, des schémas et autres ressources.

    Il fonctionne sur la base de « Sketch » et de « Ressources« , un sketch étant un projet, une ressources étant un bout de code, un composant électronique, un schéma etc.. lié au sketch.

    Il est possible de rendre public en lecture seule un sketch, de l’intégrer à un blog/forum, d’exporter ses sketch, d’en importer directement depuis un autre hackpoint etc..etc…

    Le script est évidemment responsive et sécurisé par identifiant/mdp

    login

    Il est possible de créer un sketch de zéro, de forker un sketch existant sur un autre hackpoint (a partir du moment ou celui ci est rendu public) ou d’importer un sketch au format hackpoint (json compressé):

    index

    Un sketch se compose d’un panneau de ressources et d’une zone de travail permettant d’éditer/visualiser les ressources.

    Les images d’images peuvent se faire en drag & drop.

    schema

    Plusieurs types de ressources sont disponible (8 pour l’instant), chaque type de ressource étant mise en valeur en fonction de son contenu (syntax highlight pour les bout de code, drag & drop pour les images, tableau js pour les composants etc..)

    syntaxe

    L’ajout de composant peut se faire directement depuis un sketch ou dans l’onglet « composants », il est possible d’y lier une image, une marque, un prix moyen et une url de recherche pour ce composant.

    composants

    liaison

    Un sketch contient un panel d’options permettant de rendre public/privé le sketch, d’exporter le sketch en format json compressé, d’intégrer le sketch sur les blogs/forums, de télécharger l’intégralité des fichiers dans un dossier zippé ou encore d’envoyer des fichiers brut existants dans le sketch (encore un peu risqué ça ^^)

    options

    embeded

    Hackpoint est disponible en version alpha ICI, notez que je cherche activement un logo sympa si quelqu’un souhaite tenter sa chance :).

    Pour les adeptes du git, le dépôt se situe ici : https://github.com/ldleman/hackpoint

    Bien à vous.

    Idle

  • Monday 27 June 2016 - 11:04

    Ma boite recrute un développeur pour des missions en environnement LAMP (PHP/MYSQL).

    Le contrat consisterait dans un premier temps en un CDD et déboucherais sur un CDI si tout roule comme il faut.

    Les missions peuvent aller de la création de simples sites web (from scratch ou via wordpress) à des logiciel de gestion interne (logistique, erp, e-commerce, appli purement métier etc…), l’essentiel du travail étant fait en agence au sein du pole développement sous ma houlette éclairée :D

    De bonnes bases en web/PHP sont nécessaires, les connaissances C# / .NET sont un plus, pour le reste, seule la passion et le sérieux sont requis :).

    Si vous êtes intéressé et en région bordelaise, n’hésitez pas à postuler sur la section recrutement de Sys1, ou à me contacter directement sur ma boite mail idleman arobase idleman point fr.

  • Thursday 13 October 2016 - 21:12

    Quoi de plus barbant que de devoir incrémenter le numéro de version de votre programme à chaque nouveau build?

    Le snippet ci dessous vous permet la récupération du numéro de version de votre programme ainsi que du numéro de build sous la forme :

    V1.0 R1310160959

    V1.0 : Numéro de version noté dans l’assembly (version major et minor)
    R1310160959 : Numéro de révision auto généré en fonction de la date ddmmyy + le timestamp du dernier build

    Ainsi à chaque génération les 4 derniers chiffres au minimum changeront ce qui vous permet d’effectuer plusieurs build dans la même journée sans avoir à modifier manuellement quoique ce soit.

    var veVersion = Assembly.GetExecutingAssembly().GetName().Version;
    FileInfo fileInfo = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
    String strVersion =  " V" + version.Major + "." + version.Minor + " R" + fileInfo.LastWriteTime.ToString("ddMMyyHHmm");

     

  • Wednesday 19 October 2016 - 01:08

    Si vous avez déjà tenté de copier une valeur dans le press papier depuis le code de votre site web, vous avez vite du constater qu’il vous est nécessaire de passer
    par un flash dégueulasse pour être compatible cross browser ou de vous cantonner à IE clipboard.

    Fort heureusement les nouvelles API HTML 5 permettent de passer outre le flash (ou le clipboard API qui fonctionnouille de manière pas folichonne selon le navigateur) à l’aide de la
    fonction execCommand(‘copy’).

    Seuls inconvénients de cette commande :

    • Il semble nécessaire que la copy parte d’un événement utilisateur, cela implique qu’il faut forcement un click sur un élément vous ne pouvez pas lancer la copie direct
    • La technique est un peu tricky ça ne se fait pas en une commande
    • Sous IE, il semble que le site ouvre de temps a autre un prompt demandant l’autorisation à l’utilisateur de copier (il est quand même possible de cliquer sur oui pour récuperer la valeur dans le presse papier mais ça ajoute bêtement un click)

    Je vous ai bricolé une petite fonction jquery pour simplifier le point 2 :

    L’utilisation est la suivante :

    $('#monBouton').copy("IdleBlog is op!!");

    L’installation se fait en ajoutant la clause suivante dans votre javascript (nécessite Jquery)

    $.fn.extend({    
        copy : function (text) {
            return $(this).click(function () {
                var container = $('<span style="position:absolute;top:-1000px;"></span>').text(text);
                $('body').append(container);
                var range = document.createRange();
                var selection = window.getSelection();
                selection.removeAllRanges();
                range.selectNodeContents(container.get(0));
                selection.addRange(range);
                document.execCommand('copy');
                selection.removeAllRanges();
                container.remove();
            });
        }
    });

    Bien entendu vous pouvez utiliser execCommand sans encapsuler ça dans du jquery même si personnellement je pense que si vous n’utilisez pas du jquery vous ne méritez pas de vivre allez vous prendre un peu plus la tête pour rien.

    Bien à vous.

  • Monday 02 January 2017 - 19:13

    Bonne année 2017 bande de moules! Je vous souhaite plein de bonnes choses mais surtout beaucoup de blé, des putes et des black-jacks et une bonne santé ! (voilà pour commencer l’année en finesse!)

    Comme je suis un chic type et parce que ça fait longtemps qu’on s’est pas vu je vous partage une ptite fonction maison pour ne plus se prendre la tête avec la récupération / définition des paramètres de la barre d’adresse en javascript.

    Globalement la fonction permet de récupérer un paramètre avec

    var valeur = parameter('nomParametre');

    De définir un paramètre (ou de le modifier si il existe) avec

    parameter('nomParametre','valeurParametre');

    De supprimer un paramètre avec

    parameter('nomParametre',false);

    La fonction est dispo ci dessous pour javascript et Jquery, je la trouve un peu longue si vous trouvez le moyen de la raccourcir (la fonction, je parle de la fonction…) n’hésitez pas à poster un commentaire.

    Fonction Javascript natif

    function parameter(name,value) {
    	    var parameters = window.location.href.match(/[\\?&]([^&#]*)=([^&#]*)/g);
    	    var data = {};
    	    for (var key in parameters) {
    	        var couple = parameters[key].substring(1, parameters[key].length).split('=');
    	        data[couple[0]] = couple[1];
    	    }
    	    if (value == null) 
    	        return data[name] ? data[name] : null;
    	    if (value != false) data[name] = value;
    	    var url = '?';
    	    for (var key in data) {
    	        if (value == false && key == name) continue;
    	        url += key + '=' + data[key]+'&';
    	    }
    	    window.history.pushState('', document.title, url.substring(0, url.length-1));
    }

     

    Extension Jquery

    $.parameter = function (name,value) {
    	    var parameters = window.location.href.match(/[\\?&]([^&#]*)=([^&#]*)/g);
    	    var data = {};
    	    for (var key in parameters) {
    	        var couple = parameters[key].substring(1, parameters[key].length).split('=');
    	        data[couple[0]] = couple[1];
    	    }
    	    if (value == null) 
    	        return data[name] ? data[name] : null;
    	    if (value != false) data[name] = value;
    	    var url = '?';
    	    for (var key in data) {
    	        if (value == false && key == name) continue;
    	        url += key + '=' + data[key]+'&';
    	    }
    	    window.history.pushState('', document.title, url.substring(0, url.length-1));
    }

     

     

  • Tuesday 14 March 2017 - 11:16

    Une fois n’est pas coutume, je cherche un développeur pour des missions variées (essentiellement en environnement Apache / PHP/ MYSQL).

    Le contrat consisterait dans un premier temps en un CDD et déboucherais sur un CDI si tout roule comme il faut.

    Les missions peuvent aller de la création de simples sites web (from scratch ou via wordpress) à des logiciel de gestion interne (logistique, erp, e-commerce, appli purement métier etc…), l’essentiel du travail étant fait en agence au sein de mon pole développement.

    De bonnes bases en web/PHP sont nécessaires, les connaissances C# / .NET sont un plus, pour le reste, seule la passion et le sérieux sont requis :).

    Si vous êtes intéressé et en région bordelaise, n’hésitez pas à postuler sur la section recrutement de Sys1, ou à me contacter directement sur ma boite mail idleman arobase idleman point fr.

  • Thursday 01 June 2017 - 21:30

    Si vous êtes un développeur dans l’âme, vous avez déjà eu à faire à cette problématique de la petite idée de projet que vous avez codé en une aprèm puis que vous n’avez jamais eu l’envie le temps de retoucher.

    Plus le temps passe et plus le nombre d’idées qui végètent sans but dans votre placard à projet s’accumulent… A la lumière de ce constat, j’ai décidé d’ouvrir une petite rubrique pour partager mes fonds de tiroirs, plusieurs n’en sont qu’aux balbutiements, aussi je les partage sur ce blog avec quelques explications au cas ou quelqu’un souhaiterais les ré-exploiter.

    Mon fond de tiroir du jour est un petit fichier php unique permettant de générer une doc minimaliste au format HTML à partir d’un fichier javascript.

    Concrètement le PHP parse les commentaires au dessus de chaque fonction javascript et génère une page unique de consultation formatée (nom de la fonction, paramètres, descriptif en commentaire…).

    La mise en forme reste volontairement simpliste de manière a pouvoir faire un copier coller sur word ou autres éditeurs répandus n’acceptant pas le javascript/css poussé.

    Points forts :

    • Simple d’utilisation (simplement deux variables à configurer)
    • Template html de sortie facile a modifier
    • Mono fichier
    • Pas de prérequis autre que PHP
    • Pas besoin d’avoir respecté les normes de commentaires de documentation

    Points faibles:

    • Codé avec les pied
    • Doc générée ultra minimaliste
    • non conforme aux standard de commentaires de docs
    • Créé a la base pour une feuille de plugins jquery donc pas forcement utile/a adapter ailleurs
    • Les méthodes statiques sont uniquement définie pour les plugins jquery

    Le fichier PHP est ici pour ceux que ça intéresse :
    Télécharger le bousin

    Si vous souhaitez l’améliorer / y accéder via git, vous pouvez trouver le dépôt créé par Chouchen ici :

    https://github.com/Chouchen/jsdoc

  • Friday 23 June 2017 - 19:44

    Pour continuer dans la série de mes fonds de tiroirs, je vous propose aujourd’hui un simple fichier PHP unique vous permettant d’aller vérifier régulièrement que vos sites/applications web sont toujours en ligne et retournent bien une en-tête http 200 (=Tout vas bien), le cas échéant, vous pouvez envoyer un mail et monitorer tout ça sur une simple page de consultation.

    Le script est en PHP, il utilise une base de donnée sqlite auto généré lors du premier lancement.

    Il vous est possible d’ajouter autant de site web que vous le souhaitez et d’avertir 0 ou plusieurs contacts

    Lorsque le script détecté autre chose qu’une réponse 200, il met à jour l’espace de visualisation avec la couleur / code / erreur correspondante et envois un mail aux contacts spécifiés


    Afin que le script aille vérifier régulièrement les sites que vous aurez enregistré il vous faut mettre en place un CRON(linux) ou une tache planifiée (Windows) qui ira régulièrement exécuter l’adresse http://votreserveur/eyz.php?action=cron

    je vous conseille d’ajouter un htaccess pour limiter l’accès au script, je n’ai pas pris le temps de créer une authentification.

    Points forts: 

    • Le Script tient en un seul fichier
    • Toutes les erreurs http possibles sont décrites (liste descriptives interne)
    • Email multiples possible
    • Installation relativement simple puisque rien à faire
    • Modification « Inline »
    • Récupère pas mal d’infos des serveurs interrogés (temps de transaction, code HTTP, encodage retourné, type/taille de contenu disponible etc…)

    Points faibles

    • Pas d’authentification (il faut passer par un htaccess)
    • Prérequis php sqlite nécessaire
    • Script très peu testé/éprouvé
    • Nécessite la mise en place d’une tâche planifiée/CRON pour faire la vérification automatique

    Télécharger le bousin

  • Wednesday 28 June 2017 - 08:20

    Je continue sur la lancé des fonds de tiroirs : voici un script mono-fichier d’exemple de récupération des issues github d’un dépôt projet pour un certain tag.

    J’ai initialement créé ce script dans le but de report sur un site particulier les bonnes suggestion github émises par les contributeurs.

    Le script génère un petit sommaire des topics émis dans la catégories spécifiée et permet d’accéder au contenu du premier post du topic ciblé.

    Points forts

    • Pas d’installation/base de donnée nécessaires
    • Vous pouvez modifier le projet, l’utilisateur github ou l tag d’issue avec les trois premieres variables du fichier
    • Pas besoin de clé github

    Points faibles

    • Moche à vomir
    • Pas bien finit
    • Uniquement utile pour les dépôt gérés sur github

    Télécharger le bousin

  • Wednesday 01 November 2017 - 14:01

    Ce post est le vingt quatrième d’une liste de tutoriels sur le raspberry PI et l’arduino, cliquez ici pour accéder au sommaire ! :D

    Afin de pouvoir prendre des décisions en domotique, notamment grâce au gestionnaire de scénario de yana ou de toute autre centrale domotique, il nous faut des données, en quelque sorte « monitorer » nos pièces, exemple : baisser les stores si il fait trop chaud ou les ouvrir quand il ne fait pas assez clair dans la pièce, détecter les présence pour enclencher certaines actions etc….

    A cet effet je me suis mis sur un projet de sonde humidité,température,lumière,mouvement à bas coût et en WIFI histoire de pouvoir simplement récupérer les données de nos pièces.
    Une maison standard étant généralement composé de 5 pièces intéressantes à monitorer (je ne compte pas les toilettes ou le placard à balais :D) le coût de fabrication est d’environ 50/60€ pour toute la maison.

    J’ai nommé ce petit cube sensoriel PROPISE : PROtotype de PIeuvre SEnsitif

     

    Aperçu sur YANA

     

    Dans le cadre de ce tuto nous utiliseront le capteur avec YANA, mais je l’ai conçu pour qu’il soit simplement adaptable à n’importe quel système domotique.

    Nous allons voir ensemble comment produire ces petites bêtes mais avant, le traditionnel quart d’heure de honte en vidéo !

    .
    ..
    ….

    Ah  ! on m’annonce à l’oreillette q’un gros coup de flemme problème technique vous épargnera ce massacre :D (en plus je suis en peignoir, ça fais pas sérieux) ! Passons donc à la réalisation.

    Les Composants

    Habituellement nous utilisons comme « cerveau » du montage une carte arduino ou directement la puce atmega qui se trouve dessus (et qui peux fonctionner sans le reste de la carte avec quelques composants).

    La grosse nouveauté par rapport aux tutos précédent consiste à remplacer l’habituel arduino par  un composant nommé ESP8266.

    L’esp8266 étant une puce qui propose les mêmes fonctionnalités de l’Atméga/Arduino en mieux:

    • Plus de mémoire pour stocker le code et les données
    • Compatible avec plusieurs  langages de développement
    • Vendu avec sa plateforme de développement (qui contient une led rgb, un bouton poussoir et un capteur luminosité) pour le prix de la puce seule ou presque
    • Les shields (plug-in) associés ne coûtent rien si vous voulez facilement y ajouter des fonctionnalités
    • N’importe quel pin peux faire de l’I2C (protocole de communication sympa)

    …et surtout le wifi est intégrée à la puce, tout ceci pour un prix/taille équivalent à savoir environ 3€ avec les frais de port.

    Pompom de la pompomette : c’est compatible avec l’éditeur/syntaxe arduino !

    Voila la tronche de cette magnifique petite puce avec une plateforme supplémentaire ajouté (pour le même prix de 3€) l’ensemble se nomme esp8266 witty gizwits.

    La plateforme witty gizwits ajoute un bouton poussoir, une led RGB (rouge vert bleu), un capteur de luminosité et surtout une partie plateforme de programmation détachable histoire de pas se faire chier.

    Pour notre projet il ne restera qu’à y ajouter un capteur d’humidité qui fait également office de capteur de température (j’ai nommé le DHT11) et un capteur additionnel de mouvement infrarouge pour le fun.

    Il nous faudra bien sur une source d’alimentation, ici nous choisissons un simple câble micro USB et son chargeur, vous pouvez piquer celui de votre portable si ebay met trop longtemps à vous livrer :p

    Dernier petit composant : une résistance  de 4700 Ohm qui vas de paire avec le DHT11 pour ne pas abimer ce dernier.

    Composants

     

    Le Schéma

    Rien de bien compliqué sur le câblage, les deux composants à ajouter à l’esp nécessitent les mêmes branchements à savoir : un fil sur l’alimentation 5v, un fil sur la masse et un fil sur un pin de donnée de l’esp afin de communiquer avec lui.

    La résistance  de 4700 Ohm doit être connectée à la broche 2 du  le DHT11 et reliée ensuite à l’alimentation.

     

    Le Code arduino

    Voilà l’endroit ou ça se complique ! Afin de rendre le plus simple possible l’utilisation et l’installation de la sonde, j’ai du pisser pas mal de code. Je fais en sorte que lors du premier lancement de la sonde, celle ci se mette en hotspot, c’est à dire qu’elle vas émettre son propre réseau WIFI auquel vous pourrez vous connecter la première fois afin de la configurer.

    Une fois la sonde configurée avec les identifiants WIFI de votre réseau domestique, elle désactive son hotspot et se connecte en mode client a votre wifi, ce qui complique un peu la partie code mais qui vous évite d’avoir à toucher à la moindre ligne dans celui çi, tout est gérable via une interface web

    Pour balancer le code ci dessus sur l’esp 8266 witty que nous avons acheté, vous allez devoir faire au préalable cette petite config sur votre arduino IDE pour installer la bonne carte.

    Pour envoyer le code ça fonctionne code pour l’arduino, branchez un câble USB/micro USB entre votre PC et le port micro usb de la puce ESP (attention il y à deux port sur la puce, seul celui du bas fonctionne pour la programmation, celui du haut est la juste pour l’alimentation) vous pouvez ensuite envoyer le code avec le bouton téléverser de l’arduino Editor.

    Il vous faudra également installer la librairie pour lire les valeurs du dht11 (capteur humidité + température) pour pouvoir l’utiliser dans le soft. Pour cela téléchargez ce zip et décompressez le répertoire /libraries de votre installation arduino ide.

    Voir en taille réelle

    Le Code PHP

    Je ne veux pas être sectaire et imposer ma plateforme domotique pour tous les prototype que je créé (mais quand même si à cette étape de mes tutos vous n’utilisez toujours pas yana, vous avez raté votre vie !), aussi je vais vous donner deux exemples de récupération des valeurs de la sonde avec et sans l’utilisation de YANA parce que quand même suis un chic type ! :D

    Avec Yana

    Activez le plugin propise dans la partie réglage et rendez vous coté setting du plugin, vous pouvez ajouter une ou plusieurs sondes (Nommée ici Poolp parce que j’ai changé 20 fois de nom depuis sa conception).

    Entrez les infos de base de la sonde, cliquez sur enregistrer et suivez le guide d’installation sur la ligne qui apparait.

    Une fois la sonde configurée en fonction des instructions du guide vous pouvez vous rendre sur la dashboard et y ajouter le widget propise.

    Je n’ai pas encore relié le gestionnaire de scénario à ce module il s’agit pour le moment d’un simple affichage, j’y travaille sur la version suivante de yana.

    Sans Yana

    Voilà un ptit script fait par dessus la jambe pour récupérer les données envoyées par PROPISE et les stocker à la suite dans un fichier texte, vous pouvez le modifier à votre guise.
    Voir en taille réelle

    L’Utilisation

    Appuyez sur le bouton de reset avant de brancher la sonde, celle ci devrait alors se mettre en hotspot, la lumière RGB s’allumera en bleu foncé si tout vas bien.
    Vous pourrez alors vous connecter à sa wifi (nommée PROPISE-XX) avec le mot de passe « bananeflambee » (oui, je sais…) puis accéder à son interface en tapant dans votre navigateur web l’adresse http://192.168.4.1

    Il vous reste ensuite à remplir les identifiant WIFI de votre réseau
    Dans le dernier champs, mettre le lien vers le script PHP (ou autre) à qui vous souhaitez que la sonde envois les données, notez que les valeurs entre « {{}} » seront remplacé par les données en questions

    {{LIGHT}} : sera remplacé par la lumière de la pièce (en pourcentage)
    {{HUMIDITY}} : sera remplacé par l’humidité de la pièce (en pourcentage)
    {{TEMPERATURE}} : sera remplacé par la température de la pièce (en degré celcius)
    {{MOUVMENT}} : sera remplacé par le mouvement de la pièce dans les dernières secondes ( 1 = mouvement, 0= personne)

    ex d’url: http://mon.server/monscript.php?light={{LIGHT}}&humidity={{HUMIDITY}}&temperature={{TEMPERATURE}}&mouvment={{MOUVMENT}}

    Une fois que tout est enregistré, vous pouvez redémarrer la sonde (débranchez puis rebranchez), elle devrait alors s’allumer en vert (indiquant qu’elle a bien enregistré les identifiants) puis en blanc clignotant si elle a réussi à se connecter à votre wifi et qu’elle envois les données.

    A chaque clignotement les données sont envoyées

    Le boitier

    J’ai fait imprimer mon boitier, si vous n’avez pas d’imprimante 3d près de chez vous je vous conseille de la construire en LEGO (si vous êtes riche) ou d’acheter une boite de dérivation électrique et de la percer aux bon endroits (si comme moi vous êtes un prolo), ou encore d’utiliser des boites de denrées alimentaires, tant que vous restez sur des matières non inflammables :D.

    Pour ceux qui peuvent faire imprimer, je vous met ci dessous le fichier 3d en .STL pour l’impression et le fichier sketchup .SKP si vous voulez l’améliorer.

    Voir en taille réelle

    Les améliorations

    L’amélioration majeure à apporter a ce circuit ne « mange pas de pain » (j’adore cette expression) il s’agit de remplacer le dht11 par un dht22 qui fonctionne de la même façon et fait quelques euros de plus mais qui est plus précis sur les valeurs retournées. Modifier ce composant nécessite par contre de légères modifications dans le code.

    Autre amélioration intéressante : designer le boitier pour qu’il se fixe dans un angle haut de pièce, ça rendrait le capteur de mouvement plus efficace étant donné sa zone de couverture.

    Dernier point : utiliser une carte ethernet POE (Power Over ethernet, c’est le câble réseau qui alimente le circuit pas besoin d’une alim en plus) en lieu et place du wifi, ça permettrait de se passer des ondes (moins fiables, moins sécurisées, moins bonnes pour la santé que du bon vieux filaire).

    La prochaine fois nous verrons comment intégrer un peu d’empreintes digitales à notre bonne vielle domotique

    Bien à vous,

    Idle