Tout sur ma veille technologique

Je ne surprendrai personne en disant qu’en informatique, et plus particulièrement en développement, la veille technologique est très importante. Mais les journées ne faisant que 24 h, il est nécessaire d’optimiser ses sources de renseignements.

C’est pourquoi j’ai décidé aujourd’hui de vous partager mes trucs est astuces pour me maintenir au top niveau 😉

Dans mon cas, la veille se fait principalement le matin, au petit déjeuner. Bon, je sais que niveau déconnexion boulot, on a vu mieux, mais depuis quand doit-on déconnecter lorsque l’on est passionné.e ?

Pendant très longtemps, je me suis contentée de maintenir 10 à 20 onglets ouverts sur mon navigateur : ZDNet, LinuxFR, Stack Overflow… mais ce n’était pas très pratique.

J’ai également essayé de m’abonner aux personnes et aux flux qui vont bien sur Twitter, Reddit, et même Facebook et Google News 😦 . Si j’ai totalement laissé tomber le premier et les 2 derniers, Reddit continue à m’être bien utile !

Puis j’ai découvert l’application mobile Feedly. Le principe est simple : on sélectionne les différents flux auxquels on veut s’abonner, et chaque matin on a sont lot d’actualités toutes fraîches !

Vraiment top cette application, et cerise sur le gâteau, elle est disponible sur desktop ici, pour iOS ici, et sur Android, par là.

Mais le principal défaut des flux dans Feedly est qu’ils restent soit trop génériques, soit trop spécifiques, ce qui ne correspond pas toujours à mes besoins. Mais peut-être est-ce juste une question de paramètre, et cela n’enlève rien à l’intérêt de l’application 🙂 .

Je complète donc avec quelques sites, dont la liste varie en fonction de mes centres d’intérêts du moment.

Il s’agit du plugin daily.dev, du site Hacker News et son pendant en langue française Le Journal du Hacker.

Notez que Daily.dev existe aussi en tant que site web, ou même de web app.

Enfin, même si je suis informaticienne, je j’apprécie toujours les revues au format papier, et je ne saurait trop conseiller la lecture de la passionnante revue MISC des éditions Diamond (existe aussi au format numérique) :

Voilà pour mes outils quotidiens de veille technologique. Je mettrai bien sûr à jour cet article au fur et à mesure de mes découvertes, et en attendant, n’hésitez pas à me partager les vôtres 🙂 !

Une interface graphique pour Arduino sans prise de tête…

Cela faisait longtemps que je n’avais pas parlé de projets Arduino sur ce blog…

Il était donc temps de rattraper ça 🙂

Dans le cadre d’un projet perso (et encore secret 😉 ), j’avais besoin de réaliser rapidement et simplement une interface graphique pour piloter un Arduino Uno. Ce projet n’ayant ni bluetooth, ni wifi, et n’étant de toutes façons pas très motivée pour développer un protocole de communication, je recherchais une solution « clé en main ».

C’est à ce moment là que je suis tombée sur le projet Azande : https://zeijlonsystems.se/products/azande/index.html

L’idée ici est de coder l’interface graphique directement dans le code Arduino. A l’aide de structures simples, on définit ainsi des boutons, des compteurs…

Mais comme un exemple vaut mieux qu’un long discourt, en voici un : faire varier l’intensité lumineuse d’une led grâce à différents boutons Azande.

Voici le code :

Et l’interface générée :

En somme, les éléments d’interface se définissent dans « define_int_event », « define_int_commande » et « define_enum_command ».

La fonction loop() se borme ensuite à écouter sur le port série un flux, et, lorsque la commande « cmdLum » est reçue, à exécuter la fonction SetLum, qui change la luminosité de la led,et à envoyer une mise à jour à « eventLum » pour mettre à jour le compteur.

Côté code, difficile de faire plus simple !

Et voici le résultat :

Je suis toujours épatée par les possibilités de création offertes par ces petites cartes ! De vraies machines à générer du bonheur !

Un livre à lire impérativement !

Machine Learning, Intelligence artificielle, Algorithmes, autant de mots, souvent des buzz words, employés à tort et à travers, sans que leur signification soit très claire.

Avec ce livre, accessible à tout le monde, Aurélie Jean remet les choses dans leur contexte, et explique en terme simples, avec beaucoup d’exemples tirés de son expérience personnelle, ce que ces termes signifient vraiment.

De la simulation du comportement d’un élastomère chargé en nanoparticules de carbone (en l’occurence le caoutchouc) à la simulation des tensions politiques sur l’économie tout en passant par l’étude de l’impact des ondes de choc sur le cerveau et les poupées sexuelles, Aurélie Jean nous emmène pour un magnifique voyage au pays du numérique.

Elle aborde également les biais, ou comment notre vision, notre perception, déformée par notre culture, notre passé… peuvent influer sur notre jugement, et aussi notre façon de coder. Cela peut générer au mieux des situations cocasses, au pire de gros bugs !

Enfin, l’autrice nous expliquera pourquoi l’ordinateur quantique n’est pas la réponse à tout, et pourquoi « l’intelligence artificielle » (la vraie) n’est pas pour demain…

Personnellement, ce livre va rapidement devenir ma bible lorsque je devrai expliquer de manière simple ce qu’est le machine learning !

Bref vous l’aurez compris, j’étais déjà une fervente admiratrice d’Aurélie Jean via ses différentes conférences et interventions, et je suis définitivement conquise par son livre ! Il s’agit vraiment d’un ouvrage à mettre entre toutes les mains, et de toute urgence !

Swift Map Filter Reduce mémo

Lorsque l’on pense opérations sur des types Array ou Dictionary en Swift, on a souvent le réflexe for-in loop… Mais Swift propose d’autres méthodes comme map, filter, reduce… potentiellement plus efficaces. Voici donc un petit mémo à ce sujet 🙂

Map

Map sert à parcourir une collection er à appliquer la même opération à chaque élément de cette collection. La fonction map retourne un array contenant le résultat. Dans l’exemple suivant, la fonction map est utilisée pour retourner le carré de chaque item d’un tableau :

Le type de retour de la fonction map n’est pas limité au type des éléments d’origine :

Et enfin, la fonction map peut être utilisée sur tout type de collection :

Filter

La fonction filter parcourt un array ou une collection et retourne un array contenant les éléments correspondant à la condition demandée. Ex: recherche des entiers divisibles par 2:

Reduce

Reduce sert à combiner tous les éléments d’une collection pour créer une nouvelle valeur. Dis comme cela, ce n’est pas très parlant, mais voici quelques exemples :

  • Ajouter toutes les valeurs d’un array à une valeur initiale de 15 :
  • Fusionner des chaînes :

flatMap et compactMap

  • flatMap :
  • compactMap :

En résumé :

  • map permet de retourner un array contenant le résultat d’une transformation appliquée à chaque item.
  • filter retourne un array contenant seulement les éléments correspondant à une condition donnée.
  • reduce retourne une seule valeur calculée en combinant chaque item avec une valeur initiale.

Flutter development : les ressources utiles

Grâce à une super présentation d’Edouard Marquez lors d’un Meetup organisé par le CDG de Tours, j’ai le plaisir d’être en pleine découverte de Flutter.

Donc, Flutter est un projet Open Source porté par Google, et basé sur le langage Dart. C’est (entre autres…) LE nouveau framework de Google pour la création d’applications mobiles multiplateformes.

Encore un me direz vous… oui mais celui-là est différent (je sais, on nous l’a déjà faite celle-là 🙂 ). Plus sérieusement, le fait qu’il soit porté par Google, avec une communauté de développeur.ses en constante augmentation, donne de très bons augures pour l’avenir de ce framework.

Je ne rentrerai pas ici dans la discussion Flutter vs React Native vs Cordova vs Xamarin… cela n’est pas le propos. Par contre, à titre perso, je peux dire que le langage Dart me plaît bien, et venant de Swift (avec aussi un passé en Java et en C), la courbe d’apprentissage n’est pas trop ardue.

Bref, vous l’aurez compris, je kiffe Flutter 🙂

Et comme je sais à que point c’est parfois compliqué de débuter avec un nouveau framework, j’ai décidé ici de vous partager mes ressources ! (bien entendu, je ferai évoluer cette liste au fur et à mesure de mes avancées dans le domaine…)

Les bases :

https://flutter.dev : le site de base. Plein de tutoriels, d’infos et surtout toujours à jour !

https://dart.dev : le site de référence pour le langage Dart

La communauté :

https://www.edouard-marquez.me/blog/ : plein de news sur l’évolution de Flutter et de sa communauté

Les tutoriels :

http://www.iflutter.in : le site de tutoriels le plus complet que j’ai pu trouver à ce jour

https://kodestat.gitbook.io/flutter/ : de nombreux tutos également

https://hackr.io/tutorials/learn-flutter

https://www.didierboelens.com

http://tphangout.com

https://flutterbyexample.com

Programmation Swift : iOS Developer Notes For Professionals

ios Dev Pros

Voici mon nouveau livre de chevet : iOS Developer Notes for Professionals !

Je crois que tout le langage Swift est abordé dans ce livre ! Cela va de la création toute simple d’une UIView au parsing de JSON, tout en passant par l’usage de des frameworks les plus utilisés (Fastlane…) et des designs paterns (MVC, MVVM…).

Bref, le top du top pour une développeuse Swift !

Bon, finalement, le lire avant de s’endormir n’est pas forcément la meilleure idée, mais c’est le genre de livre à garder impérativement sous la main toute la journée de développement !

En plus, il est gratuit !

A télécharger (sans modération) ici :

iosDeveloperBook

Programmation: La Cathédrale et le Bazar

cathedral_bazaar

Je profite du relâchement (relatif) du mois d’août pour me remettre un peu à la lecture… de livres ayant trait à l’informatique vous vous doutez bien 😉

Premier de la liste : La Cathédrale et le Bazar, d’E.Raymond.

C’est impressionnant comme un essai paru en 1999 peut être par beaucoup de cotés à la fois précurseur et d’actualité !

Voici le résumé tiré du site verbiage.fr :

 »

Eric Steven Raymond est un informaticien américain oeuvrant dans le monde du logiciel libre à qui l’on attribue la création du terme « open source ». En 1999, il diffuse un essai devenu depuis une référence dans le monde du logiciel libre « The Cathedral and the Bazaar » (La cathédrale et le bazar).

Eric Raymond y oppose les modèles de développement des logiciels libres à ceux appliqués aux logiciels propriétaires.

Rédigé par un informaticien, évoquant le développement d’outils informatique, il n’est que peu souvent cité comme ouvrage de référence de Management. Pourtant, Eric Raymond développe sans prétention une analyse mettant en évidence la supériorité d’un modèle d’organisation basé sur la transparence et la collaboration.

C’est ici qu’apparaît, à mon sens, le principal point commun avec l’ouvrage de Vineet Nayar. Ils posent tous les deux les principes d’une organisation déstructurée favorisant l’initiative, l’efficacité et la créativité.

Par opposition aux organisations managériales traditionnelles dits de « type cathédrale » marquées par une hiérarchie, une structure forte, Eric Raymond présente le modèle du logiciel libre basé sur le collaboratif, le volontariat, la transparence. Tout est ouvert, tout est accessible, tout est transparent, une organisation à la fois horizontale et verticale : un bazar. Ici le responsable se fait davantage coordonnateur.

Contrairement aux apparences le modèle bazar n’est pas l’anarchie. Il est au contraire structuré par ses propres règles de fonctionnement, basées sur la souplesse, la rapidité et les échanges permanents entre contributeurs.

Au delà de l’éloge d’un type de management différent, que l’on pourrait juger plus où moins adapté à tel ou tel type d’entreprise, sont évoqués ici les thèmes essentiels dans la gestion de projet et dans la gestion des hommes que sont la motivation et la créativité.

L’organisation doit permettre de ne pas perdre de vue l’objectif visé, de mettre en cohérence les travaux de chacun, sans être un carcan limitant l’initiative et la créativité.

Les axe essentiels sont la motivation « tout bon logiciel commence par gratter un développeur là où ça le démange », la compétence (ici des développeurs), la transparence, mais aussi enfin et surtout une relation permanente avec les utilisateurs « traiter vos utilisateurs en tant que co-développeurs est le chemin le moins semé d’embûches vers une amélioration rapide … ».

Une démarche itérative de correction des bugs orientée client qui, en définitive, donne au bazar la charpente nécessaire à sa réussite, son but ultime : satisfaire l’utilisateur final.

Les succès de Linux, Wikipedia, la fondation Mozilla et son célèbre navigateur Firefox, l’émergence de start up devenues depuis des multinationales (Google…), sont les signes qu’un management différent est en train de s’imposer. De plus en plus d’entreprises « cathédrales » se laissent en effet peu à peu tenter par l’esprit « bazar ».

 »

A lire ou à relire, sur la plage ou ailleurs…

Ayant eu quelques difficultés à trouver la version epub pour ma liseuse, je vous mets en téléchargement les fichiers pdf et epub :

cathedrale-bazar.pdf

cathedrale-bazar.epub

Bonne lecture à tous, et si vous avez des suggestions pour le blog, n’hésitez pas à les mettre en commentaires !