Le code du dimanche: Grafit (oui, un lundi... je suis un fou, moi )

Alors là, on est clairement dans le code du dimanche, et vous allez voir pourquoi...

J'avais envie de faire un outil de visualisation de données facile d'accès et simple, comme un microservice que je pourrais utiliser par la suite dans une de mes applis...

Comme toujours, avant même de voir si ça existerait pas déjà, je me demande comment faire le truc moi-même et ce que je vais pouvoir apprendre avec...
C'est alors que je me dis que le SVG ce serait bien:

  • redimensionnable
  • léger
  • universel
  • je ne connais pas la génération de SVG en PHP : youpi

Je me lance...

et j'arrive à des résultats pas trop dégueus mais tout se corse (chef-lieu Ajaccio) quand je dois placer le texte (nombres, noms de colonnes etc)

et là c'est le drame

C'est emmerdant à center, c'est emmerdant à redimensionner: bref c'est emmerdant. Pour résumer.

J'en ai tellement chié pour un résultat tellement pas terrible que, d'un coup, je me suis rappelé que mon copain JerryWham avait fait une lib juste pour ça !

phpGraph

Une lib qui permet de transformer des données en graphique au format SVG directement, avec des options de configuration et des rendus différents (ligne, barres, camemberts etc), ça vous tente ? Ben c'est par là :

Comme le plus dur est fait (et VRAIMENT bien fait)

Je me suis contenté de faire un script qui permet de passer des données et la config à la lib via $_GET

  • data: des données au format json [123,234,345,...] ou {"cle":valeur...}
  • w,h: largeur et hauteur (opt.)
  • color: couleur du graph au format FFFFFF (opt.)
  • lines/filled:graphique en ligne ou en lignes remplies (par défaut, le graph est en barres)
  • steps: le pas des graduations en ordonnée (calculé par défaut en fonction du maximum)
  • title: le titre du graph (opt.)
  • hidekeys: pour cacher les clés en pied de graph

Et ça donne quoi ?

Données d'un tableau séquentiel

Les clés ne sont donc pas affichées.

api.warriordudimanche.net/grafit/?data=[123,321,51,656,89,54,67,56]

Le même avec un graph de surface

api.warriordudimanche.net/grafit/?data=[123,321,51,656,89,54,67,56]&filled

Avec des données de tableau associatif

Par exemple des données générées par GenContent

api.warriordudimanche.net/grafit/?color=FF0000&data={"01/08/18":"2822","28/11/19":"5320","01/05/16":"3856","03/04/19":"5087","25/10/14":"7137","27/12/17":"6365","08/11/15":"6616","01/05/17":"1341","01/08/14":"2742","05/07/20":"4697"}

https://api.warriordudimanche.net/grafit/?color=FF0000&lines&hidekeys=&data={"23/02/11":"9391","18/09/15":"5098","07/10/12":"8553","04/06/12":"3349","09/07/13":"1260","31/07/17":"1311","10/05/14":"2039","01/12/17":"273","19/08/14":"4641","04/07/11":"3806","24/11/12":"9094","20/10/19":"4837","14/02/11":"9425","24/06/17":"5971","09/08/15":"4326","18/07/15":"71","06/10/16":"1706","02/08/14":"9249","01/07/18":"3612","22/10/11":"375","27/04/17":"3596","04/11/15":"3732","21/03/13":"407","18/07/16":"2180","16/04/14":"9401","22/12/11":"3474","10/07/15":"4725","07/12/11":"2081","10/10/14":"3216","12/03/16":"3654"}[/center]

Attention !

Ce n'est pas pour visualiser des données épiques, multidimensionnelles ou vraiment très nombreuses (les clés se chevauchent s'il y a trop de données et on peut les masquer en ajoutant hidekeys en paramètre.)

Ce sera sans doute appelé à évoluer mais bon, je me suis bien amusé et j'ai touché du doigt que faire du SVG, ça se fait pas entre deux portes au doigt mouillé...

sansdeconner.jpeg

Mumi - Nothing Else Matters (handpan cover) - YouTube

Et voilà... ça me noue la gorge. Tout est parfait: sa voix, son interprétation, la pureté du son de l'instrument... Et pourtant, c'était pas facile de renouveler cette chanson qui, à force de reprises, avait perdu une grande partie de sa puissance (et je fais partie de ceux qui ont découvert le Black album lors de sa sortie et qui ont vénéré ce morceau )

Via http://links.bill2-software.com/shaarli/


Coding Fonts — Anonymous Pro on CSS-Tricks

@SebSauvage Quand la destinée se mêle d'une conversation sur les polices de caractères dans laquelle on aborde le choix de police pour les blocs de code: tu t'aperçois que css-tricks a fait une showcase pour les polices dev...

c'est beau, le destin !

Bédé : Carbone et Silicium

Il y a peu, je vous avais conseillé la lecture de shangri-la de Matthieu Bablet... voilà qu'à la faveur d'un déplacement en ville, j'ai acheté une autre de ses créations: Carbone et Silicium, l'histoire de deux IA androïdes qui traversent l'histoire humaine et leur propre histoire, de bouleversements en avènements, de fins en recommencements...

C'est l'occasion d'un long périple à la beauté parfois sauvage et cruelle que l'on suit par bonds temporels et au cours duquel on s'interroge entre-autres sur la nature de l'humanité.

Les planches sont superbes: comme toujours, les couleurs, les cadrages, les paysages sont magnifiques mais dans cet album, le rendu est plus contemplatif que narratif (pour des raisons que vous découvrirez en lisant l'album) et les dialogues sont au service de ce voyage presque initiatique.

Comme les précédents albums, la réalisation de Carbone et Silicium est parfaite: un papier épais, une reliure tissu, un encrage de qualité... Sans compter qu'avec ses 250 pages, l'histoire prend son temps et on n'a pas l'impression d'avoir terminé avant d'avoir commencé comme avec d'autres albums dont le prix est à peine inférieur (coucou les derniers trolls de troy)

Foncez !

IMG_20200926_120751.jpg

IMG_20200926_120816.jpg

IMG_20200926_120909.jpg

IMG_20200926_120932.jpg

IMG_20200926_120945.jpg
Fil RSS des articles