Bloguer est un art difficile.

Un petit meta article pour réfléchir sur la communication sur le Web.

La communication est essentielle dans un projet, et encore plus lorsqu’il est Libre. Il n’y a rien de pire que de travailler « en boite noire » sans communiquer avec la communauté, et d’arriver plusieurs mois plus tard en disant « TINTIIIN ! Voici une nouvelle version qui a complétement changé de direction par rapport à ce que vous croyiez et maintenant c’est trop tard pour faire quoi que ce soit ! ». Je pense d’ailleurs honnêtement que c’était la cause principale de l’échec du projet diaspora* lorsqu’il était mené par ses fondateurs. Même si on s’est un peu amélioré depuis, il reste beaucoup d’effort à faire en ce sens. Pourquoi communiquer est-il si important ? Vous connaissez déjà la réponse à cette question : un projet a tout à gagner à être connu. Plus d’utilisateurs, ce qui en fait un projet plus attractif, plus rentable s’il est basé sur ce genre de modèle d’affaire, plus crédible aussi, et plus fort, lorsqu’il y a des bras de fer avec les concurrents. Mais aussi, une plus grosse communauté qui, si elle est bien gérée, peut amener plus de contributeurs (développeurs, mais aussi designeurs, sysadmin, traducteurs… Tous sont nécessaires) et donc un projet de meilleure qualité. Il faut savoir jouer avec avec finesse, mais les bénéfices sont souvent à la hauteur des efforts fournis. Maintenant que nous sommes d’accord sur le fait que la communication est essentielle et que le succès ou l’échec d’un projet dépend d’abord d’elle, peu importe sa qualité technique, je peux rajouter deux gros bémols.
Lire la suite »

Qu’est-ce que le projet Firefox OS ?

ffosbgÇa y est, le système d’exploitation de Mozilla arrive en France grâce à un partenariat entre le constructeur ZTE et E. Leclerc. C’est donc le ZTE Open C qui sera le premier téléphone sous Firefox OS commercialisé en France. Vous pouvez lire à ce sujet le billet de blog officiel de Mozilla. Je ne vais pas m’étendre spécialement sur ce téléphone, vous pouvez aller voir le site de ZTE pour cela. Je vais parler ici du système lui même, de pourquoi Mozilla s’est lancée dans un tel projet, pourquoi il est extrêmement important pour notre Liberté, et pourquoi je crois en lui et pense que c’est la solution, plus que les autres projets Libres (Sailfish OS par Jolla, Ubuntu, Tizen…).

D’abord, qu’est-ce que c’est que Firefox OS (anciennement connu sous le nom de boot to gecko) :

  • Un système d’exploitation complet, découpé en trois couches : Gonk (C) un Linux qui permet de parler avec le materiel, Gecko (C++) le moteur de rendu de Firefox (interprétation du HTML + moteur Javascript) et Gaia (HTML5 / CSS3 / JavaScript) l’interface du système
  • Il est orienté mobile, même s’il peut s’installer relativement partout (il y a actuellement des partenaires qui travaillent sur des tablettes, des télévisions et un dongle HDMI à la chrome cast)
  • C’est un Logiciel Libre (la licence n’est pas la même selon les couches mais respecte toujours les 4 libertés) conçu par une fondation à but non lucratif
  • Il possède actuellement toutes les fonctionnalités de base d’un smartphone : appel, SMS/MMS, gestion des contacts, email, agenda, musique, camera, radio, suivi conso, connectivité (3G, WiFi, bluetooth, NFC), magasin d’application…

On peut maintenant arriver à la vraie question :

Pourquoi Firefox OS, un système d’exploitation basé sur le web ?

Lire la suite »

diaspora* v0.4.0.0

Ça bouge du côté de diaspora* en ce moment. On a sorti une version 0.4.0.0 immédiatement suivi par une 0.4.0.1 pour corriger une régression sous MySQL qui nous avait échappé. Le changelog complet est disponible sur Github, mais je vais quand même vous présenter les principales nouveautés de cette version.
Lire la suite »

Le HTTPS, ce n’est pas automatique !

Suite aux révélations d’Edward Snowden l’année dernière, on a vu fleurir peu à peu des sites qui proposent un accès en HTTPS. Pour les plus novices d’entre nous, le HTTPS c’est le moyen d’accéder au web de façon chiffrée. En gros, c’est grâce à ça que vous pouvez vous rendre sur Google Facebook les sites Internet sans que de (méchants) gens ne puissent intercepter ce que vous voyez.
Si, à la base, l’idée de proposer un tel accès à un site Internet est louable, j’aimerais tout de même rappeler que le HTTPS, ce n’est pas automatique !
Lire la suite »

Naviguez tranquille avec Docker

Depuis quelques mois je vois régulièrement passer des articles parlant de Docker. Au début, je ne comprenais pas trop ce que c’était et je me disais que si c’était si cool que ça, j’en entendrais parler encore. Puis je revois passer, j’ai des besoins, je me renseigne, je DuckDuckGooglise… Bref, ça a l’air cool. Je vais donc essayer de faire un article assez court histoire de vous faire rapidement comprendre pourquoi Docker c’est de la balle.
Lire la suite »

Diaspora*, à l’usage

Le dernier article de Maniatux, à propos de Diaspora*, m’a donné envie de réagir. Notez bien que ce n’est pas tant son article qui me fait prendre la plume de nouveau sur ce blog après deux ans d’absence mais plutôt le fait que j’ai envie de faire revivre un peu les Geexxx en compagnie de copain Fla.

Maniatux nous explique que, non, Diaspora*, ce n’est pas pour lui en nous expliquant les raisons de son désarroi. J’avoue avoir été déçu car la majorité de ses critiques portent sur l’installation d’un pod et non pas sur l’utilisation qu’il a pu en avoir. Je ne m’étendrai pas sur les « Ruby c’est du caca » « Y a des bugs c’est tout pourri » et autres « Ça manque de fonctionnalités de la mort qui tue » : il a tout à fait raison. D’ailleurs j’avais déjà critiqué le projet sur mon blog perso (hop ! Backlink gratuit !) il y a deux ans jour pour jour (les hasards du calendrier). Les choses n’ont finalement que peu évolué depuis, mais surtout à cause du manque de contributeurs au code.

Par contre, une phrase m’a surpris :

Diaspora est un twitter castré, je ne vois pas ce que cela apporte de plus par rapport à un blog pour le moment.

De un, j’aurais plutôt pris Google+ en exemple de castration, mais ça on s’en fout.

De deux, bien sûr que Diaspora apporte quelque chose en plus aux blogs traditionnels ! Les vieux blogueurs (ou gourous comme ils préfèrent s’appeler) auront beau vanter les mérites du blog, il manquera toujours au moins un petit quelque chose : l’ambiance générée par l’effet communautaire. Un blog peut évidemment comporter une petite communauté, mais cela sera totalement différent. Une analogie simple mais que je pense pertinente : le réseau social est au blog ce que le bar est à notre chez nous. On peut se retrouver avec des potes chez nous à discuter comme l’on peut se retrouver autour d’une bière dans un bar à discuter avec des potes. L’ambiance.

Je conçois que mon analogie est un peu tirée par les cheveux et on l’appréciera ou non, mais c’est ma vision des choses. Pour être plus direct, il y a un certain nombre de choses que Diaspora* m’apporte et que les blogs n’ont pas :

  • Une identité unique : le nerf de la guerre ! D’un blog à l’autre, nos commentaires n’ont aucun lien entre eux : une personne A peut très bien commenter sur mon blog avec le pseudo « J’aime le fromage » tandis qu’il s’agira d’une personne B avec le même pseudo sur un autre. Et puis que c’est chiant de devoir compléter tous ces champs pour indiquer son nom, son adresse mail et son site avant de pouvoir commenter !
  • Un carnet d’adresses : même si Diaspora* ne me convient pas entièrement sur ce point, c’est toujours mieux que le blog. L’un de mes protons (contraction de projet et de carton) consiste à revoir le fonctionnement des carnets d’adresses au niveau des réseaux sociaux, je vous en parlerai peut-être un jour…
  • La centralisation de MES données (principalement les commentaires). Si la décentralisation du point de vue réseau est appréciable il en est autrement de mes données que je souhaite garder sous le coude.
  • L’instantanéité du dialogue avec des gens que je ne connais(sais) pas. Bien que Fla ne l’avoue qu’à contre-cœur, Cyrille Borne a tout de même rabattu un petit paquet de personnes francophones que l’on avait l’habitude de suivre par leur blog. On découvre par conséquent une autre facette de tout ce petit monde qui tourne autour de la blogosphère (geek) française.

Tout cela n’enlève pas les (nombreux) défauts de Diaspora* et je suis quasiment certain que ce réseau est condamné à pourrir dans le terrible trou de l’oubli d’ici quelques années mais profitons de ses jeunes années avant de migrer ailleurs, de belles choses peuvent encore en sortir ! Alors viens copain !

Promouvez Firefox !

Je l’écrivais déjà il y a un an. Maintenant qu’Australis est arrivée, que Firefox a l’air jeune et beau à nouveau, il est de la plus haute importance que nous recommencions tous à le recommander et l’installer dès que nous le pouvons. Nous devons faire remonter les parts de marché de Firefox pour donner du poids à Mozilla face à Google, Apple, Internet Explorer…

Pourquoi ? Dernier exemple en date, ces fameux DRM qui vont être intégrées directement dans le HTML5. Mozilla est intimement contre les DRMs. Mais Mozilla a maintenant moins de 25% de part de marchés. Si mozilla refuse les DRMs dans Firefox, cela ne va qu’accentuer le départ des utilisateurs vers Chrome et Cie (Firefox sa marche pa c nul bou caca), les autres éditeurs seront bien content, et Mozilla aura encore moins de poids la prochaine fois qu’un problème de cette taille apparaitra.

Imaginez maintenant la même situation si Firefox avait 85% de part de marché. Apple, Microsoft et Google arrivent avec leur gros sabots « on va rajouter les DRMs dans le web ! » et mozilla répond « faîtes ce que vous voulez, nous on ne l’implémentera pas« . Résultat, ne pouvant se priver de 85% de leurs visiteurs, les sites web n’utiliseraient pas les DRMs. Problem solved.

Alors, arrêtez de râler « mozilla ne devrait pas ajouter le support des DRMs à Firefox ! » si mozilla le fait, c’est à cause de vous, qui ne vous battez pas assez contre chrome/chromium et les autres.

Challenge, installez Firefox en le mettant par défaut sur 10 pcs d’ici la fin de la semaine prochaine. Et n’ayez pas l’impression que vous forcez les gens en faisant ça, c’est probablement comme ça que Chrome s’est installé chez eux, avec un freeware pourri type RealPlayer. La balle est dans notre camp.

Ou l’art de documenter facilement une base de données

#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 <span class="technique"> 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 ?

Dans les 42 minutes qui suivent l’installation d’Ubuntu

Je viens de me réinstaller (non sans mal) mon Ubuntu, en profitant pour mettre la dernière version, la 13.10. Comme d’habitude, j’ai mon rituel d’après installation. Et comme c’est la mode et que tout le monde le fait, je vais partager avec vous le contenu de mon fameux fichier « TODO after a fresh install »

  1. Installer guake, reconfigurer mes raccourcis clavier, le lancer automatiquement au démarrage
  2. apt-get update && apt-get dist-upgrade
  3. Restaurer les profils firefox et thunderbird. C’est pas trop dur, je les copie de mon disque dur, et je retrouve tous mes onglets ouverts et tous mes mails sans avoir besoin de les retélécharger
  4. Aller sur upubuntu.com et télécharger le dernier kernel. Oui, j’aime être constamment sur le dernier noyau Linux.
  5. Rajouter pcie_aspm=force à la commande de boot dans /etc/default/grub, ça me fait gagner ~20% d’autonomie (puis rebooter :p)
  6. Ouvrir le software updater et activer les dépots Universe (les logiciels proposed et ceux packagés par Canonical)
  7. apt-get update && apt-get dist-upgrade once again, proposed a rajouté plein de choses :)
  8. Restaurer tous mes alias depuis mon ancien .bashrc
  9. Désactiver les suggestions amazon dans l’onglet privacy
  10. Installer VLC et le mettre comme lecteur par défaut
  11. Installer gimp
  12. Installer HexChat le paramètrer pour se logguer immédiatement à mes salons favoris sur Freenode et mozilla
  13. sudo fstrim -v / (on commence à avoir bougé beaucoup de choses sur ce SSD, faut trimer !)
  14. Taille des icônes du dash à 32px, retirer tous ces lanceurs qui servent à rien (Amazon, Ubuntu One, LibreOffice, Logithèque) et rajouter ceux qui rocks (Thunderbird, HexChat, Gimp…)
  15. Mettre un fond d’écran qui déchire et ne pas oublier de lui mettre les permissions pour qu’il s’affiche dès la page de login
  16. Paramétrer un peu gedit, couleur sombre, affichage des numéros de ligne, mise en valeur de la ligne et de l’accolade courante…
  17. Restaurer mon dossier de travail sur diaspora :D et au passage, mes clefs ssh sur les serveurs…
  18. Mettre à jour le franćais dans les paramètres de langue
  19. Installer wine, directplay avec winetricks, et Age Of Empire 2 :D
  20. Pareil avec Heroes 3, mais la version pour GNU/Linux

Je vais certainement faire des tonnes de choses de plus dans les jours qui suivent, mais là, c’est ce qui me vient à l’esprit après une fresh install :)

Conférence « Avoir une vie privée sur Internet » à Grenoble mardi 3 décembre

Ceux qui suivent un peu ce blog l’auront remarqué, la vie privée sur internet est un sujet qui me passionne. Et bien sachez que je ne fais pas qu’écrire des blogposts, je donne aussi des conférences sur le sujet en tant que contributeur mozilla. Je serais donc à l’Ensimag, sur le campus de St Martin d’Hères à côté de Grenoble mardi 3 décembre, pour parler de vie privée sur Internet, et présenter Lightbeam (Ex Collusion), le module complémentaire tout neuf de la fondation mozilla qui vous permet d’observer vos observateurs. Armé de cet outil, nous répondrons ensemble à la fameuse question « C’est quoi le problème, j’ai rien à cacher ! » et une fois que tout le monde sera convaincu du contraire, nous verrons les solutions qui existent pour se protéger, selon les moyens que nous acceptons de mettre.

lightbeam screenshot

Rendez-vous donc à l’Ensimag (Plan d’accès) mardi 3 décembre à partir de 19h.

Cette conférence est organisée par la Guilde, le Linux User Group de Grenoble, que je remercie chaleureusement pour l’invitation :)