Faire germer un noyau d’avocat (suite)

Bonjour à toutes et à tous,

Est-ce que je vous ai déjà parlé de mon avocatier? Ah, oui…

Souvenez-vous! Au mois de décembre,  j’avais plongé un noyau dans l’eau et en l’arrosant de patience, j’avais obtenu assez facilement une racine. Il y a un peu plus d’un mois, j’ai replanté le noyau pourvu de son appendice, dans un petit pot rempli de terreau. Je l’ai arrosé régulièrement mais point trop n’en faut quand-même.

Et le résultat ne s’est pas fait attendre. Le noyau s’est fendu en deux hémisphères parfaitement symétriques et une tige a pointé le bout de son nez. J’attends désormais l’apparition de la première feuille. J’ai baptisé mon nouvel ami, Gustave.

#LangageC : mon premier exercice

Bonjour,

Il y a quelques années, sur les conseils d’un ami qui connaissait l’intérêt que je portais à l’informatique, je me souviens d’avoir commencé à apprendre le langage C… Je n’ai pas dépassé le stade des conditions et des boucles. Je me suis lamentablement vautré dans les marécages des pointeurs et j’ai fini par tout laisser tomber. C’était une catastrophe.

Mais à cette époque, j’avais 38 ou 39 ans, j’étais encore jeune. Aujourd’hui, j’ai 43 ans. De l’eau a coulé sous les ponts… J’ai acquis la maturité et l’expérience nécessaires à l’apprentissage d’un langage aussi ardu que le C.

A vrai dire, le langage Python m’a redonné confiance en moi car je n’aurais jamais cru que je réussirais à comprendre les concepts de classes, de méthodes et de programmation orientée objet. Mais le langage Python est un langage de haut niveau, c’est-à dire plus facile à assimiler car plus proche du langage humain.

Le langage C, quant à lui, est un langage de bas niveau, c’est-à dire plus proche du langage-machine. Il a été inventé dans les années 70 par  Ken Thompson et Dennis Ritchie, deux geeks1000. De par sa puissance et son universalité, il est considéré comme le « langage de programmation de Dieu » (« the God’s programming language »). Imaginez-vous que le Big Bang a peut-être été programmé en C!

Pour ma part, j’ai le sentiment que, par sa noblesse, c’est un peu le latin des langages de programmation, sauf qu’il n’est pas encore mort. Comme ce dernier, il a donné naissance à une multitude d’autres langages et à ce titre, il a droit au respect. J’ai envie de m’initier au langage C car j’ai le sentiment qu’il me permettrait de mieux m’imprégner de la conscience-machine.

J’ai donc téléchargé Code::Blocks qui est  un  environnement de développement permettant de compiler le code-source d’un programme, c’est-à-dire de le rendre exécutable :

codeblocks

J’ai écrit mon premier programme en C et je l’ai exécuté dans une console.

Bonjour

Voici donc ce que ça donne :

langC

Joie!… Et pour finir, un peu de musique. Quoi de plus approprié que Prayer in C pour honorer le langage de programmation de Dieu :

#Python : Programmer une calculatrice en orienté objet

Dernière mise à jour du code :

http://pastebin.com/Hu472k4k

calculatrice_new

Il y a quelques semaines, j’ai rédigé un article sur une calculatrice que j’avais programmée en Python. A cette époque, je découvrais le langage Python ainsi que le module Tkinter et cette calculatrice m’avait permis de mettre en pratique les connaissances acquises au fil des chapitres. Au tout début, le code était bancal et la calculatrice était infectée de bugs. Puis, j’ai appris à structurer mon code et le résultat était beaucoup plus propre.

La calculatrice fonctionnait du feu de Dieu mais le problème est qu’on y trouvait une palanquée de variables globales… Et ça, c’est pas génial. Dans des programmes beaucoup plus lourds, c’est un véritable nid à bugs.

Et puis j’ai abordé le chapitre des classes et des méthodes. J’ai découvert ces nouveaux concepts qui permettaient d’explorer le monde de la programmation orientée objet (POO). Du coup, je me suis dit :

Tiens! Mais dans la vie normale cette calculatrice, c’est un objet. Pourquoi donc ne pourrais-je pas utiliser la programmation orientée objet pour justement fabriquer un objet? Ce serait une bonne idée, non?

Fort de cette réflexion profonde, je suis parti à l’assaut de cette méthode de programmation très puissante et j’ai retravaillé le code de ma calculatrice. J’ai créé une classe Clavier qui contient une méthode constructeur mais également une méthode touches permettant d’instancier toutes les touches de la calculatrice. Chaque touche est un objet, comme dans la vraie vie en fait!

Et puis j’ai créé une deuxième Classe Opérations qui permet d’instancier les différentes opérations d’affichage et de calcul (soustraction, multiplication, etc…). Donc, ces opérations sont également des objets, mais des objets abstraits… Si vous ne comprenez rien à ce que je raconte, c’est normal. Je ne peux pas vous en vouloir.

Le gros avantage avec la programmation orientée objet, c’est que tous les attributs sont encapsulés dans des classes et des méthodes. Ils n’interfèrent pas avec les attributs des autres objets. Donc, il n’y a pas de risques de conflits. C’est un peu abstrait, j’en conviens, mais c’est une manière de coder différente de la programmation impérative et il n’y a pas d’autre choix que de la mettre en pratique si on veut en découvrir toutes les facettes.

Au bout du compte, si vous lisez attentivement mon nouveau code, vous constaterez qu’il n’y a plus de variables globales… Verschwunden! comme on dit ici en Allemagne. Elles ont disparues. Le code n’est pas plus court mais il est écrit de telle manière qu’il en devient portable. Il est découpé en portions qui, certes, s’imbriquent et interagissent, mais il ne s’agit plus d’un enchevêtrement de variables et de fonctions difficile à démêler (même pour celui qui l’a écrit).

Donc, en guise de conclusion, je dirais que c’est mieux.

Ma #Raspberry Pi, nantie de sa distribution #UbuntuMate configurée en espéranto

La semaine dernière, j’ai eu la joie de découvrir dans ma boite aux lettres un petit paquet contenant une Raspberry pi et divers accessoires. Ce n’était pas étonnant puisque je l’avais commandée quelques jours plus tôt sur Amazon.de.

IMG_20160209_175418

Mû par une curiosité de geek attardé, j’entrepris immédiatement de la rendre opérationnelle. Je l’équipai donc de son armure en PMMA afin de protéger la carte-mère de toute décharge d’électricité statique. Puis après avoir branché l’alimentation, la clé USB-wifi et la mini-carte SD pas plus grosse qu’un ongle, je branchai mon clavier sur l’un des ports USB. Il ne me restait plus qu’à brancher mon écran et la fête pouvait commencer… Sauf que la Raspberry Pi est équipée d’un port HDMI alors que mon écran est équipé d’un port VGA et d’un port DVI.

IMG_20160209_180238           IMG_20160209_180302

Impossible donc de continuer l’opération Übergeek. Faisant fi de ma frustration, je commandai un adaptateur DVI/HDMI dans un modeste magasin d’informatique, tout près de chez moi, dans le Nord de l’Allemagne. Je le reçus le lendemain et constatai avec bonheur que ce petit adaptateur ne coûtait que 3 €, c’est-à-dire moins cher que sur Amazon.de.

IMG_20160216_124103

Je connectai donc mon écran et malgré le silence complet de la Raspberry (rien à voir avec les ventilateurs bruyants de Volgor, mon fidèle ordinateur de bureau!), j’eus la joie de constater qu’une image se formait… en l’occurrence une framboise!

Une fenêtre d’accueil m’invita à installer le système d’exploitation Raspbian, ce que j’entrepris séance tenante. Quelques minutes plus tard, je découvris avec curiosité ce système d’exploitation spécialement conçu pour la Raspberry Pi. J’allais vite déchanter…

Le bureau était affreusement laid et après plusieurs tentatives infructueuses, je réalisai avec horreur qu’il m’était impossible de me connecter à la WLAN (la WIFI allemande). Raspbian ne me plaisait pas du tout.  Pendant plusieurs jours, je traînai mon désespoir sur tous les forums et les blogs consacrés à la Raspberry Pi. Eussé-je compté les fois où je formata et reformata ma mini carte SD pour tenter d’y graver l’image d’un autre système d’exploitation tout en essayant de la rendre bootable, que vous eûtes été surpris.

J’avais touché le fond lorsque enfin une lumière m’apparut : je pouvais installer une image bootable d’Ubuntu MATE. Cette solution était la bonne. La distribution s’installa sans difficulté et avec une connexion WIFI immédiatement opérationnelle! Pour le plaisir de sortir du lot, je l’ai configurée en espéranto.

Voilà… J’ai rédigé cet article en utilisant ma Raspberry Pi. J’ai besoin de quelques jours pour en appréhender toutes les fonctionnalités et cela fera l’objet d’un autre article.

#Python : classes, méthodes et héritage

Et voilà… C’est parti mon kiki! Je viens d’attaquer le chapitre des classes. C’est un peu ardu au départ et c’est idéal pour attraper des migraines mais il faut s’accrocher car cela permet d’entrer de plain-pied dans la programmation orientée objet (POO). « Plain-pied » n’est pas une grossière faute d’orthographe. C’est vraiment comme ça qu’on l’écrit.

À mon grand étonnement, j’ai réalisé l’exercice 12.2 sans trop de difficulté et je commence à comprendre maintenant des concepts tels que l’encapsulation, la méthode constructeur, les attributs d’instance etc… Bref, j’explore avec beaucoup de bonheur un nouveau continent.

La programmation orientée objet permet de maitriser un niveau d’abstraction plus élevé. Je me permets de citer Gérard Swinnen, l’auteur du livre :

  • Au début de votre étude, vous avez d’abord utilisé de simples instructions. Vous avez en quelque sorte programmé à la main (c’est-à-dire pratiquement sans outils).
  • Lorsque vous avez découvert les fonctions prédéfinies, vous avez appris qu’il existait ainsi de vastes collections d’outils spécialisés, réalisés par d’autres programmeurs.
  • En apprenant à écrire vos propres fonctions, , vous êtes devenus capables de créer vous-même de nouveaux outils, ce qui vous a donné un surcroît de puissance considérable.
  • Si vous vous initiez maintenant à la programmation par classes, vous allez apprendre à construire des machines productrices d’outils.

Je prends le temps d’avancer pas à pas dans mon apprentissage et je n’hésite pas à revenir en arrière lorsque je me rends compte qu’un concept est mal assimilé. Je me pose maintenant la question de savoir si je ne devrais pas commencer en parallèle l’étude du langage C. Il s’agit d’un langage de bas niveau, c’est-à-dire plus proche du langage-machine et par conséquent plus difficile à assimiler mais il me permettrait peut-être de pénétrer encore plus profondément dans les entrailles de la programmation. Je me dois d’y réfléchir…

CompteBancaire

#Raspberry Pi 2 model B

Bonan vesperon al ĉiuj, karaj amik(in)oj,

Alors voilà, il y a quelques jours, je me suis mis en tête d’acheter un de ces mini-ordinateurs pas plus gros qu’une carte de crédit affublé du drôle de nom de Raspberry Pi. Quand je dis « ordinateur », c’est lui faire beaucoup d’honneur car ce dernier se résume à une mini carte-mère nue comme un ver. Voici donc à quoi ça ressemble :

Raspberry_Pi_2_Model_B_v1.1_top_new

Je n’ai pas encore finalisé l’achat car j’essaie de déterminer quelle est la meilleure option. Soit j’achète uniquement la carte, soit j’achète un lot comprenant aussi quelques accessoires… Car il est bien évidemment nécessaire d’acquérir quelques accessoires supplémentaires pour permettre à ce circuit imprimé inerte d’interagir avec les humains. Voici une liste non exhaustive :

  • Une alimentation :                                                                         alim
  • Une mini carte-mémoire sur lequel est installé le système d’exploitation Raspbian :                                                                                                                carte SD
  • Une clé USB wifi :                                                                                                    usb_wifi
  • Des dissipateurs thermiques :                                                                          dissipateut thermique en aluminium
  • Un mini-ventilateur :                                                                           ventilateur
  • Un mini clavier :                                                                                             clavier

Je pourrai brancher une interface graphique et baguenauder sur Internet grâce au navigateur Midori, ou bien je pourrai me servir de mon Raspberry comme d’un serveur. Je pourrai aussi me lancer dans la domotique si ça me chante… Il existe apparemment une foultitude de possibilités plus ou moins ludiques et c’est ce qui explique que malgré ce nom ridicule, les Raspberry Pi se soient écoulées à des millions d’exemplaires.

Pour protéger la carte, il existe aussi des boîtiers transparents comme celui que vous voyez sur la photo ci-dessous. Le PMMA transparent apporte tout de suite une petite touche « bricolman » je trouve :

boitier_raspberry

Les prix sont tout à fait raisonnables. Le modèle le plus récent (Pi 2 model B) coûte environ 40 € mais il existe aussi une carte à 5 € (le modèle Pi Zéro).

En ce qui concerne le système d’exploitation, il est possible d’installer Raspbian (contraction de Raspberry et Debian). C’est un OS concu précisément pour les Raspberry.

Voilà tout ce que je peux dire pour l’instant puisque je ne l’ai pas encore achetée mais croyez bien que ça ne saurait tarder. J’en profiterai peut-être pour faire un tutoriel. Rendez-vous dans quelques semaines…

 

2025 : Les premiers pas de l’homme sur #Mars

Elon Musk, PDG de la société Space X, est un impatient pathologique et c’est peut-être pour cette raison qu’il est l’homme de la situation. Ce milliardaire américano-canadien d’origine sud-africaine s’est mis en tête d’envoyer des êtres humains sur la planète Mars à l’horizon 2025, c’est-à dire dans neuf ans! D’aucuns pensent qu’il ferait bien de prendre un peu de repos mais moi, je suis persuadé que ce gugusse de 44 ans n’est peut-être pas aussi illuminé qu’il n’y parait…

Elon_Musk_2015

Pour mémoire, le programme Apollo qui consistait à envoyer un homme sur la Lune, fut lancé le 25 mai 1961 par le Président Kennedy. Le  21 Juillet 1969, soit huit ans plus tard, Neil Armstrong et Buzz Aldrin plantaient le drapeau américain dans la régolite sélène.

Elon Musk est pressé d’envoyer des hommes à la conquête de la planète Mars car il craint, à juste titre, qu’une troisième guerre mondiale ne vienne hypothéquer à jamais les chances de l’humanité de se disperser au-delà de la planète Terre. La prochaine guerre mondiale sera assurément la dernière. Il ne restera plus grand monde pour témoigner de la bêtise humaine.

La planète Mars représente aujourd’hui la nouvelle frontière, celle que l’humanité se doit de dépasser si elle ne veut pas disparaître. Ce rôle a été tenu pendant plusieurs siècles par les États-Unis d’Amérique. Ce pays a accueilli des millions de migrants fuyant la misère ou les persécutions. Ils rêvaient simplement d’une vie meilleure et pour atteindre leur objectif, ils n’ont pas hésité à traverser un océan parfois hostile en abandonnant derrière eux ce qu’ils avaient de plus cher.

Aujourd’hui, la Terre est ravagée par les guerres et le fanatisme. Il n’est pas exagéré de qualifier la période actuelle de « second moyen-âge ». Malgré l’avènement d’Internet, nous sommes  entrés dans l’obscurité. Les réfugiés fuyant la guerre au Proche-Orient ne sont que le début d’un mouvement de grande ampleur. Bientôt suivront les réfugiés climatiques, ceux que le soleil brûlant fera fuir, ceux qui seront obligés de quitter leurs îles ou leurs côtes trop basses, submergées par les flots. Peut-être que tous ces Terrien(ne)s qui n’auront plus de patrie et qui seront refoulé(e)s par toutes les nations peureuses, peut-être seront-ils heureux de prendre un aller simple pour la planète rouge.  Là-bas, dans ce nouveau monde épargné par les guerres et l’obscurantisme, ils auront la possibilité de bâtir une nouvelle nation. Tout sera à construire dans cet immense désert minéral entouré d’une atmosphère toxique. Mais la synergie des volontés de tous ces Terrien(ne)s déraciné(e)s accomplira des miracles car ils auront laissés leurs peurs sur la Terre, à trois minutes-lumière de leur nouveau monde. Et trois minutes-lumière, c’est bien plus qu’un océan liquide.

Elon Musk a raison de se fixer un objectif difficilement réalisable car c’est toujours dans l’urgence que les énergies positives se subliment. Depuis que je suis enfant, je rêve de voir un vaisseau se poser sur la planète Mars. Je rêve de voir les premiers Terriens y fonder la colonie-mère. J’espère simplement que ce rêve se matérialisera avant la fin de mon existence.

dragon