Journal Sortie de Blueprint v0.1

23
16
sept.
2014

J'ai le plaisir de vous annoncer la sortie Blueprint v0.1, une bibliothèque METAPOST pour produire des graphiques utiles aux project managers et system desginers. Voilà une liste (exhaustive) de figures pouvant être produites avec la bibliothèque:

Exemple de timeline graphic

timeline graphic

Exemple de schedule graphic

schedule graphic

Example de UML component diagram

UML component diagram

Example de graphique avec des légendes

chart with legends

Ce dernier graphique utilise La bibliothèque graph de METAFONT QUI permet de faire de zolis dessins, j'ai ajouté des légendes. Cela permet par exemple de faire dessins qui pètent pour StackOverflow.

Mais, je n'ai jamais entendu parler de METAPOST!

C'est un programme par John Hobby, dérivant du METAFONT de Donald Knuth. Les deux programmes sont présents dans les distribution TeX. Essayez which mpost si vous n'êts pas sûr de l'avoir installé.

Plus de détails: http://www.tug.org/metapost.html (j'aime bien l'intro de André Heck,“Learning METAPOST by doing” par exemple).

Télécharger

Le projet est publié sous bitbucket: https://bitbucket.org/michipili/blueprint/overview

Utiliser

Il faut savoir programmer en METAPOST!

Si vous vouez essayer de compiler les exemples, la procédure automatique utilise mes macros BSD Make bsdowl disponibles sous MacPorts et bientôt FreeBSD et Debian/Ubuntu. On peut aussi installer ces macros à la main bien-sûr, ou même s'en passer et se débrouiller pour compiler l'exemple à la main.

Contribuer

Si vous connaissez bien le domaine de project management vous pouvez m'aider à utiliser une terminologie plus proche de la terminologie traditionnelle (roadmap, milestone diagram et project schedule sont souvent utilisés de façon interchangeable dans ce que j'ai pu lire).

Si vous connaissez des beaux graphiques — comme celui de la timeline — que vous aimeriez bien pouvoir dessiner avec METAPOST, n'hésitez pas à ouvrir une issue dans le projet avec un ou plusieurs exemples en document joint.

En particulier, si vous avez un exemple de project schedule plus joli que le mien ou un UML component diagram un peu mieux structuré que l'exemple que j'ai pioché dans mon moteur de rechercher préféré, n'hésitez pas!

Autres solutions pour UML

Je connais Dia, mais je ne sais pas écrire des macros en Dia et je ne sais pas l'interfacer avec TeX. Je sais qu'il y a déjà une blbliothèque UML pour METAPOST, mais elle est complètement procédurale ce qui la rend très compliquée d'utilisation.

Exemple de code

Pour le graphe de fonction (extrait de example/example_leegernd.mp):

  draw begingraph(90mm, 60mm);
    glabel.bot(TEX("Size of the dictionary"), OUT);
    glabel.lft(TEX("Execution time (s)"), OUT);
    gdraw "./times.d" dashed evenly;
    gdraw "./times.d";
    beginlegend;
    legenditem(TEX("Monadic"), dashed evenly);
    legenditem(TEX("Higher-Order"), withpen pencircle);
    endlegend;
  endgraph;

Les données du graphique sont contenues dans le fichier times.d.

Pour le project schedule (extrait de example/example_schedule.mp):

  domain2("Technical implementation", schedulepalette2);
  activity2 1("Setup", month2, month2);
  activity2 2("Test", month3, month3);
  milestone2 deploy1("Deploy 1", month5);
  milestone2 deploy2("Deploy 2", month7);

Pour la timeline (extrait de examples/example_timeline.mp) chaque milestone est déclarée avec un numéro, une importance et sa position relativement à la précédente. Les annotation sont positionnées en collant une pastille sur l'autocollant de la milestone avec un paramètre horaire (11h, 6h, etc.) et en collant le texte sur ligne prédéfinie, en principe au dessus de l'autocollant mais en décalant si besoin.

  phase "Planning";

  % Assessment
  milestone 1, 2.0,  2;
  annotation "Needs\\Assessment",       11h, overline1;
  annotation "Needs Assessment\\Feedback",   6h, underline1 + u*right;

  % Research
  milestone 2, 3.0,  2;
  annotation "Research",            11h, overline3 + u*right;

Pour UML component diagram on écrit des choses comme cela (extrait de examples/example_umldiagram.mp):

  component8("<Infrastructure>\\Persistence");
  lollipop8 persistence("Persistence");
  socket8 jdbc("JDBC");
  …
  z7 access anchor =
    tick.lft7(1/2);
  z7 encrypt anchor =
    tick.top7(1/2);
  z8 persistence anchor =
    tick.lft8(1/2);
  …
  drawlollipop7 access;
  drawlollipop7 encrypt;
  drawlollipop8 persistence;

L'avantage de METAPOST est de pouvoir définir des macros. Par exemple tous les Data Providers sont définis avec la même macro, ce qui permet de changer facilement les connecteurs, etc.

  • # Liens

    Posté par (page perso) . Évalué à 2.

    Tiens, mes dessins ne sont pas montrés…

  • # Une librairie pour qui?

    Posté par (page perso) . Évalué à 4.

    une bibliothèque METAPOST pour produire des graphiques utiles aux project managers et system desginers.

    Donc une bibliothèque "bullshit-ready" tu veux dire?

    Non je déconne, j'ai juste lu cette phrase d'accroche et ça m'a fait réagir au quart de tour. Je sais pas, je suis en forme aujourd'hui! :P
    Pour rester dans le sujet, ça fait des jolis graphiques en tous cas. :-)

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

    • [^] # Re: Une librairie pour qui?

      Posté par (page perso) . Évalué à 4.

      Donc une bibliothèque "bullshit-ready" tu veux dire?

      Ce que tu dis n'est pas incompatible avec les objectifs du projet, mais ceux qui veulent produire des contenus de qualité sont libres d'essayer. :)

      Le projet Blueprint peut redonner de l'intérêt au travail des producteurs de bullshit à l'échelle industrielle, puisqu'il peut leur permettre de préparer leur présentation vaudou avec METAPOST au lieu de PowerPoint. De plus comme METAPOST est programmable, les plus ambitieux pourront produire des pipotrons de qualité qui leur permettra de buller toute la journée au boulot.

      Ceux qui ne comprennent rien à cette philosophie sont invités à lire et relire “Devenez beaux riches et intelligents grâce à Excel, Word et PowerPoint” par Rafi Haladjian.

      • [^] # Re: Une librairie pour qui?

        Posté par . Évalué à 2.

        Ceux qui ne comprennent rien à cette philosophie sont invités à lire et relire “Devenez beaux riches et intelligents grâce à Excel, Word et PowerPoint” par Rafi Haladjian.

        Le titre correct (au cas où…) est : « Devenez beau, riche et intelligent, avec PowerPoint, Excel et Word ». Et y'a un joli © sur toutes les pages ;)

        • [^] # Re: Une librairie pour qui?

          Posté par (page perso) . Évalué à 3.

          Ah oui, merci pour la correction.

          Et y'a un joli © sur toutes les pages ;)

          Cela interdit peut-être de le diffuser mais certainement pas de le lire! :-)

    • [^] # Re: Une librairie pour qui?

      Posté par . Évalué à 2.

      project managers et system desginers … "bullshit-ready"

      Tu dois confondre avec du marketing/consulting/sales.
      Chacun ses clichés :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.