PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

La bande des Geexxx : Ou l’art de documenter facilement une base de données

mardi 11 mars 2014 à 10:24

#mylife je viens de commencer un nouveau boulot chez La Roue Verte, une entreprise de covoiturage sur Grenoble, qui met à disposition son outil gratuitement pour les particuliers et base son business model sur du SASS avec les entreprises.

Pourquoi je vous raconte ça ? Parce que lorsque l’on commence un nouveau travail, il faut  « rentrer dans la base de code », autrement dit, se familiariser avec le produit. J’ai donc eu la proposition suivante : « On a pas de doc, et ça nous embête, or, quel meilleur moyen de rentrer dans le code que de la rédiger ? Si tu es capable de faire la doc sans faute, c’est que tu as compris comment ça marchait ! ».

Un traitement de texte ? C’est quoi ?

Aussitôt dit, aussitôt fait, me voici à devoir documenter une base de données PostgreSQL, le modèle de notre application. Aucune contrainte sur les outils à utiliser, il faut juste que le rendu final soit un PDF. La solution de facilitée aurait été d’ouvrir LibreOffice Writer et de prendre une à une chaque colonnes de chaque tables en la décrivant. Cela peut sembler fastidieux, mais de toute manière, je n’y échapperai pas. Non, ce qui m’ennuyait dans cette solution, c’était le maintien à jour des données. Si la doc aurait été à jour au moment de sa création, il y avait fort à parier que le fichier texte n’allait pas être modifié par les développeurs lorsqu’ils modifieraient le schéma de la base, que ce soit par oubli, par flemme ou par manque de temps. Or, dès que le document n’est potentiellement plus le reflet exact de la base, même si la différence entre les deux est mineure, il ne devient plus possible de s’y référer, on ne peut pas savoir ce qui est correct de ce qui n’est plus à jour. L’intégralité du document (et ma vingtaine d’heures passées à le rédiger) devient inutile. Une doc pas à jour équivaut à « pas de doc ».

La génération automatique à la rescousse

La solution pour avoir une documentation toujours à jour ? La générer directement depuis le schéma de la base de données. Un coup de DuckDuckGo, et je découvre Autodoc, un outil en ligne de commande à qui on donne simplement l’accès à la base de données, et qui nous extrait des fichiers au format HTML, Dot, Dia et DocBook XML. HTML ? Parfait pour moi ça. Facile à mettre en forme en deux coups de CSS, qui se transformera en une seconde en un PDF grâce au « Imprimer dans un fichier » de Firefox… Je lance la génération.

Toutes les tables sont là, les colonnes aussi, mais aussi les contraintes (clef primaire, clef étrangère, not null, valeur par défaut…) ou encore les fonctions triggers, des statistiques, bref, beaucoup de choses. Les graphiques .dot ne sont pas vraiment exploitables, mais pas grave, ce n’est pas ça qui m’intéresse. Après un coup de CSS pour rendre le résultat moins moche, j’ai maintenant une documentation qui se génère en une commande, et qui est donc toujours à jour par rapport au schéma de la base de données.

C’est une bonne nouvelle, mais les informations contenues dans ce HTML sont finalement assez faibles. Il n’y a rien de plus que ce que je pourrais lire dans le create.sql, certes, sous une forme un peu plus lisible, mais tout de même, ce qui est intéressant, c’est de dire à quoi correspondent chaque table et chaque colonne. Ici, je connais leur type et leurs contraintes, et je peux imaginer ce qu’elles font grâce à leur nom, mais tout de même, ce n’est pas cela que l’on appelle une documentation.

COMMENT ON, THE solution

Après quelques recherches supplémentaires, j’ai donc trouvé la solution idéale pour le moment : COMMENT, qui permet d’ajouter très facilement un commentaire à à peu près tout et n’importe quoi (table, column, constraint, index, database… la liste est longue, vous pouvez la consulter dans la doc). La syntaxe est ultra simple :

COMMENT ON TABLE user IS 'Contient les utilisateurs inscrits dans l''application.'; -- Ajoute un commentaire sur la table "user"
COMMENT ON TABLE user.name IS 'Le nom de l''utilisateur'; -- Ajoute un commentaire sur la colonne name de la table "user"

Un coup de génération, et les commentaires s’affichent dans le .html :)

Cerise sur le gâteau, postgresql_autodoc nous permet de choisir le template sur lequel il doit se baser pour génerer la doc. J’ai donc modifié ce fichier pour retirer tout ce qui était inutile, améliorer le design et lui demander d’interpreter le HTML dans les commentaires. Magnifique ! Grâce à des et un bout de JavaScript, nous voici maintenant capable de masquer ou afficher en un clic les parties techniques de la documentation, celles qu’on a pas besoin de montrer quand on présente la partie métier de l’application.

Bien sûr, cette solution n’évite pas le fait que si un commentaire n’est pas ajouté ou pas mis à jour lors de la modification du schéma, la doc ne sera pas exactement à jour. Mais comme elle se base sur le schéma pour être généré, on est absolument sûr que toutes les tables et colonnes sont là et avec le bon nom, ce qui est déjà nettement mieux qu’une doc non reliée à la base de données.

Voilà, la mauvaise nouvelle, c’est que la commande COMMENT est spécifique à PostgreSQL et n’est pas dans le standard SQL, mais de toute manière, Postgres est la meilleure DB non ?

Gravatar de La bande des Geexxx
Original post of La bande des Geexxx.Votez pour ce billet sur Planet Libre.

Framablog : Framapad : 3 tutoriels vidéos en situation d'éducation

lundi 10 mars 2014 à 18:32

Il y a un peu moins d’un an nous faisions le constat que Framapad était de plus en plus souvent utilisé dans l’éducation. En illustrant cela avec, entre autres, un billet sur l’expérience de Frédéric Véron, professeur de SVT dans l’Académie de Créteil.

Il nous propose ici, merci à lui, 3 tutoriels vidéos récemment mis en ligne.

Découverte et utilisation de Framapad (pads publics)



Comparaison et avantages de la création d’un compte (pads privés)

Attention : La création de compte risque d’être bientôt suspendue parce que non maintenue, nous vous invitons plutôt à utiliser les pads publics.



Exemple de travail collaboratif avec des élèves de Sixième



Gravatar de Framablog
Original post of Framablog.Votez pour ce billet sur Planet Libre.

La vache libre : Masna – Un outil intéressant pour gérer vos scripts Nautilus sur Debian, Ubuntu et dérivés

lundi 10 mars 2014 à 15:00

masna

Nautilus est un navigateur de fichiers qui a beaucoup évolué ces derniers temps et bien que pas mal de ses fonctions aient été supprimées sur l’autel du minimalisme, il n’a pas encore perdu la possibilité d’être agrémenté de divers scripts. Ceux-ci vous permettent essentiellement d’ajouter des fonctions à Nautilus, que vous pourrez exploiter ensuite via le menu contextuel de ce dernier. Si vous voulez en savoir plus vous pouvez consulter ce billet, Agrémentez Nautilus 3.8 de quelques scripts, où j’en présentais quelques-uns. Masna est une nouvelle application écrite en Python qui va vous permettre de gérer très facilement vos scripts Nautilus, grâce à une interface utilisateur simple à prendre en main et facile à utiliser.

Masna permet pour le moment d’activer, de désactiver ou de supprimer les différents scripts et de créer des liens symboliques afin de pouvoir en utiliser sans devoir les copier au préalable dans usr/share/nautilus. Pour ceux qui se poseraient la question Mansa gère automatiquement les autorisations des scripts présents dans usr/share/nautilus.

Si vous voulez en savoir plus sur ce nouveau projet intéressant issu du travail de la team Florian Diesch (Unsetting et Privacy Indicator), vous pouvez vous rendre sur la page officielle du projet.

Pour le moment cette application n’est disponible que sur Debian, Ubuntu et dérivés et avant de vous lancer, je vous rappelle qu’elle doit être considérée comme une version alpha. Une utilisation en production n’est donc pas recommandée.

Si ça vous tente vous trouverez les sources et le .deb sur la page de téléchargement de Masna.

Amusez-vous bien.

source

Gravatar de La vache libre
Original post of La vache libre.Votez pour ce billet sur Planet Libre.

Dogmazic : 1% des artistes accaparent 77% du marché de la musique, et vous ?

lundi 10 mars 2014 à 13:28

etude-musique-news

« L’industrie de la musique est une « économie de superstar », c’est-à-dire qu’une très petite part des artistes et des œuvres représente une portion disproportionnée de tous les revenus. »

C’est ce que démontre en creux l’analyse de Mark MULLIGAN, chiffres et graphiques à l’appui. La musique, les artistes, les œuvres comme des produits, vendus en supermarché, cadenassés par les DRM (itunes et cie), condamnés à la pauvreté auditive (voir la qualité d’écoute de Deezer)… Avec tout ce tableau, beaucoup disent et sont persuadés, de manière un peu fataliste qu’on ne peut rien y changer, que la SACEM (qui engraisse bien plus les éditeurs et les plus gros auteurs qu’elle n’aide les plus petits) ne peut être évitée… Or des alternatives existent. Parmi celles-ci, Dogmazic et l’association Musique Libre.org permettent de changer un peu les choses. Depuis près de 10 ans, l’association œuvre auprès des artistes, autorités, labels pour que cette alternative existe, vive et soit reconnue. Autant vous dire que c’est le pot de terre contre le pot de fer ! Mais c’est en y allant avec nos mains, dans cette tonitruante boue remplie de nombreuses pépites qu’on y arrive. C’est aussi en voyant les trésors cachés du domaine publique, des usages des licences libres qu’on trouve toute l’énergie suffisante pour faire face. Mais c’est aussi avec votre aide, précieuse depuis tant d’années, que nous pouvons nous passer de publicités, que nous pouvons travailler pour l’intérêt commun, celui des cultures, de l’accès aux cultures et de la réappropriation des cultures par et pour tous. Vaste domaine que voici, vaste mission que nous nous donnons, mais il est vrai que tout ceci ne vivrait pas sans une prise de conscience collective du rôle de l’expression des artistes, du rôle de chacun dans notre société pour dénoncer et clamer haut et fort que la culture n’existe que si elle est libre de toutes entraves intellectuelles ou techniques.

Cette année de dixième anniversaire de notre association, de l’ouverture du site Dogmazic.net, nous permet de vous demander une contribution exceptionnelle, de participer à notre action. Nous organisons une campagne de dons massive permettant de nous donner les moyens pour faire vivre cette alternative. Merci d’avance pour votre soutien sans failles depuis tant d’années, et merci à ceux, nouvellement inscrits, qui nous soutiendrons cette année !

Pour ceux qui ont des connaissances en langues étrangères, on a besoin de vos talents pour traduire en allemand, espagnol et italien les quelques textes qui accompagneront la campagne de dons !

Si vous voulez nous suivre, voici un lien qui retrace le développement de la campagne de dons : https://trello.com/b/j9Dv7Loa/musique-libre

Librement,

L’association Musique Libre.

Gravatar de Dogmazic
Original post of Dogmazic.Votez pour ce billet sur Planet Libre.

Monnaie libre : Béthune 14 Mars

lundi 10 mars 2014 à 10:08

Après avoir été convié aux Roumics de Lille 2013, je suis de nouveau sollicité dans le Nord, pour « la fête de l’internet » de Béthune le 14 Mars à 18h00, pour participer à une introduction au thème des monnaies locales, dans une rencontre appelée « monnaie locale et solidaire » où j’interviendrai pour ma part pour mettre en perspective et appeler à la prise de conscience des codes des monnaies qu’elles soient locales ou non.

Béthune 2014

Béthune 2014

Pour illustrer la nécessaire prise de conscience des codes des monnaies que l’on décide d’adopter j’y présenterai des exemples de codes, tel celui non-libre et centralisé des monnaies dominantes, celui de monnaies gagées sur des valeurs arbitraires, celui d’une monnaie décentralisée non-libre tel le Bitcoin, celui décentralisé d’une monnaie libre tel OpenUDC / uCoin, celui d’une monnaie libre dans un environnement restrictif tel Monnaie M, ou d’autres encore.

(Visited 43 times, 6 visits today)

Gravatar de Monnaie libre
Original post of Monnaie libre.Votez pour ce billet sur Planet Libre.