Après un article publié il y a un peu de temps où je donne des combines pour tout vendre sur Leboncoin, je vous propose maintenant les meilleurs conseils pour bien vendre et acheter sur internet de manière générale. Dans la vente, rien n’est compliqué mais certaines précautions sont à prendre pour éviter la catastrophe. Voici donc mes conseils pour tout vendre et acheter en toute sérénité. C’est parti! 😉 1. Postez votre annonce au bon moment C’est la base! Pour trouver un acquéreur, il est impératif de bien choisir l’heure de publication de votre annonce peu importe ce que vous vendez. Sur Leboncoin par exemple, près de un million de nouvelles annonces sont publiées quotidiennement. Vous imaginez bien que si votre annonce est noyée dans la masse, elle sera invisible ou presque. De manière générale, les internautes arrivent en masse sur internet à l’heure de la pause du midi et en fin de journée, entre 18h et 22h. Je vous conseille donc de publier vos annonces à ces horaires. Si vous publiez votre annonce à 2h du matin, qui la verra? Très peu de monde finalement… Soyez intelligent et publiez aux heures où le trafic sur internet est maximal. Sachez que sur Leboncoin, il peut y avoir parfois un petit délai entre le dépôt de l’annonce et sa publication. Le mot d’ordre Anticipation! 😉 2. Ne faites pas confiance aveuglement Des arnaqueurs professionnels sur le net Des escrocs il y en a partout notamment sur Leboncoin d’ailleurs j’ai publié un article où je dénonce les arnaques les plus fréquentes pour que vous ne vous fassiez pas avoir. Alors sur Leboncoin ou sur un autre site, vérifiez le profil des acheteurs ou vendeurs. Si un vendeur ou un acheteur a des évaluations plus que négatives et que son profil semble douteux, fuyez tout simplement. Comme je le dis souvent, lorsqu’on vend ou achète un objet d’une certaine valeur, il est impératif d’avoir un contact de vive voix pour savoir à qui on a affaire… Mais avoir un contact de vive voix n’est pas suffisant pour faire confiance… Soyez donc très prudent! 😉 3. Ne recevez pas chez vous Des personnes mal intentionnées, des cambrioleurs, des voleurs, des escrocs… peuvent se montrer intéressés par ce que vous vendez uniquement dans le but de venir chez vous et voir comment vous vivez et surtout ce que vous avez à la maison. C’est ainsi que procèdent les cambrioleurs qui ne choisissent pas leur cible au hasard. Ne recevez donc personne chez vous dans la mesure du possible. Pour des petits objets facilement transportables, prenez rendez-vous dans un endroit neutre comme un bar par exemple. Si vous décidez de recevoir, prenez quelques précautions en ne laissant jamais l’acquéreur ou le vendeur seul dans une pièce sans surveillance. Si cette personne est malhonnête, elle peut faire main basse sur vos effets personnels… Encore une fois, restez prudent! 😉 4. Ne soyez pas dupe Une jolie BMW Pour vous attirer comme des pigeons et vous voler, les escrocs usent parfois de techniques simples comme celle des prix alléchants. Parfois, pour une poignée d’euros, vous pourrez acheter des objets dont le vrai prix est exhorbitant… Vous avez déjà vu une BMW de 2022 à 3500€? Mon exemple est grossier et dites vous bien que toutes les choses ont un prix! Et si on vous propose une telle BMW à ce prix, ce sera une grosse arnaque pour vous pièger. Personnellement, je n’imagine pas vendre une BMW qui vaut 80000€ à 3500€… Méfiez-vous donc si des articles sont à vendre à des prix dérisoires. Je reconnais néanmoins que parfois des prix très bas ne sont pas forcément des arnaques. A vous de flairer le coup foireux! 😉 5. Préférez le paiement sécurisé Sur Leboncoin, lorsque vous réalisez une vente, vous avez la possibilité de sécuriser la transaction dans la mesure où l’acheteur paye le montant de son achat plus les frais de port à Leboncoin qui vous reverse ensuite votre argent. C’est idéal pour ne pas se faire avoir par les mauvais payeurs qui vous proposeront un chèque sans provision, un mandat cash, un mandat Western Union, ou encore de l’espèce. J’utilise le paiement sécurisé en ligne pour Leboncoin mais pas seulement et je peux vous dire que question tranquilité, il n’y a pas mieux. 6. Achetez hors-saison Vous savez bien qu’en pleine période certains objets se vendront plus cher qu’à un autre moment de l’année. Je vais prendre deux exemples. Le premier est celui d’une voiture cabriolet. Évidemment en été, la demande est plus forte et les voitures décapotables se vendent bien plus cher qu’en hiver. C’est donc en hiver qu’il faut acheter ce type de véhicule lorsque la demande est nulle. Le deuxième exemple est celui des vêtements de ski. A l’approche de l’hiver, les prix des combinaisons, des skis et autres accessoires explosent. Si vous passez à l’achat en été, moment où personne n’achète ce genre d’objets, vous paierez bien moins cher. Tout n’est qu’une question de bon sens! 😉 7. Dépensez un peu pour gagner plus Tiens, ça me fait penser au slogan de Nicolas Sarkozy…. Plus sérieusement, sur Leboncoin vous pouvez payer pour des options bien utiles pour tout vendeur. N’hésitez pas à dépenser quelques euros notamment pour insérer plusieurs photos supplémentaires, pour bénéficier du logo urgent, pour faire remonter vos annonces en tête de liste ou encore pour les mettre à la une. Toutes ces options payantes sont d’une efficacité redoutable et permettent d’optimiser votre visibilité et ainsi de vendre plus rapidement mais aussi plus cher! Pour les objets d’une valeur faible ce n’est pas intéressant mais pour des choses plus coûteuses, c’est un investissement très rentable. Sans trop entrer dans les détails, en 2020 nous avons décidé de vendre notre maison sur Leboncoin. Nous n’avons pas hésité à faire une annonce de qualité avec toutes les options disponibles et avons dépensé une centaine d’euros. Oui, je sais que c’est beaucoup mais ces options nous ont permis de vendre notre logement en 48h seulement. 8. Restez sur la messagerie du site Vous verrez que des arnaqueurs tenteront de vous faire sortir de la messagerie sécurisée de Leboncoin pour vous proposer de discuter par mail ou texto pour plus de simplicité. Dites non tout simplement. Je ne vois pas l’intérêt de discuter sur d’autres supports et de prendre des risques sauf cas exceptionnels où c’est à votre initiative. La messagerie sécurisée est faite pour vous protéger alors utilisez là . 9. Ne fournissez pas de documents sensibles Méfiez-vous des arnaques sur internet! Pour effectuer un virement, des voleurs vous diront qu’ils ont besoin de la copie de votre carte d’identité, de votre passeport, de votre RIB, d’un justificatif de domicile, ou des numéros de votre CB. Ne soyez pas crédules et n’envoyez aucun document de ce genre! Ces voleurs se serviront des documents envoyés ensuite pour usurper votre identité, pour contracter des crédits… Bref, n’envoyez aucun document et si le vendeur ou l’acheteur se montre insistant et menaçant, mettez fin à la discussion, ignorez le et alertez le site qui suspendra son compte. Vous savez donc tout et avez les cartes en mains pour vendre ou acheter tout ce que vous voulez sur internet. Je l’ai dit plusieurs fois et je le répète encore, faites preuve de prudence car nous ne savons jamais qui est derrière l’écran… 😉 Partagez cet article avec vos amis sur Facebook Vous avez aimé ces conseils pour acheter et vendre sur internet? Peut-être que vos amis aimeront! Dans ce cas, merci de partager cet article avec vos amis sur Facebook en cliquant sur ce lien de partage. Un grand merci pour vos partages qui aident beaucoup 😉Situédans un quartier calme et résidentiel, au coeur d'une région très porteuse du canton de Fribourg, ce bien saura vous séduire par sa typologie et ses finitions de qualité. Elle possède tout le charme dont vous rêvez pour vous et votre famille. Érigé en 2016, cette belle maison individuelle récemment construite, est dans un état neuf et vous offre un confort absolu dans Quelle est votre position au sein de l’économie digitale ? Où en sont vos partenaires ? Nous partageons ensemble quelques conseils et suggestions pour créer votre propre chemin vers l’Internet des Objets. Par Wolfgang Möller, Directeur Industries & IoT chez NTT DATA Business Solutions AG Il était impensable il y a 10 ans que la compatibilité avec un smartphone soit un critère important dans le processus d’achat d’une voiture. Aujourd’hui, ce genre de détail joue un rôle déterminant dans le succès ou l’échec d’un modèle économique. Il s’agit donc d’une préoccupation majeure pour les entreprises souhaitant déterminer leur stratégie d’IoT. Définissez des objectifs clairs Au-delà de votre marché et de la concurrence, vous devez être en mesure de répondre à deux questions sans réfléchir. Tout d’abord, que souhaitez-vous accomplir à travers votre transformation numérique ? Vous souhaitez peut-être améliorer votre service client, réduire les coûts, ou encore lancer un nouveau produit qui créerait une rupture technologique. Sans objectif clair, un investissement dans l’IoT serait vain, ou, au mieux, produirait un résultat ponctuel, mais sans bénéfice à long terme. Ensuite, souhaitez-vous optimiser vos processus internes, c’est-à -dire adapter vos processus de fabrication dans le cadre d’un projet Industrie et intégrer des objets intelligents dans votre chaîne logistique et vos systèmes de gestion ? Ou bien préférez-vous transformer vos relations avec vos partenaires en utilisant l’Internet des Objets pour changer la manière dont vous collaborez ? Ces deux stratégies peuvent être payantes et dépendent de vos objectifs à long terme, des forces et faiblesses de votre entreprise, du marché et de la conjoncture actuelle. Créez de nouveaux réseaux et partenariats Personnellement, je pense qu’il est nécessaire de bâtir des partenariats pour créer de nouveaux modèles économiques, bien que ceci soit évidemment plus complexe. Imaginez une plateforme pétrolière offshore où chaque pompe est équipée d’un ensemble de capteurs qui transmettent des données en continu. Rien de révolutionnaire », me direz-vous. Mais ceci devient intéressant lorsque toutes les parties prenantes peuvent utiliser les données, et pas seulement l’exploitant de la plateforme. Partons du principe que les données des capteurs pour toutes les pompes et éléments de construction sont acheminées vers une plateforme centrale unique, également mise à la disposition des fabricants et de l’entreprise en charge de la maintenance. Imaginons également que le fabricant de ces pompes puisse utiliser non seulement les données issues de cette plateforme pétrolière spécifique, mais également celles de tous les endroits où ses produits sont en activité. Dans ce cas, le fabricant peut identifier si une installation fonctionne de manière optimale et partager cette information avec l’exploitant de la plateforme. Ainsi, tout le monde bénéficie de cet échange d’information, y compris les techniciens qui peuvent, par exemple, s’en servir pour réaliser de la maintenance prévisionnelle. Grâce au réseau SAP Asset Intelligence Network, il est possible de mettre en œuvre des scénarios tels que celui-ci. Grâce à cette plateforme, il devient possible d’agréger les données des capteurs sans logiciel intermédiaire et d’alimenter directement un système informatique existant. Les données sont ensuite partagées avec les partenaires via le cloud. Évidemment, aucune entreprise ne souhaite proposer un accès ouvert à ses systèmes. Mais avec un réseau cloud intelligent, cela ne sera pas nécessaire. Chaque partenaire ne pourra accéder qu’aux informations le concernant. Par ailleurs, ces informations sont stockées dans le datacenter du fournisseur informatique, soit en terrain neutre ». Pensez Retour sur Investissement » Un tel scénario peut s’avérer particulièrement efficace, si toutes les parties prenantes travaillent ensemble pour en extraire une réelle valeur ajoutée. De manière générale, il est nécessaire d’identifier les conséquences économiques d’un projet IoT avant de démarrer. Il faut aussi encourager les équipes à innover afin de développer de nouvelles idées. D’ailleurs, ces idées n’ont pas besoin d’être révolutionnaires les petites avancées » aident parfois à rassurer vos collaborateurs sur l’IoT et à les rallier à votre cause. Chez NTT DATA Business Solutions, nous vous proposons des ateliers pour soutenir le projet IoT de votre entreprise. Une chose est sûre l’Internet des Objets ne sera jamais fourni clé en main » avec une intégration standard dans votre entreprise. C’est un projet à long terme, que vous devez mettre en œuvre en fonction de vos processus et de vos besoins. En savoir plus A relire Transformation digitale ou IoT – Par où commencer ? A relire également Internet des Objets quelles opportunités pour les PME ?
Internetpour les Nuls va répondre à toutes les questions que vous vous posez sur Internet et le Web : qu'est-ce qu'Internet, comment utiliser mon navigateur Internet Explorer ou Firefox, comment me connecter, comment surfer décontracté sur le Web, comment utiliser Mail pour adresser mon courrier électronique à mes correspondants, quelles sont les meilleuresCréé en 1999 par le Dr Andy Stanford-Clark d'IBM, et Arlen Nipper d'Arcom maintenant Eurotech MQTT est le protocole qui joue un rôle important dans l'Internet des objets. D'où l'intérêt de bien le connaître. MQTT permet concrètement aux appareils d'envoyer des informations sur un sujet donné à un serveur qui fonctionne comme un broker de messages. Le broker pousse ces informations vers les clients qui se sont précédemment abonnés. Pour l'utilisateur, un sujet ressemble à un chemin hiérarchique. Les clients peuvent s'abonner à un niveau spécifique de la hiérarchie d'un sujet ou à plusieurs niveaux s'ils utilisent un caractère générique. Fonctionnement de MQTT Une session MQTT est divisée en quatre étapes connexion, authentification, communication et terminaison. Un client commence par créer une connexion TCP/IP vers le broker en utilisant soit un port standard, soit un port personnalisé défini par les opérateurs du broker. Lors de la connexion, le serveur peut continuer une ancienne session s'il reconnaît une identité client précédemment utilisée. Les ports standards sont les suivants 1883 pour la communication non chiffrée et 8883 pour la communication chiffrée utilisant SSL/TLS. Pendant l'établissement de liaison ou handshake SSL/TLS initial, le client valide le certificat du serveur afin d'authentifier le serveur. Lors de cet échange, le client peut également fournir au broker un certificat client que le broker pourra ensuite utiliser pour authentifier le client. Bien que cela ne soit pas spécifié dans la norme MQTT, les brokers prennent habituellement en charge l'authentification des clients avec leurs certificats SSL/TLS. Le protocole MQTT étant avant tout destiné aux appareils disposant de ressources limitées, SSL/TLS n'est pas toujours disponible et dans certains cas, il n'est pas souhaité. Le client s'authentifie alors en envoyant un nom d'utilisateur et un mot de passe en clair au serveur lors de la séquence de paquets CONNECT/CONNACK. Certains brokers, en particulier les brokers ouverts publiés sur Internet, acceptent les clients anonymes. Dans ce cas, le nom d'utilisateur et le mot de passe sont tout simplement laissés vides. MQTT est considéré comme un protocole léger parce que les messages ont tous une faible empreinte logicielle. Chaque message se compose d'un en-tête fixe 2 octets, d'un en-tête variable facultatif, d'une charge utile de message limitée à 256 Mo et d'un niveau de qualité de service. Les trois niveaux de qualité de service déterminent la façon dont le protocole MQTT gère le contenu. Bien que les niveaux plus élevés soient plus fiables, ils sont également plus gourmands en termes de latence et de bande passante. Les clients abonnés peuvent spécifier le niveau de QoS maximal qu'ils souhaitent recevoir. Le niveau de qualité de service le plus simple est le service non confirmé Unacknowledged Service. Ce niveau utilise une séquence de paquets PUBLISH l'éditeur envoie un message une seule fois au broker et ce dernier transmet ce message une seule fois aux abonnés. Aucun mécanisme ne garantit la réception du message et le broker ne l'enregistre pas non plus. Ce niveau de qualité de service est également appelé QoS niveau 0 » ou QoS0, ou encore At most once » au plus une fois. Le deuxième niveau de service est le service confirmé Acknowledged Service. Ce niveau utilise une séquence de paquets PUBLISH/PUBACK Publish Acknowledge entre l'éditeur et son broker, ainsi qu'entre le broker et les abonnés. Un paquet de confirmation vérifie que le contenu a été reçu et un mécanisme de renvoi du contenu d'origine est déclenché si l'accusé de réception n'est pas reçu en temps voulu. Cela signifie que l'abonné peut recevoir plusieurs copies du même message. Ce niveau de qualité de service est également appelé QoS niveau 1 » ou QoS1, ou encore At least once » au moins une fois. Le troisième niveau de QoS est le service garanti Assured Service. Ce niveau délivre le message avec deux paires de paquets. La première est appelée PUBLISH/PUBREC et la seconde, PUBREL/PUBCOMP. Les deux paires s'assurent que quel que soit le nombre de tentatives, le message ne sera délivré qu'une seule fois. Ce niveau de qualité de service est également appelé QoS niveau 2 » ou QoS2, ou encore Exactly once » exactement une fois. Au cours de la phase de communication, un client peut effectuer les opérations suivantes publication, abonnement, désabonnement ou ping. L'opération de publication envoie un bloc binaire de données le contenu vers un sujet défini par l'éditeur. MQTT prend en charge les messages de type BLOB d'une taille maximale de 256 Mo. Le format du contenu dépend de l'application. Les abonnements à des sujets sont réalisés au moyen d'une paire de paquets SUBSCRIBE/SUBACK. Le désabonnement est réalisé de manière similaire à l'aide d'une paire de paquets UNSUBSCRIBE/UNSUBACK. Les chaînes décrivant un sujet forment une arborescence en utilisant la barre oblique / comme caractère de séparation. Un client peut s'abonner à des branches entières de l'arborescence d'un sujet ou se désabonner à l'aide des deux caractères génériques suivants le signe plus +, qui correspond à un seul niveau, et le dièse pour plusieurs niveaux. Un caractère spécial, le dollar $, permet d'exclure un sujet de tout abonnement utilisant un caractère générique à la racine. En règle générale, le dollar sert à transporter des messages système ou serveur spécifiques. Un client peut effectuer une quatrième opération au cours de la phase de communication il peut envoyer une commande ping vers le serveur du broker en utilisant une séquence de paquets PINGREQ/PINGRESP. Grossièrement traduit, cela signifie ES-TU VIVANT/OUI JE SUIS VIVANT ». Cette opération n'a pas d'autre fonction que de maintenir une connexion active et de s'assurer que la connexion TCP n'a pas été coupée par une passerelle ou un routeur. Lorsqu'un éditeur ou un abonné souhaite mettre fin à une session MQTT, il envoie un message DISCONNECT au broker, puis met fin à la connexion. On parle d'arrêt progressif, car il permet au client de se reconnecter facilement en fournissant son identité client et de reprendre la session là où il l'avait laissée. En cas de déconnexion brutale ne laissant pas le temps à l'éditeur d'envoyer un message DISCONNECT, le broker peut envoyer aux abonnés un message de l'éditeur que le broker avait précédemment mis en cache. Le message, appelé dernières volontés et testament, indique aux abonnés les mesures à prendre en cas d'arrêt inopiné de l'éditeur. Défis liés à l'utilisation de MQTT pour l'Internet des objets Dans la mesure où MQTT n'intègre pas de mécanismes de sécurité, ce protocole est traditionnellement utilisé dans des réseaux sécurisés à des fins applicatives spécifiques. La structure des sujets MQTT peut facilement devenir une immense arborescence. Or, il n'existe pas de méthode simple permettant de la diviser en domaines logiques plus petits qui pourraient être fédérés. Cela rend difficile la création d'un réseau MQTT évolutif à grande échelle, car dès lors que l'arborescence des sujets grandit, la complexité augmente. MQTT présente un autre inconvénient son manque d'interopérabilité. Etant donné que la charge utile des messages est binaire, sans aucune information quant à leur codage, des problèmes peuvent survenir, notamment dans des architectures ouvertes où des applications de différents fabricants sont censées fonctionner de manière transparente les unes avec les autres. Comme nous l'avons vu plus haut, le protocole MQTT intègre des fonctionnalités d'authentification minimales. Nom d'utilisateur et mot de passe sont envoyés en clair et toute utilisation sécurisée de MQTT exige de mettre en oeuvre SSL/TLS, qui malheureusement n'est pas un protocole léger. Authentifier des clients avec des certificats client n'est pas un processus des plus simples et MQTT ne permet pas, hormis par des moyens propriétaires hors bande, de déterminer qui est propriétaire d'un sujet et qui peut y publier des informations. Il est donc très facile d'injecter des messages malveillants, volontairement ou non, dans le réseau. En outre, il n'y a aucun moyen pour le récepteur de savoir qui a envoyé le message d'origine, à moins que cette information ne soit contenue dans le message. La couche de sécurité propriétaire qui doit être ajoutée à MQTT augmente donc l'empreinte logicielle et complique la mise en oeuvre du protocole. En dépit de ces considérations, de nombreux experts estiment que MQTT jouera un rôle important dans l'Internet des objets, en facilitant des opérations telles que le suivi des stocks, la télématique automobile, la surveillance des ressources et les réseaux du corps médical. Le protocole s'améliore en permanence et prend désormais en charge WebSockets, un autre protocole qui permet une communication bidirectionnelle en temps réel entre les clients et les brokers. D'autres protocoles de transfert pour les appareils à ressources limitées sont à l'étude. Comme le protocole pour applications contraintes CoAP pour Constrained Application Protocol, qui utilise un modèle de communication de type requête/réponse. Ou le protocole de file de messages avancé AMQP pour Advanced Message Queuing Protocol qui, comme MQTT, s'appuie sur un modèle publication/abonnement. Pour approfondir sur Internet des objets IoT IoT et data streaming InfluxData veut simplifier la collecte de données Par Sean Kerner Astra Streaming DataStax veut traiter tous les événements ou presque Par Sean Kerner IIoT InfluxData renforce son support du protocole MQTT Par Sean Kerner Architecture Pub/Sub les clés pour comprendre son importance Par Twain Taylor
Découvrezvos propres épingles sur Pinterest et enregistrez-les. 4 déc. 2012 - Cette épingle a été découverte par Dactyle. Découvrez vos propres épingles sur Pinterest et enregistrez-les. Pinterest. Today. Explore. When autocomplete
L'IoT, l'Internet Of Things, en français l'Internet des Objets fait partie des sujets que tout citoyen doit maîtriser pour ne pas passer pour un Nul. Je vais donc vous éclairer sur ce sujet, nous allons faire un point ensemble, sur l'Internet des des Objets pour les NulsPremière chose, si vous ne savez rien sur l'IoT ce n'est pas grave, il ne faut pas paniquer. L'Internet des Objets c'est tout simplement l'idée que des Objets pourraient se transmettre de l'information entre eux, avant de nous transmettre cette l' Objets intègrent de plus en plus de fonctions, si vous sortez d'un magasin avec un objet que vous n'avez pas payé, il va sonner et prévenir le magasin. Cela se passe à l'aide d'une puce RFID un tag de Radio Fréquence Identification qui lorsqu'on l'interroge j'évoque ici les puces rfid, c'est parce qu'elles sont précurseures en matière d'objets "intelligents" capables de fonctionnalités évoluées. Il suffit de lui intégrer des fonctionnalités de communication sur le réseau des réseaux pour que la puce rfid devienne alors un Objet connecté, un objet capable de transmettre de l'information sur toutes les nouvelles technologies l'IoT passe d'abord dans les mains des militaires puis dans celles des industriels avant de passer dans les mains de tout un chacun. Dans le domaine de l'industrie la révolution en cours s'appelle Industrie ce sont les machines connectées qui transmettent en continu de l'information sur leur état de fonctionnement. On parle d'Internet Industriel des Objets d' avant tout dans le domaine de la logistique que l'on voit se développer le plus l'IoT, il s'agit d'informer le responsable de l'état de son système logistique, d'informer le client sur l'état de préparation de sa commande. L'IoT consiste donc à mettre des capteurs intelligent, capables de transmettre leurs informations sur Internet, un peu partout. Ces capteurs sont de types, identification, localisation, température par exemple dans le cadre de la chaîne du des capteurs de position et vous créez des parkings intelligents, capables de signaler le taux d'occupation et le nombre de places vides. Naît alors l'idée de Smart City une ville dans laquelle les habitants seraient informés d'un certain nombre d'éléments. Ces le cas actuellement, si vous êtes à l'écoute, vous trouverez des applications pour smartphones qui vous l'Internet des Objets ne voit toujours pas le jour au prêt du grand public ? Sans doute parce que les objets dont on parle sont cachés qu'ils servent avant tout à des professionnels mais aussi très certainement parce que pour le grand public, les applications ne sont pas encore effet, imaginer de payer un abonnement à l'IoT, pour qu'un capteur surveille l'humidité de vos plantes d'appartement qu'il vous prévienne et que vous puissiez alors déclencher l'arrosage ceci quand vous êtes en vacances, n'est pas forcément une idée réjouissante. L'idée que ce même capteur décide de lui-même d'arroser vos plantes sans aucun contrôle de votre part, ne l'est pas non autres, vont vouloir vous vendre de l'objet connecté, méfiez-vous c'est un sujet dont certains trolls se sont emparé pour vendre n'importe quoi. On va vous raconter qu'il y a des milliards et des milliards d'objets connectés oui il y a également sur terre des milliards d'ordinateurs... Et alors je vous dit que cela va exploser, comme toujours restons calme, rien ne va exploser, le monde se transforme mais pas aussi vite qu'on le l’Internet des objets IoT en 5 questions Les Echos StartAlors eux, ils sont carrément gonflés à bloque ! Ils parlent de 3 hubs régionaux, Angers, Toulouse et Paris. Parmi ces trois là , cherchez l'erreur oui vous avez trouvé c'est Angers. Bravo !Ici, à Montpellier, on est bien plus fort en IoT LoL.Vous souhaitez en savoir plus Il s'agit de présenter les initiatives de l'Open Data, l'ouverture des données des séries de capteurs mises à disposition des peut imaginer que les données de l'IoT soient ainsi mises à disposition des programmeurs, afin d'offrir une expérience utilisateur au sein d'applications mettant en valeur ces données.Objetscommunicants & Internet des Objets Aujoud’hui, on utilise de nombreux objets communicants dans notre quotidien. Nous sommes entourés de ces appareils pouvant communiquer avec leur environnement et échanger des données, qui nous offrent de plus en plus de services facilitant nos activités, et avec lesquels nous interagissons fréquemment. Ils sont
La programmation orientée objet en JavaScript est un sujet délicat parfois, la documentation est souvent vague et il n’y a pas de très bonnes ressources en Français. Ainsi en vue de mes prochains articles, j’ai pensé qu’un cours de POO en JavaScript en partant de zéro ne ferait pas de mal. Je ne me considère pas comme un barbu en JS, mais je le pratique assez chaque jour sur des projets concrets pour savoir l’utiliser et l’apprécier à sa juste valeur 😉 On va commencer avec les bases en créant une une classe avec des membres publiques, puis privés, puis statiques. Ensuite nous verrons l’héritage ! 1. Une classes simple Dans ce premier exemple, nous allons créer une classe Sprite que l’on retrouve souvent lors de la création d’un jeu. J’ai choisi de faire la comparaison avec le langage Java pour deux raisons. Déjà le Java c’est trop cool =D La première est que les débutants pensent quelque fois que Java et JavaScript c’est la même chose, c’est totalement faux. Enfin le langage Java est facile à écrire et permettra de mettre en situation rapidement les différents cas sans avoir recourt à des mots clé hasardeux. public class Sprite { protected float _x; protected float _y; protected String _name; public SpriteString name, float x, float y { _name = name; _x = x; _y = y; } public String toString { return _name + " { x " + _x + " y " + _y + " }"; } public static void mainString args[] { Sprite sprite = new Sprite"player", } } Cette classe permet de représenter un sprite à l’écran, elle possède trois informations que l’on stock dans des variables protégées. La méthode toString quant-à elle va permettre d’afficher une trace du sprite avec sa position utile pour le debug par exemple. Enfin la méthode main, obligatoire en Java, sera chargée de créer une instance de la classe et d’appeler la méthode toString. Facile ? Bon passons à la version JavaScript maintenant ! var Sprite = function name, x, y { var _name = name, _x = x, _y = y; = function { return _name + " { x " + _x + " y " + _y + " }"; }; }; var sprite = new Sprite"player", Alors à vue d’œil comme ça je dirais qu’il y a moins de code pas vous ? En JavaScript on déclare une classe comme une fonction et cette dernière sert d’ailleurs de constructeur. Ainsi quand on écrit var MaClass = function p1, p2 {} on déclare la classe et son constructeur en même temps. Au final ce n’est pas si mal car on a moins de code à écrire. Vous remarquerez que j’ai ajouté une fonction toString préfixé par this dans le constructeur. Quand vous êtes dans le constructeur, vous êtes aussi dans l’objet en lui même, c’est donc ici que vous pourrez déclarer des fonctions privés ou publiques. Ce qu’il faut savoir c’est qu’une variable ou fonction déclarée avec le mot clé var sera privée et accessible uniquement dans le scope courant scope == portée de la fonction, alors qu’une variable ou une fonction déclarée avec le mot clé this sera publique et accessible depuis l’intérieur et l’extérieur de la classe. J’attire votre attention sur le fait qu’il n’existe pas d’équivalent au mot clé protected. Enfin dernier point qui me tiens très coeur, n’oubliez pas ces foutues virgules, dés que vous utilisez le mot clé var, alors vous déclarez une variable qui contient une fonction, un objet, un nombre et après la déclaration d’une variable on met quoi ? Un point virgule. Cette rigueur vous permettra d’éviter quelques insultes de la part des compresseurs JavaScript. 2. Des classes un peu plus complexes Nous avons vue comment créer une classe en JavaScript, c’est bien, cependant la méthode que j’ai montré a des limites. A chaque fois que vous aller créer une instance de cette classe, la méthode toString sera elle aussi recréée. Si vous n’avez pas beaucoup d’objet et que ces derniers ne contiennent pas trop de méthodes, alors c’est négligeable. Cependant si votre classe contient une méthode qui est appelée très régulièrement par plusieurs instances alors c’est plus problématique car on consomme de la mémoire pour rien. Pour résoudre ce problème on utilise… les prototypes ! Si vous avez fait du C++ alors sachez que ça y ressemble beaucoup. On va donc créer la classe avec ses attributs, puis déclarer en dehors, des fonctions spéciales qui elles ne seront créées qu’une seule fois, même si vous avez plusieurs instances de l’objet. La petite subtilité est que ces méthodes prototype ne se trouvent pas dans le scope du constructeur puisqu’elles sont déclarées en dehors, ainsi vous devrez rendre vos attributs publiques pour pouvoir y accéder. Comment ça je suis dingue ? On passe tout en publique ? Mais qu’est-ce qu’on fait des principes même de la programmation orientée objet avec l’encapsulation des données ? Du calme les amis, on va préfixer nos variables avec un underscore, c’est uniquement symbolique, mais ça servira à dire à la personne qui utilisera votre classe Touche pas à ça, c’est privé OK ? ». D’un autre côté les éditeurs de code qui proposent l’auto-completion, n’affichent pas les variables ou méthodes avec un underscore devant 😉 version prototype var Sprite = function name, x, y { = name; = x; = y; }; = function { return + " { x " + + " y " + + " }"; }; Au fait, rien ne vous empêche de mixer les deux méthodes, avec des fonctions dans le constructeur et des fonctions prototypes. Bon tout ça est pas mal, vous savez comment faire de la POO de base, maintenant voyons l’héritage car cette partie est importante. 3. L’héritage La classe Sprite est très souvent dérivée pour créer des entités bien spécifiques comme un joueur, un ennemi, un objet d’inventaire, etc.. J’ai légèrement modifié l’implémentation de cette dernière pour lui ajouter des méthodes initialize, update et draw. Notez que les objets SpriteBatch et Screen sont fictifs et uniquement dans ce code pour habiller » la démonstration. public class Sprite { protected float _x; protected float _y; protected String _name; public SpriteString name, float x, float y { _name = name; _x = x; _y = y; } public void initialize { _x = _x ? _x = / 2 _x; _y = _y ? _y = / 2 _y; } // Méthode appelée à chaque frame. public void updateGameTime gameTime { // Test de collision bidon avec les murs _y = _y ? _y; // Etc... } public void drawSpriteBatch spriteBatch { du sprite"; } public static void mainString args[] { Sprite sprite = new Sprite"player", } } public class Player extends Sprite { private String _job; public PlayerString name, float x, float y, String job { supername, x, y; _job = job; } public void drawSpriteBatch spriteBatch { dessine en plus une icone du job"; } } La classe Player dérive de Sprite et ajoute un attribut en plus, le job du personnage. La méthode draw est quant-à elle surchargée, elle doit appeler celle de la classe mère, mais en plus elle doit dessiner l’icone du métier du joueur. Passons maintenant à l’implémentation en JavaScript qui va être assez différente, et hélas va nécessiter un peu de code pas facile à retenir la première fois. Il y a plusieurs manières de proposer un héritage en JavaScript, je vous propose deux approches qui fonctionnent toutes les deux, cependant je vous encourage vivement à utiliser la 2éme méthode qui n’est certes pas compatible avec les vieux navigateurs, mais qui pose beaucoup moins de problèmes. var Sprite = function name, x, y { = name; = x; = y; }; = function { = ? = / 2 = ? = / 2 }; // Méthode appelée à chaque frame. = function gameTime { // Test de collision bidon avec les murs = ? // Etc... }; = function spriteBatch { du sprite"; }; var sprite = new Sprite"Player", 15, 50; La grosse différence avec la classe Java est qu’on rajoute des this un peu partout car sans ça on ne peux pas exploiter les membres de la classe. Autrement le code métier est identique. var Player = function name, x, y, job { name, x, y; = job; }; = new Sprite; = function spriteBatch { spriteBatch; dessine en plus une icone du job"; }; var player = new Player "player", "Knight"; Ha ha ha ! Alors là c’est fini le c’est facile » hein 😉 Je vous explique car ce n’est pas compliqué. L’héritage en JavaScript se déroule en deux étapes. La première consiste à appeler le constructeur de la classe mère dans le constructeur de la classe héritée. C’est en quelque sorte le super de Java, à l’exception qu’il permet de dire que l’on dérive de la classe mère et que l’on appel en plus son constructeur. La syntaxe pour est la suivante var ClassFille = function p1, p2 { p1, p2; } La fonction call prendra en premier paramètre l’instance de la classe fille, à savoir this, ensuite il faudra passer les paramètres à la classe mère. Ce n’est pas la seule subtilité car en écrivant ça, vous récupérez les attributs publiques de la classe mère dans la classe fille, donc variables et méthodes déclarées avec le mot clé this. Cependant vous ne récupérez pas les prototypes pour autant. Pour cela il le spécifier avec la ligne suivante, tout de suite après le constructeur. var ClassFille = function p1, p2 { p1, p2; } = new ClassMere; La classe fille va avec cette ligne, hériter des prototypes de la classe mère, l’héritage est terminé. Par contre il faut prendre une chose en considération, une chose très importante.. une chose qui pourrait bien être à l’origine de tout un tas de bugs… Prenons un exemple. var ClassMere = function x, y { var d = = "absolute"; = y + "px"; = x + "px"; }; var ClassFille = function p1, p2 { p1, p2; } = new ClassMere; Vous savez ce qui cloche dans ce code ? Lorsque l’on va créer une instance de ClassFille alors on va créer avant une instance de la classe mère, qui elle même, va comme le code le montre, créer un élément div et l’attacher au DOM. Le problème vient à l’héritage des prototypes, on écrit = new ClassMere… Donc une deuxième fois un constructeur de ClassMere est appelé et va encore une fois créer et ajouter un élément au document ! Pour éviter ce genre de problème, et c’est valable dans d’autres langages Utilisez une méthode d’initialisation ou alors si le constructeur contient des paramètres, vérifiez si il ne sont pas undefined ! Correction méthode n°1 var ClassMere = function x, y { = x; = y; }; // Vous devrez l'appeler manuellement = function { var d = = "absolute"; = + "px"; = + "px"; }; var ClassFille = function p1, p2 { p1, p2; } = new ClassMere; // Et là plus de double élément dans le DOM, par contre il faudra appeler cette méthode manuellement. Correction méthode n°2 var ClassMere = function x, y { // Si les paramètres existes alors on construit l'élément. if x && y { var d = = "absolute"; = y + "px"; = x + "px"; } }; var ClassFille = function p1, p2 { p1, p2; } = new ClassMere; Vous noterez dans la méthode numéro 2 que j’ai simplement testé l’existence des deux variables comme suit x && y, sachez que ça ne sert à rien de tester le type en JavaScript dans ce cas là , c’est même mal car c’est parfois trompeur. Effectivement une variable peut valoir null, undefined, false ou 0 et un test strict ne passera pas à chaque fois. Hériter autrement avec La troisième solution pour éviter ce genre de problème est d’utiliser à la place de new ClassMere, c’est donc la deuxième possibilité pour faire de l’héritage. Le fait de créer une deuxième instance est problématique et nous avons vue pourquoi plus haut. Avec nous allons faire un héritage des prototypes uniquement. La seule différence est là = La classe Player devient donc modifiée var Player = function name, x, y, job { name, x, y; = job; }; = = function spriteBatch { spriteBatch; dessine en plus une icone du job"; }; var player = new Player "player", "Knight"; Et là c’est déjà beaucoup mieux car nous n’avons qu’une instance de la classe mère qui est créée ! C’est donc la méthode à utiliser. Sachez par contre que n’est pas utilisable en dessous d’Internet Explorer 9, il y a cependant des polyfill mais gardez ça en tête. Enfin, car nous avons bientôt terminé, la surcharge de la méthode draw est intéressante car on a besoin d’appeler la méthode de la classe mère. En Java on utilise le mot clé super suivi de la méthode à appeler. En JavaScript on utilise le nom de classe avec les namespaces avant si il y en a suivi du mot clé prototype, puis le nom de la fonction et enfin call. En premier paramètre il faudra spécifier l’instance de l’objet en cours, donc this, ça, ça ne change pas 😉 et enfin les paramètres si il y en a. Récapitulatif sur le mot clé super et son équivalent en JavaScript // En Java superx, y; // Dans le constructeur // Dans la méthode initialize // Dans la méthode draw x, y; // Dans le constructeur // Dans la méthode initialize spriteBatch; // Dans la méthode draw Bon et bien mine de rien on vu déjà pas mal de choses, on va terminer avec les variables et méthodes statiques et quelques mots clé à connaitre. 4. Méthodes et membres statiques Cette partie est définitivement la plus simple ! Il peut arriver que vous ayez besoin d’avoir recourt à une variable statique pour par exemple compter le nombre d’instances d’un objet. On peut faire cela comme ça var MonObjet = function { // Initialisation de l'objet = }; = 0; MonObjet.id; // 0 MonObjet.id; // 1 MonObjet.id; // 2 Déclarer une méthode statique revient à déclarer une méthode prototype, sans le mot clé prototype O var MonObjet = function {}; = function { a static function man !"; } Enfin pour finir, je dois vous parler des mots clé instanceof et typeof car ils sont utiles mais trompeur parfois.. Le mot clé instanceof Il permet de vérifier si un objet est d’un type donné, par exemple vous pouvez écrire var player = new Player"player", 0, 0, "Knight"; var sprite2 = new Sprite"item", 10, 10; var div = instanceof Sprite; // true instanceof Player; // true instanceof Sprite; // true instanceof Player; // false instanceof HTMLElement; // true instanceof HTMLCanvasElement; // false La variable player est de type Sprite et par extension de type Player, par contre la variable sprite n’est que de type Sprite. Ce mot clé fonctionne avec tous les types définis, que ce soit les vôtres ou ceux disponibles de base. C’est pratique pour tester un objet du DOM par exemple. Le mot clé typeof Alors celui-là est traître au possible et il faudra vous en méfier vous m’entendez ?. Il n’existe pas de méthode permettant de récupérer le nom d’une classe, typeof va simplement vous dire de quel type est la variable que vous lui passez en paramètre. typeof1; // number typeof"1"; // string typeof+"1"; // number typeof"Hello"; // string typeofsprite; // object Conclusion Comme vous avez pu le constater à travers ce tutoriel, le langage JavaScript est différent du langage Java, en réalité il est différent, point barre. Il ne faut pas partir avec des préjugés et vouloir le comparer automatiquement à d’autres langages, mais le prendre comme il est, et apprendre à en tirer bénéfice car croyez moi, un paquet de choses bien peuvent être faites avec du JavaScript ! Comme dans tous les langages d’ailleurs. Sachez qu’il existe un tas d’autres choses que vous pouvez faire pour structurer votre code et surtout le sécuriser. Je pense aux closures dans un premier temps mais il y a aussi les namespaces et puis tout un tas d’autres techniques à apprendre pour se perfectionner. La documentation de Mozilla est je pense la meilleure que l’on puisse trouver sur le web et je vous encourage vivement à y aller, il y a presque tout ce que vous voulez dessus. La MSDN est aussi très pratique et complète. N’hésitez pas à venir débattre et poser vos questions dans les commentaires ou alors sur le meilleur endroit des internets pour discuter entre passionnés Google+ ! Un grand merci à Alex pour avoir prit le temps de relire cet article.
LInternet des Objets désigne les appareils électroniques capables de se connecter à Internet et de partager des données avec d'autres appareils capables d'accéder à Internet. Également connus sous le nom d'appareils connectés, ils incluent les ordinateurs portables, les smartphones et les ordinateurs de bureau, mais ils sont loin de se