Il est un peu moins RAID …

Mais ça va s’arranger.

Parce que j’ai reçu aujourd’hui mon disque de remplacement.

J’ai d’abord essayé de remplacer le disque à l’arrache, avant de me souvenir qu’il y a sur le site de Alt-F une page complète sur le changement d’un composant dans un disque RAID.

J’ai donc repris la procédure en suivant méthodiquement les étapes.

Hélas, dès la suppression du composant, c’est le drame :

[root@dlink-6A4EB1]# mdadm --manage /dev/md0 --fail /dev/sda2
mdadm: set device faulty failed for /dev/sda2:  Device or resource busy

Et j’ai passé du temps avant d’avoir l’éclair de lucidité.

En fait, j’ai partitionné mes disques « simplement » : une grosse partition en RAID1 avec tout dedans. Tout … y compris ffp … Lequel ffp fournit évidement les services SSH et compagnie. Du coup, évidement, quand j’essaye d’enlever le composant (enfin, le disque, mais en RAID, apparemment, ça s’appelle un composant), ça ne marche pas … Attendez, c’est du RAID1, donc ça devrait marcher, non ?

Du coup, si c’est pas ça … je fais quoi, moi ? Ben j’en sais rien. Enfin, j’ai bien une idée : je peux toujours copier tout le contenu de mon montage RAID1 sur mon nouveau disque, et le faire évoluer vers un disque RAID1 en reformattant le composant qui reste dans le RAID1.

Bon, en théorie, la solution idéale serait quand même de mettre mon nouveau disque directement dans le conteneur RAID1 … mais je ne sais pas trop comment faire ça, ni dans l’interface d’Alt-F, ni même dans mdadm. Je sens que je vais encore aller écumer ServerFault, moi …

Il n’y aurait pas une bulle, là ?

Après la fameuse halle F de Xavier Niel

Après, évidement, Euratechnologies (qui cela dit est déja un acteur installé du domaine)

Et là, je me pose sérieusement une question.

Quand on voit le nombre d’investisseurs potentiels, la pression pour faire augmenter la valorisation des start-ups doit être assez élevée. Au détriment sans aucun doute de la qualité des produits.

Du coup, j’ai tendance à penser ces temps-ci que, si quelqu’un a une idée valable, il vaut peut-être mieux ne pas se lancer maintenant. ou tout au moins ne pas se lancer dans la croissance à tout prix, histoire d’éviter de se faire parasiter par des business pas si angels.

Jenkins, sers-moi donc un Chtijug !

Nicolas Géraud était venu nous parler des pipelines il y déja deux ans.Est-ce que cette présentation allait être mieux ? En tout cas, elle est bien différente.

Petit point sponsoring de l’IUT sur la taxe d’apprentissage : les entreprises peuvent déclarer des organismes de formation bénéficiaires de leur taxe d’apprentissage. Ca peut avoir une influence sur le budget de ces organismes.

Et c’est parti !

Avec d’abord un petit sondage :

  • qui connait Jenkins ? A main levée, tout le monde dans la salle.
  • qui a déja migré vers Jenkins 2 ? Encore à main levée, pas grand monde.

Jenkins 2

Donc Jenkins 2 … est totalement compatible avec Jenkins 1. Et c’est bien, parce que la montée de version va être simple. Dans l’ensemble, les plugins sont compatibles.

Avec Jenkins 2, il y a aussi de nouveaux sites

  • http://jenkins.io qui est bien plus grand public
  • le project Voltron sert de plugin store avec une chouette présentation. Limite comme le google play store, en fait.

Il y a maintenant au premier démarrage un mot de passe à aller chercher dans les logs de la machine. Ca va permettre de sécuriser le serveur Jenkins avec un admin par défaut. Evidement, on peut toujours avoir un Jenkins non sécurisé, mais il faut le vouloir. Ce qui change pas mal de Jenkins 1 qui, par défaut, n’était pas sécurisé. En bonus, une liste de plugins par défaut est disponible, pour faire une première personnalisation de Jenkins.

Et ensuite, on arrive aux fameux pipeline-as-code.

Pipeline as code

Un job est défini par un Jenkinsfile, écrit dans un DSL Groovy, qu’on peut stocker dans son SCM. L’avantage, c’est aussi de permettre d’utiliser les structures de contrôle de Groovy pour personnaliser le job.

Et ensuite

Il y a tout un tas de nouveaux trucs qui ne vont pas tarder à arriver

BlueOcean (déja disponible en pas beta, mais pas release non plus)

La fameuse nouvelle interface graphique pour Jenkins. Les captures sont très chouettes !

Franchement, l’affichage des pipelines est très chouette. Si j’avais eu ça chez Perigee, j’aurais pu montrer un vraiment très beau pipeline. Le plus incroyable, c’est quand même de pouvoir faire « pousser » un pipeline graphiquement. Il faut voir l’écran pour le croire, je trouve.

Pipeline déclaratif

En bonus, ça permet à des non-développeurs de modifier le build, ce qui n’est pas une si mauvaise idée, puisque le code exécuté est toujours en SCM. En fait, le pipeline généré n’est pas exactement identique à celui qu’un développeur écrirait : c’est un pipeline déclaratif.

D’une façon amusante, le speaker décrit la syntaxe d’un DSL Groovy comme « à mi-chemin entre YAML et Groovy ». Guillaume Laforge et tous ses amis pleurent des larmes de sang en entendant ça. Parce que quand on regarde un DSL Groovy, comme par exemple le MarkupBuilder, on est exactement dans la syntaxe visible à l’écran. Bon, je ne vais pas en vouloir au speaker : il connaît sans doute mieux Jenkins que je connais Groovy.

Back-end storage

Manifestement, l’objectif est de découpler le fonctionnement de Jenkins et le stockage des configurations d’exécution et des résultats. C’est une chouette idée, mais pas vraiment assistée par les capacités des plugins à écrire eux-mêmes des fichiers.

Donc Jenkins 2, c’est ?

Jenkins 2, c’est mieux, et orienté sur le continuous delivery. Et pas le continuous deployment. Autrement dit, l’équipe de cloudbees ne vise pas trop à utiliser Jenkins pour le déploiement en prod.

Quelques questions

Si les pipelines sont déclaratifs, comme maven ou gradle, pourquoi ne pas réutiliser leur outillage ?

Jenkins est utilisé pour faire le delivery, ce que ne font pas ces outils. En un sens, je comprend cette réponse : le scope fonctionnel est différent, et ce serait assez curieux de dire « on peut faire du gradle pour le déploiement ». Et puis, Cloudbees et Gradle inc ne vont pas fusionner demain.

Mais quand même, en transformant les jobs en bouts de code, je trouve que Cloudbees fait rentrer Jenkins dans une espace de continuum de build qui va de mon poste jusqu’aux artefacts déployables en prod.

Comment se compare l’API de pipeline-as-code et de job-dsl ?

L’inspiration initiale de pipeline-as-code était buildflow, mais ça a vite divergé.

Et la démo

  • Premier truc cool : les plugins installés sont toujours installés à la dernière version.
  • Deuxième truc cool : BlueOcean est déjà disponible comme plugin, et donc installable.
  • Troisième truc cool : le travail d’administrateur Jenkins s’arrête, pour les jobs, à créer les jobs et les connecter à des SCM. Tout le reste vient du Jenkinsfile.

Et donc, on passe à la création du Jenkinsfile. Et là, la structure des DSL Groovy réapparaît vraiment, et c’est bien.

  • Quatrième truc cool : les commandes checkout de SCM utilisent la révision du Jenkinsfilecomme référence. Par conséquent, l’enchaînement d’étapes se passera beaucoup mieux que dans Jenkins 1, puisqu’il n’y aura pas de révision à passer. Par contre, curieusement, le DSL ne semble pas contenir de commande maven, puisque notre speaker exécute les commandes maven via un sh "mvn clean package". Arf … apparement, le plugin exécutant maven est « mauvais ».
  • Cinquième truc cool : l’interface de Jenkins inclut un générateurs de snippets façon vieux wizards qui permet d’apprendre très rapidement le DSL des pipelines.
  • Sixième truc cool : l’affichage des pipelines en cours est vraiment très sympa, avec des logs par noeud du pipeline affichés en temps réel.
  • Septième truc cool : le DSL inclut une notion de stashes, valable uniquement pour la durée du pipeline, qui permet donc de ne pas déployer dans Nexus les artefacts temporaires.
  • Premier truc pas cool : le pipeline est toujours exécuté sur le master. Du coup, la montée en charge pourrait mal se passer.
  • Huitième truc cool : pour les pipelines déclaratifs, il est possible de demander à Jenkins d’analyser la syntaxe.
  • Deuxième truc pas cool : on peut relancer un pipeline à partir d’une étape uniquement dans la version commerciale de Jenkins. C’est moins bien … mais je comprend tout à fait.
  • Neuvième truc cool : il est possible de créer des morceaux de code partagés entre pipelines.
  • Dixième truc cool : les milestones permettent d’éviter de lancer plusieurs builds concurrents sur une ressource critique.

Et si vous voulez voir le Jenkinsfile utilisé pour ce live-coding, il est disponible sur github.

D’autres questions

Comment tester un pipeline ?

Eh bien, on ne peut pas : il faut le lancer dans une instance de Jenkins. Autrement dit, c’est le genre de truc où il faut une instance de test de Jenkins. Et mon collègue me souffle à l’oreille qu’on peut très bien utiliser l’annotation @StaticCompile de Groovy pour vérifier la syntaxe autant que possible (parce que @StaticCompile, sur un DSL, il doit bien s’amuser, tiens).

Conclusion

J’ai quand même hâte de voir les projets passer au moins aux pipelines as code, histoire d’avoir dans mon SCM, à côté de mon pom.xml, le Jenkinsfile qui va bien. Et histoire aussi d’ajouter un peu de Groovy dans tout ça !

Art et science sont-ils miscibles ?

Cette question pas si simple a été posée par Robin sur PodcastScience il y a quelques semaines.

Plus exactement, il disait que l’art et la vulgarisation scientifique avaient des buts contraires. Parce que si la vulgarisation cherche à expliquer simplement une idée complexe, l’objectif d e l’art est tout autre. Et si j’utilise le terme de vulgarisation, c’est à dessein : je n’ai personnellement rien contre (mais je m’éloigne un peu du sujet).

Personnellement, je ne crois pas que les buts en soient si éloignés. Parce que l’art, dans la plupart des cas, est avant tout un appel à l’existence de la part de l’artiste, une création qui n’existe pas forcément pour transmettre une information, mais plus pour créer.

Seulement cette création, cette incarnation d’une idée, a toujours besoin de moyens, de supports. Et ces supports sont des objets, et ont souvent utilisé des techniques de leur temps.

L’exemple le plus classique est éventuellement celui de l’incursion des mathématiques dans la peinture, avec l’apparition de la perspective à la renaissance.

Mais d’autres exemples sont plus intéressants, et devraient toucher plus Robin. J’en ai très particulier en tête : l’oeuvre de Greg Egan, et en particulier ses recueils de nouvelles Axiomatique , Océanique ou Radieux. Il me semble qu’on trouve dans chacun de ces recueils au moins une nouvelle dont le sujet est la manière dont les mathématiques sont, en un sens, un acte de création de l’univers.

On pourrait y ajouter évidement tous ces films de science-fiction à dominante très scientifique, comme par exemple Interstellar, où la science n’est pas seulement un décor aux aventures des héros.

Bref, dire que l’art et la science ne sont pas miscibles me paraît, au mieux, une exagération. En revanche, effectivement, la vulgarisation, elle ne peut que difficilement s’appuyer sur l’art.

Pédophile, criminel ou malade ?

Ah, ça, c’est sûr, vous ne vous attendiez pas à un titre pareil.

Surtout qu’à priori, je ne vais pas vous parler de ça, … mais en fait si, par un angle détourné.

J’ai récemment ajouté Samedi Noir à la liste de mes podcasts. C’est un podcast de lecture de récits policiers, noirs, fantastiques ou science-fictionesques.

Et le dernier épisode, « le Neither » de Jennifer Haley, explore avec une finesse perturbante la pédophilie. Je ne peux que vous recommander de l’écouter pour comprendre ce qu’est le monde pour un pédophile. Honnêtement, c’est moche, et je n’aimerai pas être à leur place. Pas pour la condamnation morale. Plus parce qu’il s’agit authentiquement d’un délit d’opinion. Pour être plus clair, en France, aujourd’hui, on est condamné pour pédophilie dès qu’on détient des images représentant, réellement ou virtuellement, des images représentant les actes incriminés. C’est un authentique crime iconique : le simple fait de détenir une icône, sans préjuger de son origine, suffit à faire de son détenteur un criminel.
En fait, je ne sais pas dire à quel point, dans le contexte d’une société de l’image elle-même pédophile (regardez les images de mannequins prépubères pour comprendre l’image qu’on veut donner de la beauté : une chose qui n’appartiendrait qu’aux plus jeunes), criminaliser des représentations me paraît dangereux philosophiquement. Je comprend que, pour le législateur, c’est plus simple que de chercher la vérité, et ça achète facilement des voix. Mais je trouve cette solution bien trop criminelle. le législateur, en l’occurrence, sacrifie encore une fois des « malades » pour apaiser l’opinion. Et si je mets « malades » entre guillemets, c’est parce que je suis bien trop conscient que toute pulsion sexuelle peut être criminalisée.

Petit projet d’hiver : une webradio sur raspberry

Il y a quelques années, j’ai acheté une radio philips NP 3300. C’était un chouette petit gadget qui me permettait d’écouter des radios sur le web (bon, ça, c’est sympa, mais sans plus), mais aussi toute ma bibliothèque musicale via UPnP (oui, encore un protocole qui n’a pas perçé). Et tout ça en se connectant en wifi au web. Et c’est très cool.

Ca marchait bien au début.

Et très vite, on a rencontré des soucis : l’appareil ne trouvait pas les radios, ou alors il restait complètement bloqué et on devait redémarrer. En plus, les rares mises à jour n’ont jamais apporté de corrections, mais juste des saletés comme le support de Spotify. Spotify … Quand je peux avoir toute ma bibliothèque UPnP ! Quelle honte.

Donc, depuis quelques temps, ce petit appareil dort dans un coin du salon. Et c’est très frustrant. Parce que quand il marche, le son est bon.

Du coup, en bon vieux geek qui a déjà mis en place un raspberry, j’avais déjà vu « quelques trucs » qui avaient l’air cool (connecter des trucs comme un écran LCD, des boutons, des haut-parleurs, ou alors installer une webradio). Et j’y ai réfléchi. Et encore réfléchi. Et donc, aujourd’hui, j’ai pris le taureau par les cornes. J’ai démonté mon NP 3300 pour regarder ce qu’il y avait dedans histoire de savoir quelle était l’ampleur de la tâche.

Il va donc me falloir

  1. Un raspbery 3 (pour avoir le wifi déjà configuré, c’est pratique !)
  2. Une carte MicroSD d’au moins 8 Go
  3. Un moyen d’alimenter mon Raspberry depuis une alimentation 9V/1.1A
  4. Une connexion pour mes deux hauts-parleurs 6 ohms/1.5 Watts (pour lesquels je n’ai, semble-t-il qu’une paire de câble directement connectés à la bobine)
  5. Une connexion pour les boutons sur le dessus de l’appareil … c’est une nappe de 13 fils dont un rouge … la masse, j’imagine)
  6. Une connexion pour l’écran LCD. Et là, je dois dire que je suis bien embêté, parce que la nappe de l’écran intègre également la LED de la télécommande infrarouge.

D’où le terme de projet d’hiver : tout ça va être sans doute assez long à mettre en place. J’essayerai de rassembler tout ça sur ce blog, histoire d’avoir une trace du bazar. Mais ça pourrait ne pas être simple.

Les jeux de l’été

Parce que bon, les NAS, le code, tout ça, c’est parfois un peu chiant.

Et comme c’est la fin de l’été, et que j’ai passé mes vacances en famille, je pense pouvoir lancer une série annuelle d’articles sur les jeux auxquels on a joué (en famille, donc de 11 à 40 ans).

1359cd8488bb1c62b4974191f3ccd2ff161e

Piña Pirata

La première partie commence comme un Uno. Et puis très vite (à chaque fin de partie, en fait) de nouvelles règles s’ajoutent, on peut tout poser sur un lapin, on pioche avant de donner, de reprendre des cartes, et au bout du compte ma femme gagne sur un plan B que personne n’avait vu sortir.

C’est la deuxième année qu’on le prend, et à chaque fois on s’amuse vraiment bien.

En bonus, les cartes sont jolies, les parties raisonnablement équilibrées, et si une partie complète peut durer 1H30/2H, une simple donne va beaucoup plus vite.

Munchkin

b739cbf9deb4df5bdf24aceb6990a99a1cec

Acheté sur la foi d’un tweet

Juste avant le départ en vacances, j’ai réussi à le vendre à ma femme en utilisant un argument spécieux tiré quasiment tel quel du dos de la boîte « en fait, on va un peu jouer à Kaamelott ».

En vrai, ça n’est pas du tout ça. Et si le hasard est bien plus (voire beaucoup trop) présent que dans Piña Pirata, on a passé quand même quelques bons moments (et quelques moments frustrants pour les perdants, parce que quand ça veut pas, ça veut vraiment pas).

Du coup, évidement, on va acheter prochainement quelques extensions (en plus de jouer à Munchkin épique – à télécharger chez edgeent.com).

Mobile frame zero

campaigner-mfc398-umfl-stand

Là, on change de catégorie : ça n’est plus de jeu de société qu’il s’agit, mais de jeu de plateau. Et même, plus précisément, de jeu de combat tactique au tour par tour, dans l’esprit de Confrontation, ou de petites parties de Warhammer batailles.

La différence essentielle, pour tout le monde, est que les robots ne sont pas des miniatures à acheter à prix d’or dans une boutique exploitant la frénésie de consommation des adolescents, mais à fabriquer soi-même (ou en famille) avec des briques lego. Un certain nombre de sites fournissent d’ailleurs des instructions de montage, instruction nécessitant généralement des pièces modernes que nous ne voulions pas utiliser.

Donc on a commencé par une phase de trois heures de fabrication de robots en lego respectant un encombrement donné.

Et le lendemain, on s’est tapé une partie « rapide » (de 2 heures et un tour de jeu complet) à l’issue de laquelle mes enfants avaient détruit l’un de mes robots, et en avaient réduit un autre à l’état de simple marcheur.

Et pour le coup, même si certains aspects des règles (téléchargeables gratuitement en français) sont un peu ambigus, et que nous manquions de dés (genre il faut facile 6 dés par robot, ce qui nous en aurait fait une quarantaine, on se serait cru à Shadowrun), c’était un sacré bon moment

Je déteste encore git

J’ai déja écrit que je détestais git ? OUI.

Mais, en un sens, ce que je déteste au moins autant, c’est de me faire prendre pour un con.

Tiens, par exemple, quand j’écris un peu énervé

C’est quand même un peu vexant de se voir répondre

Me dire ça, à moi … Me dire que la meilleure façon d’utiliser cet outil difficilement compréhensible, c’est passer par nodejs et chromium … mon dieu.

Et puis, surtout, mon problème n’a rien à voir avec git en tant que tel, mais plus avec la façon foireuse de git d’utiliser la configuration système. Regardez un peu la question StackOverflow que j’ai posé à ce sujet … c’est assez merdique.

Cela dit, quelque chose m’a un peu intrigué. Ce tweet, en particulier.

Là, vous voyez, il y a un problème : le bon outil est ergonomique. Et quand je vois le nombre de personnes qui galèrent pour l’utiliser, sans même parler de l’utiliser correctement, je me demande si, réellement, il y a eu un gain si net par rapport à Subversion. Bon, pour le noyau Linux, clairement, ça doit être indispensable.

Mais ai-je besoin du même genre d’outil pour un projet qui ne va être partagé qu’entre quelques machines de développement et un serveur d’entreprise ?

Ai-je besoin d’un outil développé essentiellement pour des gens qui considèrent que l’ergonomie de la ligne de commande de Linux est un must insurpassable ?

Ai-je besoin d’un outil dont la l’intégration avec Linux est tellement poussée que le moindre problème dans la configuration réseau doit se résoudre dans les fichiers de configuration ssh du compte utilisé ?

Bref, encore une fois, je suis perplexe devant la faculté du monde du développement à adopter un outil inergonomique, rempli de fonctionnalités inutiles, et totalement inopérable pour peu que cet outil permette de démontrer une forme tordue de supériorité intellectuelle.

Et là, je me rends compte qu’en un sens, le Python ou plutôt sa communauté a peut-être changé ma perception de ce genre de choses …

#devoxxfr – l’entreprenariat au féminin

Natacha a cofondé il y a dix ans le club Girl power 3.0 qui promeut le rôle des femmes dans le numérique. Bien.
D’après Natacha, sans Ada Lovelace, les langages informatiques n’auraient pas été inventés. Est-ce qu’on parle pour autant d’elle ? Eh bien pas vraiment.
Ensuite, on évoque Maragret Hamilton. Sans elle, l’homme n’aurait jamais marché sur la Lune. Ca calme, vraiment.

On est à la fin d’un grand cycle dans nos sociétés … et en particulier en France. Voilà exactement le genre de phrases qui me fait réfléchir.

Natacha nous parle ensuite de #jamaissansElles. Une belle idée … mais je crains que le name-dropping ne soit pas vraiment un élément utile pour convaincre des développeurs de l’intérêt de la mixité.

En fait, pour être honnête, Natacha souffre de la comparaison avec les speakers précédents : son propos est intéressant (et à titre personnel j’y suis éminemment sensible). En revanche, il est un peu trop français à mon sens : trop orienté vers les conseils d’administration et la représentation publique, et pas forcément vers une transformation réelle. Mais ça n’est que mon opinion.

#devoxxfr – impact of code on society

Imagine what if the CSS design team designed a taxi … Une blague qui plait à tous ceux qui bossent dans le développement.
D’après Joel, un développeur passe 5 % de son temps à coder, et le bon sang de reste de son temps à essayer de comprendre ce qui se passe.

Et donc, Joel en profite pour nous faire une histoire des réponses aux questions des développeurs sur le web … avec un long passage sur l’horreur qu’était Experts Exchange. Je ne vais pas détailler ça, parce que Jeff Atwood en a parlé en long et en large sur Coding Horror : leur objectif a été de sortir les développeurs de cet enfer.

Pour passer à autre chose, de nos jours, avant même votre réveil, des centaines de millions de lignes de code ont déjà tourné en votre nom pour, par exemple, activer votre réveil android, télécharger vos podcasts/mails/tweets, … Et tout ça, ce sont des développeurs qui l’ont écrit, qui ont pris des décisions, qui ont écrit leur script de votre journée par leurs décisions de code.

Et autant c’est raisonnable de voir uber vous demander de traverser la rue pour monter dans la voiture, autant un employé dans un centre de livraison est totalement piloté par du logiciel : on lui dit d’aller chercher un colis, puis de prendre un chemin particulier pour aller chercher une imprimante. Ces gens ne sont en fait plus que des output devices pour le système de livraison d’Amazon.

Et parfois, ça a un impact émotionnel. Typiquement, quand Facebook manipule votre timeline, ça a un impact sur vos émotions, que ce soit quand ils expérimentent ou pas. Mais même ça, c’est loin d’être facile, parce que si Facebook veut vous montrer une timeline qui vous rend heureux, doit-il vous montrer des photos de vos anciens amis ? ou même des photos de personnes mortes ?

Et n’oubliez pas que nous ne sommes qu’au début de la transformation. Dans le futur, il y aura encore plus de logiciel qui tournera pour vous.

Alors certes il y avait des idées intéressantes. Mais comme le disait Twitter