Être ou ne pas être… Python

Voilà bien longtemps que je me dis qu’il faudrait me mettre à Python. Selon les adeptes de ce langage, une fois qu’on y a touché, c’est comme le crack. Ou disons comme le fondant au chocolat.

Mais il n’y a pas moyen, je n’arrive pas à m’y coller… Et à chaque fois que j’essaie de me lancer pour un nouveau projet, je tombe toujours sur le même problème: Python 2 ou python 3?

Beaucoup de librairies ne sont disponibles qu’en Python 2, alors que Python 3 existe officiellement depuis… 2008. Oui, 9 ans. Et à chaque fois, les librairies qui me seraient utiles pour le projet du moment n’ont pas été portées sur Python 3, alors finalement je pars sur du bon vieux C#.

Allez, je réessaye, on verra bien… Cette fois, j’ai trouvé Pillow, le portage de PIL en Python 3, qui devrait faire l’affaire. En avant Guingamp!

[PS] Je viens d’apprendre que le serpent qui se mord la queue est un symbole qui s’appelle Ouroboros L’image provient du site http://www.animogen.com. Il a l’air malin maintenant…

Interfaces de programmation pour ESP8266

La première question qu’on se pose quand on reçoit un ESP8266, c’est…

« Ah merde, mais comment je vais programmer ce machin? »

Il y a besoin de 4 fils : +, -, Rx et Tx, donc la première chose, c’est de se procurer un convertisseur USB-série. Le point crucial, c’est la tension de sortie de ce convertisseur. Elle doit être de 3.3v à la fois sur le Vcc ET sur le Tx. Le risque avec du 5V, c’est tout bêtement de griller l’ESP.

L'interface USB-série
L’interface USB-série. On peut voir en bas le sélecteur 5V-3.3V, et en haut le bouton reset.

L’ESP8266 01 a des broches au pas de 2.54mm, mais n’est pas utilisable dans une breadboard à cause de la position des broches. Donc soit on y va avec des fils et des connecteurs Dupont, soit un se fait un petit circuit imprimé pour connecter tout ça à l’adaptateur USB-série. Au début, j’utilisais la première méthode, mais j’ai finalement opté pour un petit circuit imprimé…

Vert jaune rouge... Rastaman!
Vert jaune rouge… Rastaman!

A gauche, il y a un emplacement pour un cavalier. Il sert à faire démarrer l’ESP8266 en mode programmation.

Oui, je n'avais que des connecteurs femelles à 8 contacts...
Oui, je n’avais que des connecteurs femelles à 8 contacts… C’est joli le scotch…
Et l'ensemble connecté sur le PC, prêt à être programmé!
Et l’ensemble connecté sur le PC, prêt à être programmé!

Le truc avec l’ESP8266, c’est qu’il se décline en je ne sais combien de versions différentes. J’ai aussi un 12e sous la main, et pour lui, l’emplacement des broches est un peu plus particulier, dans le sens où elles sont espacées de 2mm, et non de 2.54mm. Du coup j’ai dû commander des headers au pas de 2mm afin de faire un programmateur et adaptateur.

Il est juste glissé entre les headers pour faire le contact. Pas de soudures, c'est cool!
Il est juste glissé entre les headers pour faire le contact. Pas de soudures, c’est cool!

Après coup, je me dis que j’aurais pu placer les headers pour faire en sorte que l’ESP8266 soit carrément enfiché sur les headers. Mais là, ça va pile poil.

Il faut un cavalier en permanence entre la GPIO15 et la masse pour qu’il démarre (ça il faut le savoir…), et un autre en bas pour mettre la GPIO0 à la masse (ça c’est pour le mode programmation).

Côté connection au PC, c’est le même principe.

Un peu plus gros mais ça va bien :)
Un peu plus gros mais ça va bien 🙂

 

Mozaic framework : un environnement de développement pour PHP

C’est un sujet sensible… Si je souhaite développer un site, public ou privé, en PHP, comment m’y prendre ?

Alors pour des choses standards, des blogs par exemple, il existe moultes plateformes : WordPress, Drupal, Dotclear, Joomla (soyons fous).

Pour ma part, pour mon autre blog flexqueries.org, j’ai commencé avec Dotclear. C’était avant la version 2, et les fonctionnalités et extensions étaient assez limitées.

Puis est arrivé Joomla. Pratique, modulaire, mais… Lourd, vraiment lourd. Des temps de réponse vraiment pas top, et une architecture certes polyvalente, mais vraiment hardcore.

Il tourne actuellement sous Drupal, qui est un environnement assez riche, que j’ai trouvé un peu difficile à aborder au départ. Mais la documentation et les contributions sont nombreuses, et j’ai fini par assimiler les principes.

J’ai même osé écrire mon propre plugin, un truc qui affiche le contenu d’un répertoire du serveur dans une page…

Enfin, j’utilise WordPress pour le blog Dirty Marmotte, qui semble finalement être le plus accessible pour les utilisateurs normaux (non informaticiens).

Comme je disais, tous ces environnements sont personnalisables, mais chacun a ses propres conventions, ses techniques de développement, et en ce qui me concerne, ça m’emmerde de devoir tout réapprendre pour chaque environnement, et de passer des heures avant d’arriver à faire un truc très simple, car obligé de passer par l’API. C’est frustrant.

 

J’ai donc préféré mettre à profit mon expérience de développeur Web pour créer mon propre environnement de développement, sans fioritures. Je l’ai déjà utilisé pour le projet Mozaic, et je l’ai soigneusement enrichi et généralisé.

Pour la structure, je dirais qu’il est MVC-friendly. J’entends par là MVC, mais si on veut faire quelque chose de simple, on n’est pas obligé de se taper le cheminement complet. C’est bête, mais ça peut faire gagner beaucoup de temps.

Pour l’accès à la base de données, j’utilise adodb, dont la qualité n’est plus à prouver.

Pour les templates, j’ai eu une expérience avec Smarty, mais il est assez lourd et surtout, surtout : il ne supporte pas l’héritage. Et ça, ça craint. J’ai donc opté pour Dwoo, et franchement je ne suis pas déçu. L’héritage est vraiment super, et il conserve une compatibilité avec Smarty, donc on n’est pas perdu 🙂

Pour les curieux, c’est ici : http://dirtymarmotte.net/wiki