Les boucles en programation

Un programme informatique s’exécute de façon ordonnée, ligne par ligne. Dans de nombreux langages, il existe certaines instructions spéciales qui permettent d’agir sur cet ordre sous certaines conditions fixées. Parmi ces instructions dites de contrôle, il y a les boucles.

Une boucles, qu’est-ce que c’est ?

Le mot boucle en programmation désigne la même notion que le mot utilisé couramment : une structure qui revient à son point de départ.

Une boucle est constituées de deux parties : un bloc d’instructions, c’est-à dire l’ensemble qui va se répéter ; et puis l’instruction de contrôle, qui définie les conditions sous lesquelles le bloc doit se répéter, et combien de fois.
  Un bloc d’instruction classique.

Ici, le bloc est exécuté quatre fois.

Boucles à condition.

Le bloc s’exécutera tant que l’expression testée en condition sera vraie, ou à l’inverse, jusqu’à ce qu’elle devienne vraie.

Ainsi, les deux boucles si dessus sont équivalentes. La syntaxe exact variera selon le langage.

Suivant le type de boucle, la condition se trouve au début ou à la fin du bloc. ON parle de boucle avec pré-condition et post-condition.

Le fait que la condition se trouve à la fin aura l’avantage de permettre de tester des élément définis à l’intérieur de la boucle.

  Une boucle do-while

Dans cet exemple, on demande à deux utilisateurs de choisir un pseudo.

La boucle consiste à demander de saisir le 2eme pseudo. Et la condition, située à la fin, relancera le bloc tant que les deux choix seront identiques. Ainsi, dans cet exemple, il était judicieux d’utiliser une boucle à post-codntion.

Boucles itératives

Dans cet exemple, le bloc se répète un nombre prédéfini de fois.

Ainsi, il suffit d’écrire les instruction une et une seule fois.

 

Les boucles sont un outils puissant et très utilisé en programmation.

Le futur de la médecine

La médecine qu’on connait aujourd’hui est en plein développement aujourd’hui grâce aux différentes technologies que l’on créé aujourd’hui comme les IA ou encore la robotique.

Les IA dans la médecine

L’IA aujourd’hui se développe à grande vitesse et réalise de plus en plus d’exploits. Ce qui lui permet d’arriver dans la médecine. Elle servira à analyser des radios ou autres pour établir des diagnostics pour les patients.

En effet aujourd’hui on commence à programmer des intelligences artificielles capables de comparer des radiographies et de détecter des anomalies dans des analyses. Tout cela grâce à des millions et millions de données qu’une IA peut traiter en quelques minutes permettant de mettre en évidence le ou les dysfonctionnements du corps. Cela réduirait le nombre d’erreurs dans les diagnostics et améliorerait le traitement des patients.

Dans le domaine de l’intelligence artificielle appliqué à la médecine c’est principalement Google qui réalise les plus grosses avancées. L’entreprise dispose même d’une filiale nommée Verily qui est spécialisée dans la recherche sur la santé basée dans la Silicon Valley.

Un microscope qui détecte les cancers.

Les employés de Google ont eu l’idée de créer un microscope basé sur la réalité augmentée pour détecter les cancers en temps réel car aujourd’hui les chercheurs doivent examiner chaque cellule pour trouver une cellule cancéreuse. Cette tâche est difficile et il est possible que le médecin ne voit pas cette cellule.

Des pathologistes et des chercheurs ont « aider » l’ordinateur à différencier une cellule cancéreuse d’une cellule saine en lui donnant de nombreux exemples concrets. Cela permet au médecin d’avoir un deuxième avis quasi instantanément quand il analyse les cellules. C’est ce qu’on appelle le Machine Learning. La machine apprend pour s’améliorer et donner de meilleurs résultats au fur et à mesure des analyses qu’elle réalise.

La robotique

La robotique est déjà présente pour aider les médecins durant les opérations.

Il existe même des robots qui opèrent les patients mais ce robot est contrôlé par un médecin par un poste de commande. Un robot qui s’est fait connaitre dans cette technologie est le robot Da vinci. C’est un robot qui est dédié à la chirurgie, il est composé de deux parties. La première avec une caméra et l’ensemble des instruments chirurgicaux sur des bras articulés. Et une deuxième avec un poste de commande pour le chirurgien qui peut manipuler avec précision les bras articulés pour effectuer son opération.

Les tétines connectées

Grâce aux nouvelles technologies, nous retrouvons de plus en plus d’objets connectés.

Dans quel contexte ?

En 2015 à Las Vegas pendant le CES (Consumer Electronics Show ), L’entreprise Blue Maestro a présenté un nouvel appareil connecté, car de plus en d’objets connectés sont inventés dans tout les domaines et le domaine de l’enfance n’y a pas échappé. Pacif-i est la première tétine connectée d’une valeur de 30€.

 

Mais qu’est ce qu’une tétine connectée

Tout (ou presque) les jeunes enfants ont une tétine, mais à part être utilisé par succion, elle peuvent être plus utile, c’est là que notre tétine entre en jeu car en étant connecté par bluetooth, elle permet de prendre la température en temps réelle et d’être directement incluse dans un graphique, mais pas que. Grâce à une alerte sur l’application on peut savoir quand est-ce que l’enfant est sorti du périmètre choisir par les parents et avec les alarmes de l’application les parents pourront créer des rappels pour les médicaments de l’enfants.

Est-ce utile ?

Nous sommes entourés d’objets connectés depuis notre plus jeune âge mais est-ce qu’un enfant a vraiment besoin d’avoir des ondes bluetooth en permanence dans la tête ? Je ne pense pas et la tétine dispose d’une batterie au lithium ce qui n’est pas non plus vraiment (voir pas du tout) bon pour la santé. Pour prendre la température de plus quand il y a une alarme pour prévenir si l’enfant est sorti d’un périmètre de surveillance c’est parfois déjà trop tard donc n’est t-il pas mieux pour la santé et pour la sécurité que l’enfant reste sous une vraie surveillance humaine ?

Sources:

Pacifi, la tétine connectée pour être au plus près de votre bébé !

https://www.minimachines.net/actu/ces-2015-la-smart-tetine-bluetooth-existe-deja-24963

 

Un peu de Bitcoin

Le Bitcoin est la plus célèbre des cryptomonnaies et son nom est l’assemblage de deux mots d’origine anglais : bit (l’unité de données binaire) et coin (la pièce de monnaie).

Elle est devenue en quelques années la référence mondiale de ce qu’on appelle les cryptomonnaies, il est important de ne pas confondre le Bitcoin avec les crédits facebook ou encore l’or de World of Warcraft… Le Bitcoin ne sert pas a masqué le vrai prix des transactions; La valeur du Bictoin varie par rapport à l’offre et la demande.

Le Bictoin utilise un système de paiement décentralisé, ce qui veut dire qu’elle ne dépend d’aucunes banques centrales, d’aucunes institutions pour fonctionner. Il n’y  a personne qui intervient sur les transactions,aucun intermédiaire, rien du tout.

Son fonctionnement est révolutionnaire, le Bitcoin est basé sur un système appelé la Blockchain (la chaîne de blocs). C’est cette chaîne qui assure le bon fonctionnement du système, une immense base de données constituée de toutes les transactions réalisées par ses utilisateurs.

Par exemple, je vous donne un Bitcoin : c’est moi qui lance la transaction directement depuis mon ordinateur ou mon mobile, depuis mon portefeuille directement dans le votre ! Il part d’un point A à un point B directement, sans intermédiaires.

Ainsi les différents ordinateurs connectés à la chaîne vont vérifiés que la transaction est valide, si j’ai effectivement ce Bitcoin dans mon portefeuille et que les deux comptes existent bel et bien. Toutes les dix minutes, l’ensemble des transactions effectuées à ce moment la sont enregistrées dans un bloc qui vient s’attacher à la fin de la chaîne.

La Blockchain, c’est au final un énorme registre partagé par un nombre incalculable de machines dans le monde, la votre peut en faire partie si vous le souhaitez ! Personne ne peut modifier une transaction parce qu’il faudrait que la plupart des ordinateurs du monde soient d’accord.

Il y a des frais de transaction mais minime par rapport aux commissions prises par des établissements banquaires. Et ça, c’est cool ! J’expliquerais plusieures méthodes pour en obtenir prochainement.

 

 

Un possible upgrade de la technologie eCall pour Ford ?

Aujourd’hui, on va lier les deux points que j’aime énormément, c’est a dire l’automobile et les nouvelles technologies.

Ford annonce un nouveau prototype pour sa technologie eCall intégrée a leur dernier modèle de Ford focus, cette dernière, en cas d’accident, prévenait les secours automatiquement afin que leur arrivée soit la plus rapide possible.

Le prototype nommé eCall Plus, qui est actuellement en test va, non-seulement garder cette fonctionnalité, mais aussi connecter la voiture aux autres voitures aux alentours afin d’être prévenue en cas d’accident.

Cet eCall Plus fonctionne sur trois niveaux. Le premier d’entre eux est de prévenir les conducteurs qu’un accident s’est produit 500 mètres en amont de leur position. Selon la gravité de l’accident, le second niveau se met en action signalant ainsi l’arrivée imminente des secours. Enfin, la troisième étape concerne la position des secours.

En effet, lorsque l’on entend la sirène, il faut pratiquement attendre le dernier moment pour s’écarter. Désormais avec l’eCall Plus, les véhicules de secours sont capables d’envoyer leur position qui apparaît sur l’écran connecté des véhicules se trouvant devant. Ainsi prévenus, ces derniers peuvent en toute connaissance de cause se déplacer sur la voie adéquate histoire de « faciliter la mise en œuvre d’un ‘couloir de secours’ »  car il a été prouvé que si les secours arriveraient 4 minutes plus tôt, il y aurait presque 40% de victimes en moins dans des accidents de la circulation.

Pour développer ce prototype, Ford s’est associer a Vodafone pour tenter de connecter les voitures entre-elles. Ce dernier est présenté dans le cadre du KoMoD, un programme allemand conçu pour mettre en place des tests concrets sur des véhicules connectés et la conduite autonome.

Déjà une faille découverte ?

Le 24 Septembre dernier, la dernière version de macOS (10.14) appelée « Mojave », a été rendu disponible au public.

Cela n’aura pas duré longtemps pour que des failles de sécurité soient découvertes. Patrick Wardle, directeur de la recherche en sécurité chez Digita Security, a découvert en seulement quelques heures, la faille pour dérober les contacts d’une personne. Il a par la suite relayé dans un tweet la vidéo présentant comment il a contourné cette sécurité.

Pour cela, celui-ci a utilisé une application ne disposant pas de la permission (en principe indispensable) de l’utilisateur pour accéder a ses données personnelles. Patrick Wardle a prévu de dévoiler les détails de la faille découverte à l’occasion d’une conférence de sécurité qui se déroulera au mois de novembre prochain. Il a toutefois précisé qu’il ne s’agit pas d’un bug universel.

Patrick Wardle explique vouloir contacter Apple, afin de leur communiquer les détails de la vulnérabilité pour ainsi mettre au point une correction appropriée.

 

Sources :

 

Les 10 ans D’Android.

Un projet open-source et gratuit.

Le gros point fort d’Android vient du fait qu’il utilise le noyau Linux et est un système libre. Contrairement à Windows ou Mac OSX, vous pouvez à tout moment consulter le code source (qui, une fois compilé, donne l’O.S.), le télécharger, l’adapter… bref, vous avez un véritable droit de regard et de modification sur la manière dont est fait Android et comment il fonctionne.

2008 le premier téléphone Android.

Sorti le 23 septembre 2008, le tout premier mobile Android  : le T-Mobile G1  équipé d’un écran basse résolution (320 x 480 pixels), sans clavier virtuel car il  avait un clavier coulissant .

Les versions d’Android du Cupcake au Oreo.

Le système de Google n’aurait pas connu un tel succès s’il était resté le même en dix ans. C’est là que l’on voit la puissance d’un tel OS qui a su s’adapter aux besoins des utilisateurs à chaque version majeure au nombre de huit a se jour.

 

Ordre d’empilement des éléments en CSS

Empiler des éléments dans l’ordre souhaité en CSS pourrait paraître facile avec z-index, on pourrait supposer qu’un z-index plus élevé permet d’afficher un élément devant ceux qui en possède un plus faible, mais les choses ne sont pas aussi simples que ça.

Quand les propriétés position et z-index ne sont pas utilisées, l’ordre d’empilement des éléments est simplement le même que l’ordre du HTML; mais si l’on utilise une position autre que static sur un élément, celui-ci et ceux qu’il contient vont s’afficher par dessus les autres éléments.

Avec z-index les choses se compliquent. Premièrement cela ne fonctionne que sur les éléments positionnés mais cela peut également créer des contextes d’empilements.

Contextes d’empilement

Les groupes d’éléments ayant un parent commun et qui bougent ensemble dans l’ordre d’empilement forment des contextes d’empilement. L’élément racine de ces contextes d’empilement est la clé pour bien positionner nos éléments dans l’ordre d’empilement global. Si cet élément racine est positionné derrière tous les autres éléments dans l’ordre global, ses éléments enfants n’ont aucun moyen d’être affichés par dessus d’autres éléments plus haut dans l’ordre d’empilement, et ce même avec un z-index bien supérieur.

De nouveaux contextes d’empilement sont créés lorsque l’on positionne des éléments (position autre que static), lorsqu’un élément a une opacité inférieure à 1 et lorsque l’on utilise des transforms, filters et autre propriétés qui viennent affecter le rendu d’un élément.

Déterminer l’ordre d’empilement

Au sein d’un même contexte

Voici les règles de base d’ordre d’affichage des éléments dans un même contexte :

      Élément racine du contexte
      Éléments positionnés et avec un z-index négatif
      Éléments non positionnés
      Éléments positionnés avec un z-index auto
      Éléments positionnés avec un z-index positif

Ordre global d’empilement

La clé ici est de savoir repérer quand un contexte d’empilement est créé afin de positionner correctement l’élément racine de ce contexte. Si vous jouer avec le z-index d’un élément et qu’il ne bouge pas dans l’ordre d’affichage, c’est certainement qu’il appartient à un contexte d’empilement, regardez alors quel élément parent crée ce contexte afin de la positionner de manière appropriée.

Source :philipwalton.com/articles/what-no-one-told-you-about-z-index/

La Programmation ? Un jeu d’enfant avec Scratch !

Bon, de quoi vais-je bien pouvoir parler aujourd’hui…? Et si je vous parlais de Scratch? Non, pas Scrat dans l’âge de glace. Scratch. Vous allez voir, c’est simple comme tout.
Logo Scratch

Scratch est un logiciel libre, basé sur le langage de programmation Smalltalk qui est un langage orienté objet. Sa première version est sortie en 2003 et la version 3.0 est prévue pour début 2019. C’est un projet du groupe Lifelong Kindergarten au MIT Media Lab. Son but est d’enseigner de manière intuitive la programmation aux enfants (entre 8 et 16 ans).

Interface Scratch

Ce logiciel divise le code en différentes catégories permettant de choisir plus en détails ce que l’on souhaite réaliser. La partie contrôle afin de décider à quel moment se produira telle chose. Les mouvements pour décider de ce que fera l’objet, comment il bougera et où par exemple. Ou encore les sons, afin d’intégrer les médias (effets sonores, musiques, etc.). De plus, chacune de ces parties possèdent une couleur spécifique, permettant aux enfants d’associer les différentes actions à ces couleurs.

Scratch leur permet de découvrir la programmation de manière simplifiée, mais ce n’est pas tout. Il leur permet surtout de développer leur créativité, leur capacité à résoudre des problèmes et à communiquer des idées. Chacun des projets peut être réaliser de manière collaborative et partager en ligne.

Il est aujourd’hui utilisé dans plus de 150 pays et est traduit dans plus de 40 langues. Avec Scratch on peut en apprendre à tous les niveaux (du primaire jusqu’à l’université) ce qui fait que beaucoup de monde l’utilise, y compris des adultes autre que des enseignants. Parents et enfants découvrent ensemble la programmation en s’amusant.

N’hésitez pas à vous rendre sur le site de Scratch pour trouver de plus amples informations. Ou même si vous voulez vous y essayer.

L’incontournable VanillaJS

VanillaJS est un « faux » framework Javascript, sans bibliothèque, connu pour sa puissance et sa vitesse d’exécution incomparables. Doté d’une grande souplesse, il permet de tout faire tout en gardant une légèreté très appréciable lors du chargement de la page. Que vous souhaitiez intégrer des bibliothèques de gestion de tableau, des chaînes de caractère, des canvas, des évènements ou encore effectuer la gestion des DOM, vous n’aurez plus à vous soucier de leur compatibilité puisqu’il est correctement lu par tous les navigateurs depuis IE9. Très simple d’utilisation, Vanilla JS se présente comme le remplaçant direct de jQuery dont il est d’ailleurs à l’origine.

EN PRATIQUE ?

La puissance de VanillaJS réside dans le fait que l’utilisateur l’a déjà chargé en mémoire avant même que la moindre requête HTTP n’ait été faite à votre serveur. Il est même intégré dans les navigateurs. Plus performant que jQuery, il possède un large panel d’opérations spéciales rendant le DOM ultra complet. Pour ceux qui sont habitués à jQuery, il existe des tables de correspondances pour les fonctions les plus utilisées et leur version VanillaJS (https://gist.github.com/liamcurry/2597326).

Il permet ainsi d’intégrer une « méthode » Javascript adaptée sans rendre plus lourde que nécessaire une page web, qui n’aurait besoin que de quelques fonctionnalités. Dans ce cas présent, utiliser jQuery ne rendra pas optimale la navigation sur mobile par exemple. Avec VanillaJS, on revient simplement au Javascript pur. Et en terme de rapidité, le constat est sans appel. Un « document.getElementById() ; » est 35 fois plus rapide en JS pur qu’en jQuery et le rapport pour un « document.getElementByTagName() ; » est de 425 fois ! Même s’il sera plus long à écrire, rien ne vaut un code fait main qui sera plus efficace et moins lourd à charger (pas de code inutile).

Popularisé fin 2012, les plus gros tels que les GAFA, Youtube, Twitter ou encore LinkedIn ont fait le choix d’utiliser VanillaJS. Alors qu’attendez-vous ?

Sources : Blog du Webdesign, Blog Lesieur, OpenClassrooms