Page 11 of 12

JavaScript : Comment trier une liste et l’afficher sur une page web ?

Lors d’un précédent billet, je vous avais présenté une méthode pour trier une liste en JavaScript. A l’époque, la sortie se faisait via la console. Dans la vraie vie du développeur Front, on affiche rarement le résultat sur la console (sauf pour débuguer).

Aussi, avec ce nouvel article je vais vous montrer comment effectuer les mêmes tris mais avec un affichage sur une page web.

Pour que ce soit joli, je vais utiliser Bootstrap pour donner un aspect sympathique à l’affichage.

Structure HTML de la page

Coté structure de la page en HTML, on reprend la base du dernier exemple avec les deux boutons permettant d’afficher le trie par âge et le trie par nom des personnages de notre jeu (reprise de l’exemple).

Puis on prépare l’espace où on affichera le résultat après chaque clic sur l’un ou l’autre bouton de choix. L’id utilisé pour cette sortie se nomme  » résultat  » :

<div class="container-fluid">
    <h2>Trier en javaScript</h2>
    <button type="button" class="btn btn-primary btn-sm" onclick="sortName()">Par Prénom</button>
    <button type="button" class="btn btn-secondary btn-sm" onclick="sortAge()">Par Age</button>

    <h3>Résultat</h3>
    <div>
        <div class="row">
            <div class="col-12 col-md-4">
                <div id="resultat"></div>
            </div>
            <div class="col-12 col-md-8">
            </div>
        </div>
    </div>
</div>

Côté JavaScript

On retrouve notre fière équipe avec ses caractéristiques. C’est juste un prétexte pour disposer de chaînes de caractères (String) et de nombres à trier pour notre exemple de trie avec JavaScript :

var warrior=[ 
    { name: "Kraken", age: 21, weapon: "arc" },
    { name: "Améria", age: 27, weapon: "fusil" },
    { name: "Narfy", age: 25, weapon: "couteau" },
    { name: "Golïm", age: 17, weapon: "poignard" },
    { name: "Fôrfiot", age: 18, weapon: "lance-flamme" },
    { name: "Nolülf", age: 23, weapon: "hache" },
    { name: "Joliett", age: 22, weapon: "bazooka" }
];

Fonction affichage tableau

En JavaScript, on va passer par une fonction qui a pour mission de générer l’affichage du résultat du trie sous forme de tableau à l’emplacement repéré par l’id défini nommé  » resultat  » (vu au-dessus).

Vous repérez facilement les balises HTML mentionnées dans cette fonction pour constituer le tableau de données triées :

function display(i) {
    console.log(i);
    var html = document.getElementById('resultat').innerHTML;
    html = html + "<table class='table table-striped'>";
    html = html + "<thead class='thead-inverse'><tr>";
    html = html + "<th scope='col'>Nom</th><th scope='col'>Age</th><th scope='col'>Arme</th>";
    html = html + "</thead></tr>";
    html = html + "<tbody>";
    warrior.forEach(function (warrior) {
        html = html + "<tr>";
        html = html + "<td>" + warrior.name + "</td><td>" + warrior.age + "</td><td>" + warrior.weapon + "</td>";
        html = html + "</tr>";
    }) html = html + "</tbody>";
    html = html + "</table>";
    document.getElementById('resultat').innerHTML = html;
}

Trier des nombres

Ici rien de nouveau sous le soleil car on reprend tout simplement la fonction de la dernière fois pour trier par âge :

function sortAge() {
    document.getElementById('resultat').innerHTML = " ";
    var intro = "Trié par age croissant";
    warrior.sort(function (a, b) {
        return a.age - b.age;
    });
    display(intro);
}

Trier des String (chaînes de caractères)

De la même manière, on reprend tout simplement la fonction de la dernière fois pour trier par nom en utilisant la fonction sortName() :

function sortName() {
    document.getElementById('resultat').innerHTML = " ";
    var intro = "Trié par nom croissant";
    warrior.sort(function (a, b) {
        return a.name.localeCompare(b.name);
    });
    display(intro);
}

 

Et voilà le tour est joué !
Cette proposition de solution pour trier des données en JavaScript n’est évidemment pas la seule et unique possibilité. Vous pouvez très bien développer d’autres méthodes ou fonctions pour arriver au même résultat.

Comme j’adore échanger, vous pouvez laisser un commentaire ou partager votre avis ou méthode.

 

JavaScript : Comment trier une liste ?

Trier le contenu de listes est un exercice courant lorsqu’on développe des applications ou un site web. Aussi, si vous travaillez avec JavaScript, vous serez amené à utiliser la méthode sort() qui permet de trier les éléments d’un tableau. Ceci étant dit, trier des nombres fonctionne très bien avec cette méthode. Mais trier des chaînes de caractères peut vous apporter quelques surprises.

Je vous propose dans ce billet de vous présenter les deux possibilités : trier des nombres (facile) puis trier des chaînes de caractère.

On plante le décor

Avant de pouvoir s’amuser follement à trier en JavaScript, on besoin d’un peu de matière à manipuler. Imaginons un jeux de rôle avec de fiers guerriers caractérisés par un nom, un age et une arme :

var warriors= [
  { name: "Kraken", age: 21, weapon: "arc" },
  { name: "Améria", age: 27, weapon: "fusil" },
  { name: "Narfy", age: 25, weapon: "couteau" },
  { name: "Golïm", age: 17, weapon: "poignard" },
  { name: "Fôrfiot", age: 18, weapon: "lance-flamme" },
  { name: "Joliett", age: 22, weapon: "bazooka" }
];

Nous allons utiliser un affichage du résultat directement sur la console : je vous entends déjà vous esclaffer : « il ne se foule pas trop le gars 😉 ».
Et bien oui, et j’en suis fière.

De toute façon, une fois la méthode comprise, vous pouvez adapter ce script pour répondre à vos souhaits les plus fous…

Bref, revenons à nos lignes de codes : je vous propose d’utiliser une fonction qui aura pour mission d’afficher le résultat du tri.
L’utilisation d’une fonction permet d’éviter de recopier la même portion de code à de nombreux endroits (Cool !) :

function display(i) {
    console.log(i);
    for (i = 0; i < warriors.length; i++) {
        console.log(warriors[i].name + " a " + warriors[i].age + " ans et est équipé d'un " + warriors[i].weapon);
    }
}

Dans le corps de votre page HTML, on va ajouter deux boutons qui permettrons de lancer le tri par age et le tri par nom. A chaque bouton on associe une action qui lance la fonction ad hoc.
Jusque là tout va bien…

<h2>Trier en javaScript</h2> 
<button type="button">Par Prénom</button> 
<button type="button">Par Age</button>

Voyons de plus près ces jolies fonctions :

Trier des nombres

Comme annoncé en début de billet, la méthode sort() fait très bien le boulot et trier l’age de nos valeureux guerriers est un jeux d’enfants :

function sortAge() {
    warriors.sort(function (a, b) {
        return a.age - b.age;
    });
    display(intro);
}

Trier des chaînes de caractères (String)

Trier des chaînes de caractères (String) pose des soucis car le tri s’effectue par défaut selon les points de code Unicode de la chaine de caractères.
Oui mais encore…

Typiquement, cela veut dire que chaque caractère est converti en son code Unicode qui sert à faire le tri.
On peut se retrouver devant un résultat retourner par la machine qui peut laisser perplexe l’être humain que nous sommes : « Cian » sera trié avant « bleu ». Dans un tri numérique, 9 sera trié avant 80, mais comme ces nombres sont convertis en chaînes de caractères, « 80 » arrive avant « 9 » selon l’ordre Unicode.

Notre fonction qui tri par nom les courageux guerriers se traduit comme suit :

function sortName() {
    warriors.sort(function (a, b) {
        var nameA = a.name.toUpperCase();
        var nameB = b.name.toUpperCase();
        if (nameA < nameB) {
            return -1;
        }
        if (nameA > nameB) {
            return 1;
        }
        return 0;
    });
    display(intro);
}

Pour donner un coup de main à la fonction de tri, on passe par une transformation des lettres en majuscules (tous les mots sont logés à la même enseigne…).

reTada ! Quel beau tri par nom, n’est-ce pas ?

Et voilà le tour est joué !
Alors sautez sur votre éditeur de code préféré pour mettre en application le trie de données en JavaScript.

Cette proposition de solution pour trier des données en JavaScript n’est évidemment pas la seule et unique possibilité. Vous pouvez très bien développer d’autres méthodes ou fonctions pour arriver au même résultat. Comme j’adore échanger, vous pouvez laisser un commentaire ou partager votre avis ou méthode.

Développeur, comment progresser dans votre métier ?

À quoi les développeurs doivent-ils penser pour progresser dans leur métier alors que les Technologies de l’Information continuent d’évoluer à un rythme incroyable ?

Concentrez-vous à la fois sur les compétences techniques et non techniques. Vous aurez besoin des deux car l’évolution continue. Comme pour toute discipline qui exige un niveau d’excellence, vous devez aller au-delà de ce que vous avez appris à l’école.

C’est particulièrement vrai en informatique étant donné que tant de choses ont changé depuis que vous êtes sorti de l’école. Les principes de gestion des données et les coûts de stockage ont basculés avec l’avènement du big data et du cloud.

Les développeurs de logiciels doivent également sensible au marketing d’entreprise. Il doivent, par exemple, se poser les questions suivantes :

  • Quel est le problème que j’essaie de résoudre ?
  • Comment ce que je construis sera monétisé ?

Comment définir les priorités pour être un meilleur développeur ?

  • Aiguisez votre esprit et vos compétences ;
  • Soyez focus sur la sécurité. Ceci est important pour vous et votre entreprise. La gestion des identités est un problème important aujourd’hui ;
  • Lancez-vous dans l’apprentissage de nouvelles langues pour rester pertinent ;
  • Il est difficile de suivre toutes les évolutions, mais restez sur vos gardes, ayez faim et réfléchissez à ce que vous pouvez faire aujourd’hui que vous ne pouviez pas faire hier.

Beaucoup de portes s’ouvrent vers de nouveaux univers. Décidez quelles sont celles qui valent la peine d’être ouvertes.

Que pensez-vous de la construction d’un produit destiné aux développeurs ?

Voici une opportunité pour aider les développeurs à se mettre à l’avant-garde. AWS Lambda et serverless déploient le code dans un paradigme totalement différent. Les développeurs d’applications doivent continuer à apprendre pour suivre le rythme des changements. Chaque personne a sa propre façon de consommer de l’information – Elle doit apparaitre aussi facile d’accès et attrayante que possible.

Où obtenir des informations sur ce qui se passe dans l’informatique ?

  • Passer du temps en dehors de 9h à 17h pour explorer et essayer de nouvelles choses ;
  • Juste essayer des choses. Il y a beaucoup de modes. Il faut essayer de comprendre ce qui est réel et ce qui relève du buzz ;
  • Comme la plupart des développeurs, qui ont travaillés avec la technologie Flash pour concevoir des animations ou des mondes en 3D. Des mois ont été investit en apprentissage et Adobe a fini par tuer son produit. Steve Jobs a déclaré la guerre à Flash et à donner le coup de grâce en interdisant Flash dans les produits Apple. Vous devez être prêt à changer d’orientation et à reconstruire des applications.

C’est pourquoi j’aime l’open source.

Il y a moins d’occasions de se faire brûler les ailes. Lorsque vous mettez fin à la vie d’un produit ou d’une technologie, vous laissez les développeurs sur le carreau.

Quels sont les sujets inspirants et motivants ?

  • Certaines des meilleures solutions open source ont été construites parce qu’il y avait une passion et un problème à résoudre plutôt qu’un désir de gagner de l’argent ;
  • L’humain doit être placé au cœur de chaque application (comment mon application peut aider mon prochain ?) ;
  • Plus le développeur peut se concentrer sur UX et UI, meilleure sera l’application (est que mon application est intuitive et facile à utiliser ?).

Application mobile : Frais kilométriques

Aperto App - Indemnités kilométriques - Projet personnel développé en Flutter pour iPhone et Android

Présentation de l’app. mobile

Optimisez la gestion de vos frais kilométriques avec FraisKilo, votre allié intelligent pour le calcul précis des coûts liés à vos déplacements professionnels. Notre application simplifie le processus en se basant sur le barème officiel de l’URSSAF, garantissant une conformité totale.

Caractéristiques Clés

  1. Calcul Précis : FraisKilo utilise le barème officiel de l’URSSAF pour assurer des calculs précis des frais kilométriques, prenant en compte la puissance du véhicule et le nombre de kilomètres parcourus.
  2. Personnalisation Facile : Saisissez simplement la puissance de votre véhicule et le nombre de kilomètres, et laissez FraisKilo faire le reste. L’application s’adapte à vos caractéristiques spécifiques pour des résultats individualisés.
  3. Gain de Temps : Oubliez les calculs manuels fastidieux. FraisKilo automatise le processus, vous permettant de consacrer votre temps à des tâches plus importantes.
  4. Suivi Efficace : Gardez une trace de vos dépenses kilométriques avec facilité. FraisKilo vous offre un suivi clair et organisé de toutes vos données de déplacement.
  5. Conformité Assurée : Avec FraisKilo, vous bénéficiez de la certitude d’une conformité totale aux normes fiscales et aux barèmes officiels, évitant ainsi les erreurs coûteuses.

Soyez maître de vos dépenses kilométriques avec FraisKilo. Téléchargez l’application dès aujourd’hui et transformez la gestion de vos déplacements professionnels. Simplifiez, optimisez, et économisez avec FraisKilo Calculatrice.

Actualités de l’app. mobile

Mises à jour

  • 22 février 2019 – Conception du design et de la logique de calcul avec le langage de développement d’applications Flutter

Actualité sur les indemnités kilométriques

Publication sur les stores

  • Android – Google Play : app. mobile non publiée
  • iPhone – App Store : app. mobile non publiée

Informations techniques

  • Après la publication de mon billet sur le calcul des indemnités kilométriques, j’ai eu l’idée de développer une application mobile pour Android et iOS en utilisant le langage de développement Flutter.
  • Les sources du projets sont disponibles librement sur mon compte GitHub.

Frais professionnels : comment calculer les indemnités kilométriques ?

Vous utilisez votre véhicule personnel pour effectuer des trajets professionnels, vous pouvez prétendre à des indemnités kilométriques. Que vous soyez salarié d’une entreprise, entrepreneur individuel imposé à l’impôt sur le revenu ou dirigeant de société, les conditions d’application et les règles de calcul vont vous intéressés. Dans ce billet, nous allons voir comment calculer vos indemnités kilométriques.

Que dit l’URSSAF ?

Lorsque le salarié doit utiliser son véhicule personnel pour son activité professionnelle, l’employeur peut lui verser des allocations forfaitaires pour l’indemniser.
Ces allocations peuvent être exonérées de cotisations sociales dans la limite des montants fixés par le barème fiscal des indemnités kilométriques.

Indemnités kilométriques pour voiture

Le barème fiscal des indemnités kilométriques permet l’évaluation des frais de déplacement relatifs à l’utilisation d’un véhicule par les salariés optant pour le régime des frais réels déductibles. Ce barème applicable pour les années 2014, 2015 et 2016 est maintenu pour l’imposition des revenus de l’année 2017 (Bulletin Officiel des Finances Publiques- Impôts du 24/01/2018).

Kilométrage parcouru à titre professionnel
Puissance fiscale Jusqu’à 5 000 km De 5 001 à 20 000 km Au-delà de 20 000 km
3 cv et moins d x 0,410 (d x 0,245) + 824 d x 0,286
4 cv d x 0,493 (d x 0,277) + 1 082 d x 0,332
5 cv d x 0,543 (d x 0,305) + 1 188 d x 0,364
6 cv d x 0,568 (d x 0,320) + 1 244 d x 0,382
7 cv et plus d x 0,595 (d x 0,337) + 1 288 d x 0,401

d = distance parcourue à titre professionnel en km

Exemple de calculs

Pierre doit se rendre à une journée de formation sur Paris (75) depuis son lieu de travail habituel, Chartres (28).
Son employeur lui demande d’effectuer le trajet avec son véhicule personnel. Pierre possède une automobile ayant une puissance fiscale de 5 cv.
Pour déterminer le montant de l’indemnité kilométrique qui lui sera payée par son employeur, Pierre évalue la distance grâce au site web Mappy.
Ce qui donne :

  • Nombre de kilomètres : 88
  • Indemnité au kilomètre : 0,543
  • Montant de l’indemnité pour 1 trajet : 47,78 €
  • Montant total de l’indemnisation : 95,57 €

Que couvre l’indemnité km URSSAF ?

Dépenses concernées

Le barème kilométrique couvre :

  • la dépréciation du véhicule (amortissement) ;
  • les dépenses courantes d’entretien et de réparation, y compris les frais de pneumatiques ;
  • les frais de carburant ;
  • les taxes et primes d’assurances.

Il ne couvre pas :

  • les frais de stationnement (location de parking, horodateurs, etc…) ;
  • les intérêts des emprunts contractés pour l’acquisition du véhicule ;
  • les frais de réparation imprévus (accidents, etc.), sauf si cet imprévu est lié à un déplacement professionnel.

Ces trois postes de frais peuvent donc s’ajouter au montant de la déduction calculée à partir du barème kilométrique. A condition naturellement de produire les justificatifs et de les “proratiser” en fonction du kilométrage parcouru à titre professionnel.

Pour en savoir plus sur les frais professionnels véhicule.

Machine Learning et Intelligence Artificielle à Tours – Meetup #1

Le 24 avril dernier, j’ai assisté à Tours au premier meetup consacré à l’Intelligence Artificielle et au Machine Learning sur le thème « Découvrir le Machine Learning et les ressources pour se former » animé par Jacqueline FORIEN, ingénieur UTC en Génie Informatique et diplômée d’University College London en Machine Learning.

Au programme de ce meetup

  • Présentation de la recherche en Intelligence Artificielle à l’université de Tours par M. Hubert Cardot, directeur de l’école doctorale MIPTIS ;
  • Présentation du Machine Learning et de quelques ressources pour se former par Jacqueline Forien ;
  • Interview de Laurent Cetinsoy, formateur référent de la nouvelle école IA Microsoft France ;
  • Interview de Franck Bardol, créateur avec Igor Carron, du Paris Machine Learning Applications Meetup (7000 membres).

Notes : Machine Learning et IA

Je profite de ce billet pour partager une restitution et quelques compléments basés sur mes notes.

Définition de l’Intelligence Artificielle

Pour Yann LeCun : « On pourrait dire que l’intelligence artificielle (IA) est un ensemble de techniques permettant à des machines d’accomplir des tâches et de résoudre des problèmes normalement réservés aux humains et à certains animaux. »

Définition du Machine Learning

Toujours pour Yann LeCun : L’apprentissage automatique (en anglais machine learning, littéralement  « l’apprentissage machine ») ou apprentissage statistique, champ d’étude de l’intelligence artificielle, concerne la conception, l’analyse, le développement et l’implémentation de méthodes permettant à une machine (au sens large) d’évoluer par un processus systématique, et ainsi de remplir des tâches difficiles ou problématiques par des moyens algorithmiques plus classiques.

Différents types d’apprentissage

  • L’apprentissage supervisé
  • La prédiction
  • L’apprentissage non supervisé
  • L’apprentissage par renforcement
  • L’apprentissage par transfert
  • Apprentissage profond et réseaux neuronaux

Bibliothèques dédiées au Machine Learning

  • Scikit-learn : Machine Learning in Python
  • Keras : The Python Deep Learning library

L’importance des données

Le point de départ de toute stratégie en intelligence artificielle tient ainsi en la constitution de large corpus de données.

  • Mise à disposition de data :
    en 2017, l’Union Européenne a financé une étude qui établissait que 90% des entreprises interrogées affirmaient ne pas partager leurs données avec d’autres entreprises. Et ce même à l’intérieur de leur propre organisation. Ces silos organisationnels constituent un frein au développement du big data.
  • L‘intelligence artificielle dans le contexte du RGPD :
    l’Union européenne défini avec ce règlement l’encadrement juridique de la collecte, la conservation, le traitement et la sécurisation des données personnelles collectées auprès de ses résidents. Le domaine de l’intelligence artificielle et du machine learning doit tenir compte de ces aspects juridiques dans le traitement l’usage des données à caractère privé.

Se former au Machine Learning et à l’IA

  • Les MOOC : Massive Open Online Course ;
  • Les meetups, les hackathons, les communautés ;

La mission Villani pour l’Intelligence Artificielle

Une chance exceptionnelle pour la France et l’intelligence artificielle !

Rapport Villani : « Donner un sens à l’Intelligence Artificielle pour une stratégie nationale et européenne »

Prochain rendez-vous

Le prochain meetup sur le Machine Learning et l’intelligence Artificielle est programmé pour le 23 mai 2018 de 18h30 à 21h sur le site de Mame (49 rue du Boulevard Preuilly à Tours).

Au programme, la retransmission sur Tours et Blois de la présentation de Juergen Schmidhuber qui compte beaucoup pour toute la communauté de l’Intelligence Artificielle. Cette intervention sera suivie d’une session de questions/réponses avec Juergen.

Voici le descriptif de sa présentation qui s’effectuera en anglais :

  • Juergen Schmidhuber, Deep Recurrent Neural Models (LSTM) ;
  • Deep Recurrent Neural Models, Its origine, its present day impact and uses and, its future ;
  • This talk would be followed by 20-30 minutes of questions and discussion with the audience.

Sur le site personnel de Juergen Schmidhuber vous retrouverez une compilation exceptionnelle de ressources en intelligence artificielle.

Autres liens

 

MOOC au CNAM : Formation au RGPD et la Protection des données personnelles

Dès 2012, face au développement de l’exploitation en masse des données (Big data), l’Union européenne a mené une réflexion sur l’encadrement juridique de la collecte, la conservation, le traitement et la sécurisation des données personnelles collectées auprès de ses résidents. Le Règlement général sur la protection des données (RGPD) est adopté en 2016 par le Parlement européen.

Le 25 mai 2018, les entreprises devront être en conformité avec le Règlement général sur la protection des données des résidents de l’Union Européenne. Ce texte européen a pour vocation de s’adapter aux nouvelles réalités du numérique en renforçant les droits des citoyens européens. Le RGPD impacte l’ensemble des acteurs proposant des biens et services sur le marché européen quel que soit la taille et le métier de l’Organisation détenant des données personnelles.

Les principes du règlement

  • Chacun peut désormais avoir accès à ses propres données et a le droit de les modifier, mais aussi de s’opposer à leur utilisation, notamment commerciale (récupération de ses données, droit d’accès, droit de rectification, droit à l’oubli, protection des mineurs) ;
  • Les entreprises doivent demander la permission à chacun en expliquant la légitimité de l’utilisation des données personnelles : demande de consentement, suppression des données au-delà d’un certain délai, choix d’un délégué à la protection des données (DPD). Le RGPD concerne aussi bien les entreprises européennes que non européennes, même celles qui n’ont pas d’activité sur Internet ;
  • Des sanctions harmonisées sur le territoire européen à l’encontre des entreprises et organisations ne faisant pas les efforts demandés en matière de cybersécurité de protection des données détenues. Une amende pouvant s’élever à 4% du chiffre d’affaires mondial de l’entreprise ou 20 millions d’euros en l’absence de revenus ;
  • Les autorités des données personnelles des différents pays de l’Union Européenne ont pour mission d’accompagner les entreprises et les organisations pour la mise en conformité.

Un MOOC pour sensibiliser au nouveau droit

Le CNAM via la plateforme en ligne FUN (France Université Numérique) diffuse un MOOC sur la Protection des données personnelles en intégrant le nouveau droit et le RGPD. Il s’agit d’une formation en ligne de 6 semaines ouverte du 23 avril 2018 au 03 juillet 2018.

Le cours a pour vocation de sensibiliser les professionnels sur leurs obligations en matière de données personnelles. Il s’adresse également au grand public sur les règlements et recours applicables à la protection de leurs données détenues par des tiers.

Animé par Guillaume DESGENS-PASANAU (Magistrat – Maître de conférences au CNAM – Ancien directeur juridique de la CNIL), ce MOOC présente et partage l’expérience et les conseils de nombreux professionnels du secteur de la « privacy ».

Plan du cours

  • Fondamentaux et concepts-clé de la réglementation ;
  • Régulation au niveau français, européen et international ;
  • Sécurité et confidentialité des données ;
  • Le délégué à la protection des données (DPD) ;
  • Protéger la vie privée au quotidien

Vous pouvez vous inscrire gratuitement à la plateforme FUN et suivre ce MOOC sur la protection des données personnelles et le nouveau droit européen.

Complément

 

Édito de janvier 2018 – Quelles résolutions ?

Ça y est 2018 est arrivé laissant derrière nous 2017. Cette période est souvent propice à la réflexion et à la prise de nouvelles résolutions.
Avez-vous décidé quelles nouvelles habitudes ou changements vous allez engager ?

De mon côté j’aime bien faire un zoom sur l’année passée et faire une mini projection sur celle qui s’annonce. Je vous livre mon édito de janvier 2018 :

Récapitulatif de 2017

Sans vouloir faire un billet « égocentré », 2017 a été une année riche en rencontres professionnels et en changements :

Fin de formation et nouveau job

Il y a tout juste un an, j’étais en formation Développeur Java EE à M2i à Tours ce qui m’a permis de rencontrer le monde des ESN de la région. A l’issue de cette formation, plusieurs entreprises m’ont proposé un poste et j’ai eu la chance de pouvoir faire mon choix.
Il faut bien avouer que c’est bien agréable…

Rester en forme

L’année qui vient de se terminer m’a fait rechausser mes chaussures de running et je me suis tenu à quelques sorties par semaine. Je ne cherche pas à exploser les chronos mais à renouer avec le plaisir de me bouger tout en surveillant mes indicateurs grâce à une montre connectée.
Cette reprise d’activité m’a donné envie d’écrire un billet comparatif des 3 applications que j’ai testé dans mes sorties running. C’est d’ailleurs l’article le plus lu sur mon blog pour 2017.

Ralentir le pistage sur le Net

En 2017, j’ai abandonné Google pour faire mes recherches sur le Net.
Après avoir essayé le moteur de recherche français Qwant pendant plusieurs jours, j’ai adopté le moteur DuckDuckGo qui ne collecte pas les informations personnelles afin de les partager avec des tiers. Les résultats sont très proches de ceux retournés par Google (les publicités en moins).

Résolutions 2018

L’euphorie du passage à la nouvelle année ne m’a jamais fait bercé dans la prise de Bonnes résolutions à gogo. J’essaie de ne rien m’imposer ça vient naturellement :

Reprendre la main sur le blog

En 2017, j’ai publié 8 articles ce qui n’est pas énorme, je l’avoue. Les publications les plus consultées sont principalement techniques.
En 2018, je compte réfléchir à la future ligne éditoriale : continuer à publier des articles liés au développement ou rédiger plus de billets autour de la conduite de projet, de management et de marketing.

Obtenir une certification

Grâce au CNAM, j’ai engagé un cursus en management permettant de compléter mes connaissances en gestion d’entreprise, marketing et RH.
Je pense que l’apprentissage permet de prendre du recul sur une matière en permettant d’adapter ses actions en tenant compte des dernières avancées sur le sujet. L’acquisition de nouvelle compétence permet d’évoluer professionnellement et personnellement.
Avez-vous pensé à suivre une formation en 2018 ?

Travailler sur un projet perso

Ces deux dernières années, pour préparer des changements professionnels, je n’ai pas organisé mon temps pour y glisser un projet personnel.
Pour 2018, de nouveaux changements sont engagés mais je prévois de travailler sur un projet personnel qui me tient à cœur et qui me permettra de faire progresser mes bases en développement d’applications (stay tuned).
Avez-vous fait une place pour vos projets personnels en 2018 ?

Et vous ?

Et vous, quel est votre Top 3 des résolutions pour 2018 ?
J’en profite pour vous souhaiter une excellente année et tous mes vœux de santé et de bonheur…

Formation : Management Opérationnel au CNAM

Je sors tout juste du CNAM de Tours et je viens de m’inscrire au cursus « Certificat de Compétence Management Opérationnel » pour l’année 2017-2018.

Logo du CNAMJ’avais envie de me replonger dans les concepts du Management d’entreprise, du Marketing et de la Gestion des Ressources Humaines. En effet, après plusieurs années ou j’ai suivis des formations et je me suis auto-formé aux Technologies de l’information et au Développement d’applications informatique je souhaitais revenir à mes premiers centre d’intérêts. Dans mon cursus scolaire, j’aimais les sciences économiques et la gestion d’entreprise. C’est une manière de lier ces deux passions.

Cursus Management Opérationnel au CNAM

L’objectif de ce cursus est pour moi de devenir un peu plus opérationnel en management d’entreprise et en gestion d’équipe et de projet.

Même si aujourd’hui, ma mission de « Pilotage Domaine & Suivi de Production » pour le domaine de la Gestion Relations Adhérents à la MGEN Technologies n’englobe pas de management opérationnel, delà me permettra de préparer d’autres missions orientées Gestion de projets. Les aspects Marketing utilisant de plus en plus la data, les UE Mercatique vont me permettre d’appréhender et de mieux utiliser ces leviers à l’avenir. Un peu de théorie ne me fera pas de mal 😉 même si je me tiens informé sur ce domaine depuis longtemps…

J’ai déjà une expérience significative en management d’entreprise (6 années à mon compte), en gestion de projets (pilotage de projets informatiques et digitaux)  et de Manager d’équipes (de 3 à 20 personnes dans diverses expériences professionnelles).

C’est avant tout pour moi, une remise à niveau sur les concepts que je ne connais pas forcément puisque j’ai une connaissance plutôt empirique de ces domaines :

  • MSE146 : Principes généraux et outils du management d’entreprise ;
  • ESC101 : Mercatique I : Les Etudes de marché et les nouveaux enjeux de la Data ;
  • ESC102 : Mercatique II : Stratégie marketing ;
  • EME104 : Gestion des hommes I

J’ai créé une carte heuristique pour visualiser le cursus complet du Certificat de Compétence Management Opérationnel au CNAM :

Cursus Management Opérationnel au CNAM

Cursus Management Opérationnel au CNAM

Le cursus du CNAM se déroule en dehors des heures de travail et j’espère pouvoir mener à bien ce projet qui va demander un investissement en temps mais je suis motivé 😉

Le certificat de compétence est délivré si j’obtiens au minimum 10/20 de moyenne pour les Unités d’Enseignement. Il ne doit pas y avoir de note inférieure à 8/20 pour une UE dans un délai maximum de 4 ans.

J’ai également un mémoire à rédiger en fin de cursus pour valider le Certificat de Compétence. Ce dernier doit être composé de 10 et 20 pages et doit porter sur une expérience de management opérationnelle ou une étude relative à un des modules du certificat. L’évaluation de ce mémoire se fait par l’enseignant de la matière concernée ou le responsable du certificat en région.

Je pense que mon mémoire aura pour sujet « Les impacts de la digitalisation sur le Management opérationnel » mais cette idée sera affinée au fur et à mesure de l’avancée de cette formation.

Stay tuned…

En savoir plus :

 

3 applications pour vous accompagner dans vos sorties running

Une fois n’est pas coutume, je ne vais pas parler de transformation digitale, quoi que…
En fait, j’ai décidé avec l’arrivée des beaux jours de me bouger un peu plus. Et c’est tout naturellement que je profite de ce billet pour vous présenter les 3 applications mobiles qui m’accompagnent dans mes sorties running.

Moteur de motivation…

Je n’ai jamais été un mordu de la course à pied. Et à en croire l’historique de mes sorties running depuis 2013, je suis passé de 15 Km par an à 100 km pour 2017 (et l’année n’est pas finie). J’ai plutôt une vie sédentaire et je passe beaucoup de temps en position assise.
Il n’est pas nécessaire de préciser tous les bienfaits d’une activité physique régulière.

Enfin, bref, pour ne pas prendre le rythme, j’ai besoin de suivre mes sorties running et quoi de mieux qu’une application mobile à utiliser sur mon compagnon numérique…

Avant d’aller plus loin, je tiens à préciser deux points :

  • Je ne suis pas un performer (mes captures écran l’attestent) mais je vais m’améliorer, promis. 😉
  • La liste des applications mobiles présentée n’est évidemment pas exhaustive. Vous pouvez me faire découvrir votre application mobile préférée pour aller courir : j’adore les commentaires.

Endomondo – Running

J’ai commencé à utiliser Endomondo en 2013, d’abord pour des sorties en VTT puis pour suivre les quelques sessions de running. Comparé à d’autres applications mobiles de l’époque, j’ai été séduit par les statistiques présentées en plus de la distance et de la vitesse et par le fait qu’il n’y avait pas de bandeau publicitaire.

Le site web est également très riche en information et il a adopté très vite une dimension de réseau social dédié au sport. On peut facilement y retrouver et suivre les amis qui utilisent Endomondo.
Il est très facile de participer à des challenges. Par exemple « YOU vs YEAR » qui encourage à courir 1.017 km sur l’année 2017.

Endomondo l'application running mobile

La version Premium permet de supprimer les publicités, d’accéder à des statistiques complémentaires et de disposer de plans d’entrainement.

Personnellement, j’utilise la version Gratuite de l’application mobile qui est grandement suffisante pour suivre les « performances ». Le bandeau publicitaire n’est pas dérangeant sur un écran de 5 pouces ou plus. Cependant sur mon iPhone 5S, il limite un peu l’affichage de l’application. Par contre les auto-promo pour passer au Premium sont omniprésentes dès qu’on veut naviguer dans l’application. Ce qui peut agacer à la longue.

J’apprécie beaucoup cette application mobile sous Android ou iPhone, elle est fluide et précise et vraiment adaptée aux sportifs sans se limiter au running car elle couvre de multiples sports.

Decathlon Coach – Course à pied Jogging

En passant dans un magasin Decathlon près de chez moi, je suis tombé sur une information présentant l’application mobile Decathlon Coach et j’ai commencé à l’utiliser en avril 2016 pour suivre mes sorties running.

Dans les points positifs en plus des métrics habituels, je retiens la possibilité de disposer d’un retour vocal paramétrable suivant la distance ou la durée.
Par exemple, j’ai configuré un retour vocal tous les 0,5 km avec l’annonce de la distance et la vitesse moyenne.
Il est possible de choisir un retour vocal sur le chrono, la vitesse, l’allure, l’allure moyenne, les calories, les dénivelés +/- et si vous disposer d’un capteur : le cardio (bpm ou %).

Decathlon Coach l'application running mobile

Il n’y a pas de version Premium et contrairement à Endomondo, on accède directement à des programmes d’entrainement ou des conseils pour le running gratuitement.
On y retrouve plusieurs programmes d’entrainement avec des défis ou bien des plannings par rapport à des objectifs fixés (Ex : Courir 30 minutes en continu en 8 semaines) en choisissant le nombre de séances par semaine pour attendre l’objectif.

J’apprécie la simplicité de la prise en main de l’application, le retour vocal qui est d’autant plus utile lors de l’utilisation d’un programme d’entrainement avec un retour d’encouragement dans l’oreillette lorsque c’est nécessaire.

Sports Tracker

Sports Tracker est ma dernière découverte d’application mobile pour me suivre dans mes sorties running. Déjà coté design car j’ai un faible pour toute les interface sur fond noir.
La prise en main est très simple car il n’y a pas une foultitude d’options et de menu en tout genre.
Une fois l’objectif hebdomadaire configuré on est accueilli à l’ouverture de l’application par un visuel présentant l’objectif, le reste à réaliser, un petit graphe sur les sorties des 6 dernières semaines et un gros bouton « Commencer ». What else ?

Avec Sports Tracker, il n’y a pas de plan d’entrainement ni de coach par contre, à l’instar d’Endomondo, tout est fait pour le partage et l’émulation entre membres de la communauté.

Sport Tracker l'application running mobile

La version Premium apporte des cartes supplémentaires avec plus de précision : sentiers pédestres (OpenStreetMaps) et cyclables (OpenCycleMap). Ces cartes sont enrichies par les contributeurs de l’application mais également par tous les contributeurs de ces deux projets.
Cette version supprime également l’affichage des publicités qui ne sont pas très intrusives dans la version gratuite. Passer au Premium ne vous mettra pas sur la paille 😉

Petite conclusion

Toutes ces applications mobiles sont compatibles avec des accessoires complémentaires pour suivre l’activité cardiaque ou montre GPS (renseignez-vous toutefois à la compatibilité du matériel avec l’application choisie).

Voici mon petit tiercé dans l’ordre :

  1. Endomondo associé à son site web est une des applications les plus complète à condition de vous délester de quelque menue monnaie.
  2. Décathlon Coachn’affiche aucune publicité dans la version de base et offre des plans d’entrainement pour progresser avec un retour vocal.
  3. Sports Tracker : je n’ai pas assez de recul sur l’application mais elle répond parfaitement aux exigences du runner avec toutes les fonctionnalités proposées de base. Et si vous souhaitez découvrir des parcours originaux partagés par la communauté, n’hésitez pas à passer aux cartes détaillées avec la version Premium.

J’adore découvrir de nouvelles applications, partagez en commentaire votre compagnon numérique pour les sorties running.

 

Angular : Comment créer votre premier projet ?

Dans cet article, je vous propose de découvrir les bases du framework web Angular en vous montrant comment créer votre premier projet.

Après une petite introduction à Angular et les quatre piliers de sa conception, j’ai choisi d’utiliser l’Interface en ligne de commande (CLI) et la commande ng serve pour tester le projet Angular.

Présentons Angular ?

Je vous propose de commencer par une petite introduction à Angular histoire de planter le décor.

Angular est né en 2009 dans les locaux de Google. Shyam Seshadri proposa un framework fait maison initialement appelé AngularJS.
Vous rencontrerez cette dénomination pour les applications développées avec les versions 1 et 2 du framework.
Ne cherchez pas la version 3 d’Angular, Google a purement décidé de passer directement à la version 4 en perdant au passage le suffixe JS.

Qu’est-ce qu’Angular ?

Angular est un framework de développement structuré et puissant, conçu pour construire des applications web dynamiques et efficaces. Utilisant TypeScript comme langage principal, il offre aux développeurs un environnement cohérent et optimisé pour le développement d’applications à page unique (SPA).

Angular se distingue par son système de composants, qui encourage la modularité et la réutilisation du code, ainsi que par son architecture qui favorise une séparation claire entre la logique de présentation et la logique métier. Avec un ensemble riche de fonctionnalités telles que le data-binding bidirectionnel, l’injection de dépendances, et une suite complète pour le développement d’applications, Angular aide à réduire le temps de développement tout en améliorant la qualité et la maintenabilité du code.

De plus, sa communauté active et ses mises à jour régulières garantissent que le framework reste à la pointe de la technologie et des meilleures pratiques de développement. En somme, Angular est un choix robuste pour les entreprises et les développeurs cherchant à créer des applications web modernes et évolutives.

4 concepts clés d’Angular

Angular est construit autour de concepts clés et bonnes pratiques du développement web actuel :

  • Architecture MVC (Modèle-Vue-Contrôleur) : architecture incontournable qui consiste à avoir une stricte séparation entre les données (Modèle), la présentation des données (Vue), et les actions possibles sur ces données (Contrôleur) ;
  • Data Binding :il s’agit d’un mécanisme permettant de lier la partie vue à la partie logique c’est-à-dire que les éléments de votre code HTML seront liés à votre contrôleur JavaScript ;
  • Injection de dépendances : les modules que vous développerez n’auront plus à se soucier d’instancier leurs dépendances ;
  • Manipulation du DOM grâce aux directives : la manipulation du DOM devient plus facile à maintenir et à tester que du pur JavaScript.

Prérequis pour démarrer votre projet Angular

  • Node 4.x.x ou supérieur ;
  • Npm 3.x.x ou supérieur.

Si vous avez déjà une installation de Node, vérifiez que vous utilisez au moins node 4.x.x et npm 3.x.x ou supérieur en exécutant dans le terminal/console :

node -v

et

npm -v

A vos claviers : premier projet Angular

Étape 1. Configurer l’environnement de développement

Pour la grande majorité des actions, vous allez utiliser la ligne de commande dans le terminal (pour MacOS et Linux) ou la console (pour Windows). vous allez tout d’abord installer l’Angular CLI. Cet environnement est incontournable pour créer les composants et services de votre application.

Pour installer l’Angular CLI :

npm install -g @angular/cli

Sous Mac OS et Linux vous devrez peut-être faire précéder la commande du terme « sudo » vous permettant d’élever vos droits (passer en mode root). Votre mot de passe vous sera demander pour poursuivre l’exécution de la commande.

Étape 2. Créer un nouveau projet

Ouvrez une fenêtre de terminal et créez un nouveau projet et un squelette d’application en exécutant les commandes suivantes:

ng new mon-application-angular

Cette commande créé un squelette d’application Angular.

projet angular 1

Vous devez choisir le format de feuille de style que vous souhaitez utiliser en utilisant les flèches haut ou bas pour vous positionner devant le format puis cliquer sur Entrer.

Le versionning via Git est également initialisé par la même occasion 😉

Mais si vous souhaitez créer directement un projet Angular utilisant SASS, vous devez exécuter la commande suivante :

ng new mon-application-angular --style=scss

Lancez votre éditeur de code préféré (ici VS Code) et ouvrez le dossier de votre application créée sur le bureau de votre PC ou Mac.

Vous pouvez vérifier la structure des dossiers par défaut :

projet angular 5

Vous découvrez un fichier styles.css dans lequel vous pourrez écrire vos styles.

Étape 3: Tester le projet

Rendez-vous dans le répertoire du projet en utilisant la commande :

cd mon-application-angular

Une fois que vous êtes dans votre dossier hébergeant votre application Angular, exécutez la commande suivante :

ng serve --open

La commande ng serve lance le serveur, surveille les fichiers et reconstruit l’application lorsque vous modifiez votre code. Vous n’avez pas besoin de rafraichir la page qui s’affiche dans votre navigateur : c’est automatique 😉

Voici ce qu’affiche ma console lors de l’exécution de ng serve :

projet angular 3

Ouvrez un navigateur sur http://localhost:4200/

L’application nous accueille avec cet écran :

projet angular 4

J’espère que cette petite introduction vous aidera à créer votre premier projet Angular.

Réagissez en laissant un commentaire ci-dessous.

 

Apprenez à coder et changez de vie

Le mythe du développeur seul dans son garage plus proche de l’animal associable que de l’être humain a fait son temps et je n’y crois pas une seule seconde.

Évidemment, on connait tous les histoires des pionniers de l’informatique et sa cohorte d’anecdotes. Mais ça c’était avant…

Aujourd’hui, il est facile de trouver des sources d’information pour apprendre à « coder » des programmes informatiques.

1. La vulgarisation sur le Net

Bill Gates et Marc Mark Zuckerberg participent à la promotion de l’apprentissage du développement d’applications informatiques pour tous au sein de la plateforme code.org
Ce site ne fera pas de vous un développeur « full-stack » mais permet aux enfants et même à des adultes de comprendre la fabrication d’un programme et de se poser un tas de questions pour « modéliser » et atteindre son but : bâtir un programme fonctionnel.

Apprendre à écrire des programmes ouvre votre esprit et vous aide à mieux penser.
Bill Gates

Le mannequin Karlie Kloss avec son programme Kode with Klossy accompagne les jeunes filles dans la découverte et l’apprentissage du code.

2. Les forums d’entre-aide

Depuis que je travaille dans le digital, j’ai toujours été surpris par l’esprit de partage et cela, bien avant l’arrivée des réseaux sociaux.
On trouvait de nombreux forums de partage. Les anciens donnaient de leur temps pour répondre aux nouveaux arrivant qui eux-même partageaient leurs connaissances à leur tour une fois l’expérience grandissant.
J’ai moi-même fréquenté et participé assidument aux forums d’entraide Joomla ou Prestashop.

Les forums ont presque tous disparus (du moins ne remontent plus du tout dans les moteurs de recherche) et d’autres sources d’information sont arrivés.

3. Les Massive Open Online Course (M.O.O.C.)

Les « Massive Open Online Course » ont le vent en poupe et permettent de se former au développement web ou d’applications. Ils sont facilement accessibles et proposent, en plusieurs sessions, de découvrir et de progresser dans les langages informatiques.

La plateforme de MOOC la plus connue en France est OpenClassrooms (ex: LeSiteduZero) qui propose des programmes entiers appelé Parcours touchant le développement mais également la gestion de projets.

Les MOOC de chez France Université Numérique sont créés et dispensés par de grandes écoles ou universités françaises ou internationales et leur contenu sont de très bonne qualité. On y trouve d’autres sujets que le développement (Management, Économie, Mathématique).

J’ai connu la plateforme de formation en ligne Udacity grâce aux « Google Study Jam » auquel j’ai participé en début d’année consacré au développement d’applications pour mobiles Android.
J’ai pu constater que les étapes s’enchainent avec à l’appui des vidéos explicatives et des quiz permettant de valider l’acquisition des savoirs.
Comme chez OpenClassrooms, on retrouve des parcours professionnels entiers menant à des certifications (Nanodegree) : Java, Android, iOS, Développement Web, etc…

4. Stack Overflow

Connaissez-vous les sites de type Q&A ?

Yahoo! avait depuis longtemps compris que l’échange entre internautes permettait de développer le trafic grâce à l’espace Q&A (Questions and Answers) de son portail. Le principe est simple, vous posez une question et les internautes qui ont la réponse la partagent. Les visiteurs votent pour la meilleure réponse et cette dernière passe en tête de liste juste en dessous de la réponse. Et zou, la plateforme Q&A devient participative à tous les points de vue.

Et bien Stack Overflowest basé sur ce principe. Le volume de Q&A est tellement important que vous trouverez forcément la réponse à votre question. La liste des langages de développement est impressionnante et la qualité des réponses est toujours au rendez-vous (les participants y veillent).

5. Les communautés Google+

Google n’a pas rencontré le succès escompté auprès du grand public avec le service Google+. Cependant, en faisant un tour d’horizon des communautés qui ont élues domicile sur ce réseau social, on trouve de nombreux groupes orientés Numérique ou Digital. On y croise des Geeks, des développeurs, des passionnés et des hobbyist (rien à voir avec les héros de J.R.R. Tolkien).

Cette semaine, travaillant sur le développement d’une application Android, j’ai été confronté à un soucis de récupération de données hébergées sur un WebService. Après plusieurs recherches sur le Net sans succès, j’ai posé la question juste avant d’aller prendre un bon repos mérité.
Dès le lendemain matin j’avais déjà des solutions proposées par les membres de la communauté Android Development.

Aide de la communauté de développeur Android

 

En aucun cas, ce billet se veut exhaustif et vous connaissez sûrement de nombreuses autres sources d’information pour développeurs.

N’hésitez pas à participer en laissant un commentaire sur vos sources d’information pour apprendre à programmer.