Posts Tagged ‘Libre’

Lucas 2.0

Tuesday, April 15th, 2014

Lucas Nussbaum vient d’être réélu Debian Project Leader.

Comme on peut le constater sur ce graphe, il a obtenu 47 voix de plus que Neil McGovern :

Une analyse plus précise des votes permet d’en calculer une représentation plus “classique” du point de vue des habitudes électorales, et donc plus compréhensible pour la majorité des gens :

Lucas Nussbaum : 56,5%
Neil McGovern : 43,5%

C’est bien une large victoire de Lucas, mais aussi une défaite très honorable pour Neil, qui se positionne donc comme un prétendant sérieux à la victoire l’année prochaine.

Quel DPL pour 2014 ?

Friday, April 4th, 2014

Le temps passe vite, et cela fait déjà presque un an que Lucas Nussbaum a été élu Debian Project Leader (DPL). Chaque développeur Debian pouvait donc se porter candidat entre le 3 et le 9 mars à la suite du traditionnel appel à candidatures.

Dès le 13 février, anticipant quelque peu sur le calendrier, Lucas avait exprimé le souhait de se représenter :

As it has been done by other DPLs in the past, I think that it makes sense for the DPL to announce his/her plans way before the next DPL election.

So, let’s do that now: I will run for reelection.

Après ses précédentes tentatives infructueuses de 2004, 2012 et 2013, Gergely Nagy s’était représenté, mais il a finalement dû se résoudre à retirer sa candidature :

Due to unexpected events, my plans and life got turned upside down (for the better) in the past few days, and because of that, I have to scale down a number of things. Unfortunately, running for DPL is one such thing.[...] Therefore, after a lot of thought, I’m withdrawing from the Debian Project Leader elections of 2014.

Le seul concurrent de Lucas est donc finalement Neil McGovern. Le plus important est bien sûr de lire les programmes de chacun des candidats :

Les presque mille développeurs Debian sont libres de faire leur choix depuis le 31 mars et jusqu’au 13 avril lors d’un vote utilisant la méthode Condorcet.

Vous pouvez retrouver tous les débats de la campagne sur la mailing list debian-vote.

[MàJ] XWiki Rendering et Doxia

Wednesday, February 26th, 2014

Il y a un moins d’un mois, au cours du FOSDEM 2014, j’ai assisté à la présentation de Vincent Massol intitulée XWiki Rendering: A content rendering engine. Comme l’architecture est propre, avec une bonne séparation des syntaxes d’entrée et des formats de sortie, une implémentation de la syntaxe de txt2tags serait bien sûr la bienvenue !

J’ai donc ajouté XWiki Rendering et Doxia (oui j’avais précédemment un peu oublié le monde Java)  dans le tableau comparatif des logiciels de balisage léger de Comparaison des langages de balisage (markup) léger (lightweight) : Txt2tags, Pandoc, Docutils, AsciiDoc, Deplate, Stx2any, AFT, Markdown et Textile.

Arrêtez d’écrire des classes !

Monday, December 30th, 2013

En créant les nouvelles fonctionnalités ASCII art de txt2tags, j’ai été amené à développer un certain nombre de fonctions spécifiques que j’ai donc logiquement fini par extraire dans une librairie autonome nommée aa.py. Pour des raisons historiques, d’habitude des utilisateurs et de facilité de diffusion, Aurélio Jargas – le BDFL de txt2tags – m’a demandé de réintégrer ces fonctions dans le fichier principal, ce à quoi il a ajouté :

Aurélio: move them back to global functions or creating a aa class in txt2tags?
option 2 would be cool

J’ai réfléchi, puis j’ai réintégré mes fonctions, telles quelles, sans créer de classe aa. Créer une classe dans ce cas ne me semblait pas adapté, complexifiant le code sans raison théorique valable ni contrepartie pratique positive.

Peu de temps après, je suis tombé sur une présentation intitulée Stop Writing Classes faite par le core developer Python Jack Diederich lors du PyCon 2012. J’y ai retrouvé beaucoup de choses que je pensais et d’autres que je n’avais pas encore clairement formalisées. Elle est particulièrement intéressante car elle utilise de vrais exemples de code, dont une horreur produite par des ingénieurs de chez Google !

On pourrait résumer cette réflexion avec les deux principes les plus importants de la programmation selon moi : KISS (Keep It Simple, Stupid) et DRY (Don’t Repeat Yourself). On peut remarquer que ce qui est pertinemment décrit comme une mauvaise utilisation des classes, correspond globalement à un style de programmation à la Java. Pour ceux qui ne comprendraient pas l’anglais et pour les gens pressés, voici donc les principales recommandations à retenir :

  • Diminuer le nombre de classes en refactorisant le code ;
  • Ne pas écrire de classes vides, qui pourraient être utiles plus tard, en utilisant pass, les écrire plus tard si besoin ;
  • Si une classe n’a que deux méthodes, et que l’une d’elle est __init__, c’est que ce ne devrait pas être une classe ;
  • Quand un dictionnaire suffit, ne pas le camoufler dans une classe ;
  • Ne pas créer de nouvelles exceptions, utiliser celles de la librairie standard, qui sont connues et comprises de tous ;
  • Les espaces de noms existent pour éviter les collisions, pas pour faire de la taxinomie, il faut donc qu’ils restent le plus plat possible.

Je finis en donnant la parole à la défense, avec cet article technique d’Armin Ronacher intitulé Start Writing More Classes.

Post-PC, le nouveau sens de multiplateforme

Thursday, December 26th, 2013

Un développeur de logiciels propriétaires se pose rarement la question des plateformes supportées par son logiciel. Il développe souvent exclusivement pour un système d’exploitation, avec les outils propriétaires fournis avec son système et ne fonctionnant que sur ce dernier.

Un développeur de logiciels libres est lui naturellement obligé de se poser la question, car il a le choix de ses technologies, et que son système d’exploitation est peut-être minoritaire et donc peu supporté. De plus, il souhaite logiquement toucher le plus large public possible, car ce serait dommage de s’en priver quand on produit du code libre d’être diffusé !

Concernant le poste client, la problématique du multiplatforme s’est posée pendant des années en ces termes :

Est-ce que mon programme fonctionne sous Windows, Mac OS X et GNU/Linux ?

Les parts de marché étaient réparties selon un classique et très stable :

95% Windows
4% OS X
1% Linux

Qui après une décennie de numéros marketing de Steve Jobs autour de l’iPod et du côté hype d’être équipé d’ordinateurs Apple avait abouti à un finalement presque équivalent :

90% Windows
9% OS X
1% Linux

Mais les choses ont vraiment changé sous l’impulsion d’Apple rapidement suivi par Google, avec l’arrivé de l’iPhone en 2007 :

smartphone

Celle de l’iPad en 2010 :

tablet

Et la déferlante de smartphones et tablettes Android qui s’en est suivie. Un changement radical et extrêmement rapide :

multiplateforme

Apple et Google nous ont fait rentrer dans l’ère post-PC des smartphones et des tablettes. Ces trois slides, extraits de la présentation faite par Lars Knoll au cours des Qt Developer Days 2012, ont déjà plus d’un an, et la situation s’est encore accentuée depuis.

Bien sûr, on peut légitimement se réjouir de voir Android, un système d’exploitation libre basé sur Linux, dominer aussi outrageusement les systèmes d’exploitation propriétaires, donnant ainsi au libre l’éclatante victoire qu’il n’avait jamais obtenue sur le poste utilisateur classique.

Cependant, c’est bien un cri d’alarme que je souhaite lancer, car j’ai l’impression que pendant que des milliers (millions ?) d’applications propriétaires sans intérêt sont produites pour ces nouvelles plateformes, les logiciels libres de type applicatif n’y sont que très peu représentés, pour ne pas dire totalement absents.

Cette situation n’est pas complètement absurde, car un développeur de logiciels libres est un utilisateur productif. Un ordinateur dépourvu de clavier ne lui permettant pas de programmer, il n’en fera jamais sa machine principale, et il aura une vision des usages informatiques construite sur cette réalité, qui est la sienne.

À titre personnel, j’ai une utilisation assez limitée de mon smartphone, qui n’est qu’un téléphone me permettant de lire mes mails et m’indiquant ma position sur une carte, et je ne suis pas près d’avoir une tablette.

Mais il faut prendre conscience que certaines personnes ont rangé leur ordinateur portable dans une armoire, et qu’elles n’utilisent plus que leur tablette et leur smartphone, et ce de manière intensive.

On peut aussi voir cela comme une opportunité à saisir, car s’intéresser à ces nouvelles plateformes mobiles c’est aussi penser à de nouvelles fonctionnalités ou à de nouveaux types d’utilisation qui n’avaient pas lieu d’être jusqu’à présent.

Pour que la situation des applications libres évolue dans le bon sens, il faut d’urgence repenser la problématique du multiplatforme ainsi :

Est-ce que mon programme fonctionne sous Windows, Mac OS X, GNU/Linux, iOS et Android ?

Avocat du libre !

Thursday, October 24th, 2013

Voilà, c’est fait, depuis le 11 octobre 2013 je suis officiellement titulaire du CAPA, le certificat d’aptitude à la profession d’avocat, promotion Dominique de la Garanderie de l’EFB.

Si je ne poste que maintenant, c’est peut-être qu’il m’a fallu un peu de temps pour pleinement réaliser que ce long parcours semé d’embûches que sont les études d’avocat était vraiment terminé.

C’est de manière somme toute normale, qu’après avoir réussi le concours du barreau il y a deux ans, j’ai suivi les cours et effectué les stages nécessaires. Je termine ce cycle d’études en majorant le grand oral de déontologie, le juge de paix du CAPA, avec un joli 18/20.

Être à la fois développeur de logiciels libres et avocat est quelque chose de peu commun, et peut-être même d’unique, et sans fausse modestie, j’en suis très fier.

Le droit innovant créé pour les logiciels libres s’est largement diffusé avec le succès grandissant de ces derniers, mais aussi en abordant de nouveaux domaines, comme la création artistique, le hardware ou la cartographie.

C’est un droit puissant porteur de transformations sociales profondes, mais très peu étudié et trop souvent mal compris ; et j’ai bien l’intention de tout faire pour que cela change !

 

La compréhension de dictionnaire en Python

Saturday, October 5th, 2013

La compréhension de liste est une syntaxe moderne remplaçant les classiques fonctions map() et filter() de la programmation fonctionnelle. Ce sucre syntaxique est devenu un standard de la programmation moderne présent dans quasiment tous les langages.

La PEP 202, en intégrant cette fonctionnalité dans Python 2.0, n’était donc pas d’une originalité folle. Mais les développeurs de Python ne se sont pas arrêtés en si bon chemin, et ils ont eu l’intelligence de pousser le concept un peu plus loin. Ainsi, ils ont cherché à étendre la syntaxe de compréhension aux autres types conteneurs que les listes, c’est-à-dire en premier lieu aux dictionnaires.

La PEP 274 visait donc a intégrer la compréhension de dictionnaire à Python 2.3, mais elle a été abandonnée car considérée comme inutile au vu de l’utilisation conjointe des expressions de générateur et du constructeur dict().

Cependant, l’intérêt pour ce sucre syntaxique est resté présent, et la compréhension de dictionnaire a finalement été intégrée au langage à l’occasion de la grande réforme du passage à Python 3.0, et backportée dans Python 2.7.

On obtient ainsi plus de lisibilité :

>>> dict((i,i*2) for i in range(5))
{0: 0, 1: 2, 2: 4, 3: 6, 4: 8}
>>> {i: i*2 for i in range(5)}
{0: 0, 1: 2, 2: 4, 3: 6, 4: 8}

et de flexibilité :

>>> k_and_v = [[1, 'a'], [2, 'b']]
>>> dict(k_and_v)
{1: 'a', 2: 'b'}
>>> {k: v for k, v in k_and_v}
{1: 'a', 2: 'b'}
>>> {k+1: v*2 for k, v in k_and_v}
{2: 'aa', 3: 'bb'}

Et puisque Python 3.0 a doté les sets d’une nouvelle syntaxe, il en a aussi profité pour les doter de la compréhension :

>>> [i%2 for i in range(8)] # liste
[0, 1, 0, 1, 0, 1, 0, 1]
>>> {i%2 for i in range(8)} # set
{0, 1}

Il n’est pas étonnant que la syntaxe de compréhension de liste se soit diffusée dans tous les langages de programmation modernes. Il n’est pas étonnant non plus que Python, un langage doté d’une philosophie très sensible à la lisibilité, soit allé plus loin en la généralisant à tous ses types conteneurs, en faisant un élément central du langage.

Ubuntu Edge à 695$, Canonical casse les prix

Thursday, August 8th, 2013

L’Ubuntu Edge est un projet de smartphone haut de gamme utilisable sous Android et Ubuntu mobile, mais surtout fournissant un bureau Ubuntu complet (les trois systèmes d’exploitation partageant le même noyau Linux).

C’est la première vraie proposition de convergence réelle, innovante et crédible faite par une entreprise, ce qui explique pourquoi j’en souhaite vraiment la réussite. Et pour une fois cette innovation grand publique majeure viendrait des logiciels libres, ce qui me permet d’y adhérer pleinement.

Pour commencer la production Canonical a lancé, le 22 juillet 2013, une campagne de financement participatif extrêmement ambitieuse, puisqu’elle vise à récolter pas moins de 32 millions de dollars.

Aujourd’hui, alors que plus de la moitié des 30 jours de campagne se sont écoulés, la somme d’argent accumulée de plus de 8 millions de dollars, bien qu’impressionnante à bien des égards, ne semble pas suffisante pour espérer boucler le financement.

Ainsi, les statisticiens appelés à la rescousse pour évaluer les chance de réussite de la campagne pronostiquent-ils une somme finale de 22 millions de dollars. Et quand on visualise la dynamique de la situation, on peut même penser que c’est une prévision déjà plutôt optimiste :

Rappelons que c’est une campagne de type tout ou rien, c’est à dire que soit les 32 millions de dollars sont atteints et dépassés, soit ils ne le sont pas et dans ce cas les sommes sont remboursées. C’est donc pour réagir à cette situation difficile pour le projet que Canonical a fait deux annonces aujourd’hui.

La première est la création d’une offre spéciale orientée entreprise de 100 Ubuntu Edge plus 30 jours de support pour 80 000 dollars.  L’adhésion à cette offre de Bloomberg, qui est une entreprise de grande notoriété, est mis en avant pour essayer de convaincre d’autres entreprises.

La seconde est la baisse du prix de l’Ubuntu Edge à 695$ (environ 520 euros), auxquels il faut ajouter 30$ de port si l’on réside ailleurs qu’aux États-Unis ou au Royaume-Uni. Alors que la politique de prix a connu plusieurs ajustements successifs, laissant poindre une certaine forme d’improvisation, ce prix d’appel devrait être le dernier.

Si vous voulez croire en ce projet, c’est donc maintenant ou jamais !

Pour ceux qui, comme moi, ont déjà investi leurs économies dans un Ubuntu Edge vendu à un prix plus onéreux, pas d’inquiétude, Canonical remboursera la différence à la fin de la campagne.

INRIA : Michel Cosnard, dégage !

Wednesday, July 10th, 2013

Le 3 juillet 2013, le projet de loi ESR, pour l’enseignement supérieur et la recherche, était adopté par le Sénat, avec comme article 6 II concernant le Code de l’éducation :

– L’article L. 123-4-1 du même code est ainsi rétabli:
« Art. L. 123-4-1. – Le service public de l’enseignement supérieur met à disposition de ses usagers des services et des ressources pédagogiques numériques.
« Les logiciels libres sont utilisés en priorité. »

Le même jour, une lettre signée conjointement par :

était adressée à Madame Geneviève Fioraso, ministre de l’Enseignement supérieur et de la Recherche, dénonçant l’article 6 de la loi comme étant dangereux et discriminatoire.

Cette lettre de lobbying des éditeurs de logiciels propriétaires ne laissa pas sans réaction la communauté du libre, surtout avec le spectre d’une deuxième défaite, après celle enregistrée sur la loi pour la refondation de l’école de la République, et le 4 juillet 2013, l’AFUL publiait une lettre ouverte à la ministre.

De plus, le 7 juillet 2013, François Pellegrini, chercheur au sein d’une équipe commune INRIA-LaBRI, fait part de sa surprise et de sa consternation sur son blog. Et le 8 juillet 2013, une réponse des personnels de l’INRIA était signée par 79 directeurs de recherche, chargés de recherche, ingénieurs de recherche et doctorants de l’institut, dénonçant la prise de position de leur P.D.G., faite sans aucune concertation en interne, et s’en désolidarisant.

Le 9 juillet 2013, c’est l’Assemblée nationale qui votait la loi, l’article 6 étant renommé article 9, mais heureusement sans aucune modification.

Le problème de la “lettre de la honte” du 3 juillet, ce n’est pas qu’elle soit signée par Jamel Labed et Guy Mamou-Maani, qui défendent leurs intérêts d’éditeur de médiocres logiciels propriétaires, c’est qu’elle le soit de la main de Michel Cosnard, président de l’INRIA.

Ah non suis-je bête, ce n’est plus l’INRIA, acronyme d’Institut national de recherche en informatique et en automatique, mais Inria, une marque, un nom marketing sans signification mais qui sonne bien. Voilà le genre de grandes décisions pour la recherche qui sont prises sous la direction de Michel Crosnard.

Michel Cosnard est P.D.G. (soit dit en passant ce titre fait plus penser à la direction d’une grande entreprise qu’à celle d’un institut de recherche…) de l’INRIA, et à ce titre il a signé de nombreux accords avec Microsoft, le symbole historique de la nullité des logiciels propriétaires, avec en particulier  l’ouverture d’un laboratoire de recherche commun… de qui se moque-t-on ? La seule motivation est l’argent. Cela n’est plus supportable, cela a assez duré.

INRIA Microsoft

Il n’est pas un endroit dans la société où le logiciel propriétaire soit plus illégitime que dans dans la recherche, il n’est pas un endroit dans la société où le logiciel propriétaire soit plus inutile que dans l’enseignement.

Le président d’un institut de recherche qui signe une lettre comme celle du 3 juillet se décrédibilise définitivement, et, s’il a un minimum d’élégance, il se doit de démissionner de lui-même, surtout compte tenu de la fronde qu’il a provoquée en interne ; sinon il doit être viré.

[MàJ] Lua et Erlang

Monday, May 27th, 2013

Je viens de légèrement mettre à jour deux articles :

Ceci est symptomatique de mon intérêt pour ces deux langages. Et si celui pour Lua est assez récent, celui pour Erlang est plus ancien et plus profond.

J’espère donc écrire bientôt sur ce blog quelques articles sur Erlang, et sur sa formidable machine virtuelle BEAM, et aussi contribuer à des logiciels libres en Erlang. Même si, aujourd’hui, Python reste encore de loin le langage que je maîtrise le mieux et avec lequel je suis le plus productif.