Skip to content

📝 Blog

Cahier de vacances - Merge Done

Bon, on va se mettre d’accord : ça reste mes vacances hein 😉
Alors oui, aujourd’hui je n’ai pas publiĂ© d’article et celui ci est assez lĂ©ger.
Que voulez vous, ce n’est pas tous les jours qu’un copain de 30 ans dĂ©barque sur mon lieu de vacances aprĂšs 360km pour me rejoindre đŸ„łđŸ€Ș

Mais comme vous ĂȘtes sages et que je ne reçois aucun commentaire ou email, je vous fais ça vite fait en bord de piscine.

Le code créé et testĂ© dans l’article prĂ©cĂ©dent est maintenant prĂȘt Ă  ĂȘtre poussĂ© et rendu publique.
C’est mĂȘme essentiel pour pouvoir faire le merge et clore la tĂąche en cours. Je ne vous mens pas, vous verrez l’historique de la MR #1, j’ai cherchĂ© Ă  clore avant d’avoir poussĂ© mon code đŸ€Ł

Commençons par ouvrir Working Copy. Le code est bien là, la branche toujours la bonne. Je peux préparer le commit soit par la premiÚre icÎne de Working Copy, soit la seconde qui représente le commit.
J’entre un rĂ©sumĂ© en titre, une explication des modifications, puis j’active l’option Push proposĂ©e. Il n’y a plus qu’à actionner le mot Commit Ă  cĂŽtĂ© de l’option Push.

Pousser le commit

Le code est maintenant dans la branche. Sur GitLab, j’ai maintenant la possibilitĂ© de valider cette MR, puis d’actionner le merge lui mĂȘme.
Il reste alors Ă  aller dans la partie Settings du projet, puis dans la section Visibility, le rendre publique et sauvegarder les changements..

And VoilĂ  ;)
Vous pouvez maintenant accĂ©der Ă  ce superbe bout de code sur ce repository flambant neuf avec toutes les bĂȘtises que je fais et vais continuer Ă  faire.
N’hĂ©sitez pas Ă  me faire part de vos remarques, je ne demande qu’à apprendre.

Quand Ă  moi, je retourne Ă  des projets plus appropriĂ©s Ă  des vacances, Ă  base de piscine, d’apĂ©ro et de pizza :)

Cahier de vacances - enfin du code

Comme prĂ©cisĂ© dans l’article prĂ©cĂ©dent, les diffĂ©rentes Ă©tapes telles que je les envisage sont notĂ©es dans des issues dans le projet sur GitLab.

L’idĂ©e gĂ©nĂ©rale est d’apprendre le langage Go en crĂ©ant un utilitaire capable d’appeler des API web. Il n’y a pas forcĂ©ment un aspect innovant, mais ça me permet d’étudier diffĂ©rents aspects techniques qui pourraient avoir un usage professionnel.

Mais assez d’articles sans code, je me lance !
Tout d’abord, je sĂ©lectionne la page des issues du projet.

Page des issues

J’accùde ensuite à l’issue #1.

Issue 1

Choisir le menu « Create merge request » puis sĂ©lectionner l’option « create merge request and branch »

Création MR

J’en profite pour ajouter un label « Doing » qui indiquerait Ă  d’éventuels collaborateurs sur le projet que je travaille sur cette issue et je me l’assigne.

Label et assign

De retour dans Working Copy, j’effectue un fetch pour rĂ©cupĂ©rer l’existence de la branche, puis je fais son checkout.

Checkout

Je dĂ©couvre que Working Copy va me permettre d’aller assez loin dans mes premiers pas de codeur sur iPad. On peut par exemple crĂ©er un fichier et l’éditer.

Création fichier

Je saisis les quelques lignes de Go nécessaires à cet appel.
Et j’active bien sĂ»r la fonction d’upload sur ma droplet.

PremiĂšres lignes de code

J’accùde ensuite à ma droplet avec Blink, et je lance le code.

Premier lancement

Il ne reste alors plus qu’à pousser le code et faire le merge de la MR.

Pas si mal, non ?
Il m’a fallut beaucoup plus de temps pour le dĂ©crire que pour le faire.

Cahier de vacances - premiĂšres briques

Pour avancer sereinement dans ce petit projet d’étĂ©, j’ai mis en place quelques outils et workflows appropriĂ©s.

Je souhaite utiliser le langage Go et il n’existe pas d’implĂ©mentation sur iOS (contrairement Ă  Python et Lua).
J’utilise pour cela une machine distante, une droplet chez Digital Ocean. C’est une machine sous Ubuntu 18.04 parfaitement capable de compiler les petits bouts de code que je lui soumet.

Pour se connecter Ă  cette droplet, j’ai choisi d’utiliser un projet de shell sous la forme d’une application appelĂ©e Blink.
Cette app fournit à la fois le terminal et le shell, ainsi que les outils nécéssaire comme ssh ou mosh.
C’est une application Open Source, le code est disponible, mais on peut l’acheter pour la soutenir (ce que j’ai fait).
PremiÚre étape une fois Blink installé, générer une clé RSA.
Je peux ensuite enregistrer la clé publique de Blink sur la droplet dans .ssh/authorized_keys.
Toute cette procédure est détaillée dans cet article sur Medium
Je n’ai pas pu pour le moment profiter de l’étape avec mosh qui permet de maintenir une session SSH, quand la connexion est de mauvaise qualitĂ©. L’hĂ©bergement de la premiĂšre semaine n’a pas beaucoup de ports ouverts sur le wifi partagĂ©.

Une fois qu’on a un environnement pour compiler le code et le lancer, il faut se soucier de la partie gestion du code.
J’utilise en l’occurrence GitLab dont j’aime beaucoup la gestion des issues et des Merge Request.
Sur l’iPad, la gestion de ce repository sera confiĂ©e Ă  l’app Working Copy.
PremiĂšre fonctionnalitĂ© intĂ©ressante pour moi, la connexion avec mon compte GitLab. Une fois ce lien Ă©tabli, j’ajoute le repository de mon projet Dobby (oui, je ferai un logo en forme de chaussette).
A partir de lĂ , j’ai accĂšs aux fonctions git comme le fetch, le pull, le merge ou le push. Il est facile de visualiser les branches, d’effectuer un rebase ou crĂ©er une branche. Je n’ai pas encore trouvĂ© de moyen de gĂ©rer les issues ou les MR directement, Ă  Ă©tudier.
Une derniĂšre fonctionnalitĂ© intĂ©ressante dans mon workflow est la possibilitĂ© de rĂ©gler un accĂšs distant Ă  un rĂ©pertoire pour effectuer une synchronisation des fichiers. Je peux ainsi Ă©diter le code sur l’iPad, puis aller sur ma droplet pour tester, le code Ă©tant synchronisĂ©.
Pour cela, j’enregistre la clĂ© publique fournie par Working Copy dans la authorized_keys de ma droplet, je rempli les paramĂštre dans l’app et zou, la synchro et/ou l’upload manuel si je prĂ©fĂšre sont en place.

Il me reste à créer des issues pour chaque étape prévue.
Je n’aurai plus qu’à ouvrir une MR avec une branche dĂ©diĂ©e que je rĂ©cupĂ©rerai sur l’iPad ensuite.
Une fois le code testĂ© et l’article correspondant Ă©crit, je n’aurai plus qu’à pousser dans la branche de la MR, puis effectuer le merge qui fermera l’issue. J’ai pour le moment fait le choix de dĂ©sactiver l’effacement automatique de la branche pour conserver les traces pour les articles.

Voilà, il me semble que je suis paré pour enfin avancer sur le projet.
Mais ne dit on pas que l’important ce n’est pas la destination, c’est le voyage ?

Cahier de vacances

AprÚs un début d'année 2020 chargé et un peu compliqué, voici enfin le temps de quelques vacances.
Mais est ce que cela doit signifie tout arrĂȘt d'activitĂ© geek ?
Ce serait quand mĂȘme malheureux de ne pas profiter de ces joyeux moments, entre clocher intempestif et chien matinal :)
Je vous propose de me suivre cet Ă©tĂ©, on verra oĂč mes pĂ©rĂ©grinations estivales nous mĂšneront.

En plus de la sus mentionnée motivation canino clocheresque, il faut dire que l'approche de l'été a vu arriver à la maison un nouvel outil : un iPad Pro.
Cela faisait longtemps que ma tablette android ne me convenait plus et d'une maniÚre générale, la partie audio me désespÚre.
DĂ©sirant Ă©galement voyager lĂ©ger, mais suffisament Ă©quippĂ©, l'iPad Pro m'a semblĂ© ĂȘtre l'outil idĂ©al : nous verrons Ă  l'usage.

Parmi les usages que je souhaitait explorer, il y a évidemment la partie développement.
Avant de partir, j'ai fait quelques essais, y compris de l'embarqué avec mes cartes microbit.
Il y a un potentiel encore plus grand que je ne l'espérait.

Je vous présenterai donc au fur et à mesure les outils et astuces que j'emploierai dans les divers petits projets dans lesquels je me lance. Pour commencer, rapide présentation du matériel et des premiers outils.
J'utilise un iPad Pro 2020 avec 256Go de stockage.
Je lui ai adjoint les services d'une coque/clavier Logitech Slimfolio. L'ensemble est trĂšs cohĂ©rent et agrĂ©able Ă  l'usage. J'aurais prĂ©fĂ©rĂ© prendre le Smart Keyboard qui est encore plus agrĂ©able et complet, mais 3 fois plus cher tout de mĂȘme !
Mais le Slimfolio est un bon clavier chiclet et me permet d'écrire agréablement cet article avec un petit rayon de soleil sur les hauteurs de Rocamadour.

Ma plateforme de blog est depuis cette année Ghost, j'ai commencé à l'utiliser pour vous relater ce petit cahier de vacances.
Il semble qu'il y ait eu un historique difficile entre ce moteur de blog et Safari sur iOS, mais il est utilisable aujourd'hui. Néanmoins, de petits détails comme la sélection ou la copie de texte, certains caractÚres accentués qui déclenchent de petits glitches, m'ont fait faire ce que tout geek qui se lance dans un projet fait : trouver un autre outil pas particuliÚrement lié au but principal :)

J'ai fini par prendre l'éditeur iA Writer. Ce n'est pas donné mais il est vraiment fonctionnel et je compte bien reprendre quelques autres projets d'écriture, notament de textes pour mon groupe de musique.
Le point fort qui m'a dĂ©cidĂ© est l'intĂ©gration avec Ghost. Avec ça, j’ai enfin un Ă©diteur qui me permet de maĂźtriser ce que j’écris, et qui me laisse le contrĂŽle de la mise en forme.
Il reste que la communication avec Ghost est pour le moment Ă  sens unique : j’écris et je publie un brouillon que je vĂ©rifie et publie depuis Ghost.
Pour les retouches, si je souhaite le faire avec iA Writer, il faut ensuite que je copie et colle dans l’éditeur d’article de Ghost. Ça fonctionne bien, je vais dĂ©marrer comme ça.

VoilĂ , vous n’ĂȘtes pas plus avancĂ©s sur ce qui va se passer ou pas dans ce cahier de vacances, mais moi, j’ai mon setup prĂȘt pour ce qui va devenir mes petits rendez vous matinaux :)

M5Stack ❀

Quand j'achĂšte une nouvelle carte, c'est souvent sur une impulsion, en voyant un projet qui m'a plus ou en ayant une idĂ©e en tĂȘte.

Pour la M5Stack core, ce fut plus le fruit du hasard et le fait que K33g_org en ait acheté 2 d'un coup :)

Ce petit bloc est un ensemble trÚs bien pensé articulé autour d'un ESP32 à 240Mhz en dual core. C'est parfois limite trop toute cette puissance qui arrive dans les micro contrÎleurs :)
L'intégration est généreuse avec un écran de 2" (320x240), du wifi et du bluetooth BLE, lecteur de carte SD, un haut parleur, un connecteur grove/I2C et accÚs en broches Dupont à tout ce qu'offre l'ESP32.

La communauté autour des différents produits de la marque est plutÎt dynamique, il y a pas mal de modules maintenant.
Cette carte est un point d'entrée trÚs intéressant pour quinconque voudrait se lancer dans le monde de l'embarqué et de l'IoT.

J'ai commencĂ© par une, puis deux, puis... je n'arrĂȘte pas de faire des vidĂ©os avec.
Il faut dire qu'on peut la programmer visuellement, en micropython ou en arduino C. Si on ajoute sa capacité à se connecter en wifi et en bluetooth, le terrain de jeu est vaste.

Je vous liste ici les différentes vidéos que j'ai faites à ce jour, je ferai des articles de fond dans l'été si cela interesse certains d'entre vous.

Les premiers pas, découverte de la carte et de l'environnement M5Stack

Utilisation de l'accéléromÚtre

Un peu de micropython

Lecture et écriture de fichiers

Météo et Wifi