Github, langages et trahison

Avec un ami nous travaillons actuellement sur un bot IRC en Go (Goxxx).

Quelle ne fut pas ma surprise en constatant qu’après avoir ajouté des fichiers HTML (pour les tests), le projet était désormais considéré par github comme un projet « HTML » au niveau de ses statistiques !
Ce problème peut également se produire sur les dépôt ou sont présents des fichiers/librairies « vendored », développées par des tiers mais inclus au projet pour plus de facilité.

Suite à cette trahison et à quelque recherches sur le web, il y a une solution simple: Il suffit d’ajouter dans le fichier .gitattributes du dépôt une des directives suivante pour les fichiers/patterns à exclure des statistiques :

  • linguist-documentation pour tout se qui se rapporte a la documentation
  • linguist-language pour forcer le langage de certains fichiers à une valeur donnée
  • linguist-vendored pour les fichiers « vendored »

Exemples :

# Traite les fichiers .rb (ruby) comme étant des fichiers Java
*.rb linguist-language=Java
# Ignore les fichiers présents dans le dossier "project-docs" (Considérés comme de la documentation)
project-docs/* linguist-documentation
# Ignore les fichiers présents dans le dossier "special-vendored-path" (Considérés comme des fichiers "vendored")
special-vendored-path/* linguist-vendored

pour plus d’informations et de détails: https://github.com/github/linguist#overrides

diaspora v0.5.0.0, deuxième

La sortie est encore récente, et j’ai depuis mis à jour framasphère. Je me suis dit que ca pouvait être sympa de contacter la presse tech francophone pour essayer de faire un peu de bruit autour de cette sortie, alors j’ai écrit un petit mail aux sites que je connaissais. Comme je ne garde jamais rien pour moi, le voici :

La communauté des contributeurs au projet diaspora* est fière d’annoncer la sortie d’une nouvelle version majeure, la version 0.5.0.0. Diaspora* est un projet Libre d’un réseau social décentralisé et respectueux de la vie privée. Il a été lancé en 2010 par 4 étudiants américains. En Août 2012, ils cédaient la gouvernance du projet à la communauté. Cette nouvelle version est donc la cinquième version majeure publiée par la communauté.

Elle contient de nombreuses améliorations, dont notamment des grosses améliorations de l’expérience utilisateur tant sur desktop que sur mobile, beaucoup de refactoring et de changements sous le capot pour de meilleures performances, de nouvelles actions pour les administrateurs, et toujours des efforts pour améliorer la protection de la vie privée de l’utilisateur (voir ce précédent billet pour des détails sur ce point). L’annonce de la sortie est disponible sur le blog officiel (en anglais).

Avec 785 commits changeant 1336 fichiers, 31671 lignes de code ajoutées et 34509 lignes supprimées par 20 contributeurs différents, cette version est la plus grosse jamais sortie par la communauté. Le dépôt github vient d’ailleurs de dépasser les 10.000 stars, ce qui en fait le 3ème projet Ruby on Rails le plus suivi sur github.

diaspora* a connu un regain d’intérêt en France ces derniers mois, notamment grâce au lancement par Framasoft de leur nœud diaspora* framasphère dans le cadre de leur campagne « Dégooglisons Internet« . Lancé en Octobre dernier, celui-ci approche maintenant les 16.000 utilisateurs. Si vous souhaitez (re)découvrir diaspora*, framasphère est un serveur idéal où s’inscrire. N’oubliez pas de suivre des tags pour voir votre flux se remplir de contenu vous intéressant.

diaspora* v0.5.0.0 est en approche

Il nous aura fallu environ 6 mois pour sortir une release candidate de la nouvelle version majeure de diaspora*, la version 0.5.0.0. En cause principalement, le nouveau chat intégré basé sur XMPP que nous avons beaucoup de mal à stabiliser. Il est fonctionnel mais a du mal à passer correctement à l’échelle. Une nouvelle version de diaspora* sort en général tous les trois mois, nous avions donc déjà manqué une sortie, il n’était plus possible de repousser encore et toujours la sortie de la 0.5.0.0. Une branche contenant le code candidat à une release a donc été créée il y a un peu plus d’une semaine. Le chat XMPP y est inclus mais marqué comme expérimental et il est fortement déconseillé de l’activer sur un serveur de production avec de nombreux utilisateurs pour le moment. Pour autant, les améliorations sont nombreuses dans cette nouvelle version et il aurait été dommage de vous faire encore patienter.

En fait, les modifications sont tellement nombreuses que j’ai dû découper cet article en une série d’articles. Rien que le plan m’a montré à quel point il devenait gros. Pourtant, j’avais fait un effort, j’avais pris un joli pad dans lequel j’avais retenu uniquement les fonctionnalités essentielles, et tout et tout… Mais rien n’y a fait, il a fallu hacher tout ça et vous le délivrer petit à petit, histoire de faire monter le suspense. Quant-à ceux qui sont sur diaspora-fr.org et utilisent déjà le code de la version 0.5.0.0, vous êtes priés de ne pas tout dévoiler à vos petits camarades ! Laissez-les s’impatienter voyons !

Voici toutefois le sommaire de cette série d’articles sur diaspora* v0.5.0.0 qui vous dévoile les plus grosses améliorations. Après tout, le changelog, bien qu’incompréhensible, est public. Il n’y avait donc pas tellement de raison d’attendre plus. J’ajouterai au fur et à mesure les liens vers les articles lorsqu’ils sortiront (y’a encore du boulot). Le sommaire donc :

  • Une expérience utilisateur améliorée avec le portage de l’intégralité de l’interface vers bootstrap (ça y est !) et de nombreuses améliorations qui vont je l’espère vous faciliter l’utilisation de diaspora* (oui, cette phrase ne dévoile rien, c’est fait exprès)
  • Une meilleure protection de la vie privée avec notamment le retrait des données EXIF par défaut et un proxy pour les images, mes avancées préférées de cette nouvelle version
  • La version mobile qui n’est pas en reste, avec les tags suivis et l’ajout de contacts (elle était attendue celle-là !)
  • Sous le capot ça bouge aussi avec des mises à jour majeures de Ruby, Rails et Sidekiq, et des améliorations de la fédération
  • et pour finir un tour sur les nouvelles fonctionnalités pour les podmins tel que l’expiration des comptes inactifs et la possibilité de verrouiller temporairement un compte

Voilà, croyez moi, vous allez en avoir pour votre argent. Comment ça, c’est Libre et gratuit ? Bon, mais si vous voulez quand même investir de l’argent, n’oubliez pas que nous sommes présents sur Bounty Source, où vous pouvez poster des bounties sur des issues github, pour financer le développement des fonctionnalités qui vous tiennent le plus à cœur. Plus d’infos sur le blog officiel.

Dîtes, ça se voit que je suis enthousiaste ?

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.
Read More

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’applications…

On peut maintenant arriver à la vraie question :

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

Read More

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 !
Read More

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.
Read More