J’ai switché sur Mac et j’en suis ravi

Ca doit faire 1 an que j’ai du utiliser un macbook pro pour le développement d’une application chez mon employeur.
Je n’avais jamais utilisé de Mac, et je regardais cet environnement avec la curiosité et la condescendance du libriste convaincu d’utiliser le seul OS techniquement valable et ouvert.

J’avoue avoir pris une grande claque, il faut en effet utiliser OSX un certain moment pour se rendre compte des années lumière de retard qu’ont nos environnement de bureaux sous Linux.
J’avoue avoir résisté aux sirènes de certains de mes contacts Linuxien/BSDiste qui ont switché depuis longtemps.

Je n’ai pas envie d’énumérer les avantages, bloguer est pour moi en ce moment une contrainte pénible, juste un défouloir personnel.
Cependant je tiens à dire que l’on y trouve des applications d’extrème qualité jamais vu ailleurs. J’écris ce texte depuis Ulysses (http://www.ulyssesapp.com) un éditeur de texte markdown très bien pensé, présenté, rapide et synchronable via iCloud et Dropbox.
J’utilise également 1password (https://agilebits.com/onepassword) qui permet de gérer ses mots de passes, d’en générer à la volée et donc d’avoir un mot de passe différent pour chaque site web, et synchronisable avec la version iOS, soit via Dropbox/iCloud, soit en wifi local pour les craintifs. Ainsi que Alfred (http://www.alfredapp.com) qui permet de tout piloter au clavier et même de définir des workflows pour déclencher des tâches.

Ces applications sont chères, surtout quand on vient du monde Linux où tout est gratuit et l’idée de payer même 1 centime une blague. Cependant je suis développeur et j’ai conscience du travail nécessaire à développer une application et j’estime que ce travail doit être rémunéré. Car il fait vivre un développeur indépendant, une TPE ou une petite PME et ceci est pour moi autrement plus important que le libre.
Et oui, jusqu’à preuve du contraire, pratiquement aucun développeurs, sauf quelques exceptions, ne vie d’une application opensource. Et ce n’est pas les développeurs de firefox sponsorisé par Google qui diront le contraire.

Les développeurs qui travaillent chez RedHat, Suse, Canonical ou autres, ne vivent pas directement de leur travail puisque leurs applications n’est pas directement vendu, mais font partie d’un service vendu.

MacOS est à mes yeux le seul environnement qui permet à des développpeurs de vivre de leur passion, de pouvoir vendre directement leur produit tel un artisan, un agriculteur local.
D’une part ils ont le choix de vendre via une coopérative qui prendra un pourcentage (l’appstore) certe élevé, soit directement via leur site web.
Je serais curieux de connaitre les pourcentages de vente de licence de sublimetext (http://www.sublimetext.com/) par OS, mais je suis bizarrement prêt à parier que celles pour Linux sont les plus faible.
Rapidement on pourrait en déduire qu’il n’y a pas d’éditeur de texte digne de ce nom sur OSX ce qui expliquerait des ventes plus fortes pour cet OS, or justement par défaut il y a vim et emacs … personne n’oserait dire que ce sont de mauvais éditeur, mais peut etre sont-ils plus plébicité par les admins que les devs ou utilisateur ? mais je vais y revenir.

L’erreur du libre a été d’implémenter en son coeur l’idée que le propriétaire est Mal, malsain, que l’utilisateur est obligatoirement prisonnier. Or c’est souvent faux. Les grandes majorité des applications permettent d’exporter les données utilisateur dans un format ouvert.
La possibilité qu’une application travaille avec des formats ouverts et libres est de loin la meilleure car elle permet de pouvoir vivre de son développement tout en n’enfermant pas ses utilisateurs.

Le problème est là, du haut de leur montagne de morale bien pensante le libriste hacktiviste ne paye pas de logiciel, ca ne lui vient même pas à l’idée. Payer pour du libre, quelle idée, quelle horreur. A la rigueur il fera une obole de temps à temps à des associations qui prèchent la bonne parole sur des services centralisés et propriétaires comme twitter, histoire de se donner bonne conscience.

Au final le développeur d’application native a tout intéret de viser la plateforme Apple et c’est ce qui se passe depuis des années.
Le pendant de tout cela, ou cela mène le libre, c’est une webisation de son environnement, à part quelques outils de bases on est très loin de la richesse que l’on peut trouver sur Mac.

Or en fonçant sur la mode web, où Interet == le web, qui l’on trouve en face ? ChromeOS, du « petit » Google… Dommage les chromebook cartonnent aux US et commencent à avoir du succès en Europe.

Où je veux en venir, c’est très simple. Le monde des logiciels natifs sur desktop est chez Apple, que ce soit sur les devices et le desktop, le monde des logiciels web chez Google, le monde des services chez les 2. Le desktop Linux se trouve donc entre les deux, incapable de faire vivre une communauté de développeurs, il périclite, et au final ne se compose que d’administrateurs systèmes qui n’hésitent pas à insulter (http://www.zdnet.fr/actualites/systemd-et-les-t-du-c-de-la-communaute-open-source-39807395.htm) (voir menacer de mort) des devs comme Lennart Poettering développeur de systemd qui a osé coder un logiciel libre qui bouscule leurs petites habitudes.

Mais finalement quoi attendre d’autre d’une communauté composée toujours plus d’administrateurs système, l’utilisateur lambda étant sur windows,osx, chromeOS..

Alors entre la soit disant la cage dorée de Apple, qui me permet d’installer toutes les applications que je veux, libre ou pas, qui peut me permettre d’en vivre, et celle de Linux, pauvre, qui laisse le seul choix d’être soit administrateur soit développeur web, le choix est vite fait. Je regrette une chose c’est de ne pas l’avoir fait il y a des années.

Je ne renie pas l’importance du libre, notamment sur les serveurs et au coeur du réseau mais sur le desktop il ne pourra jamais être cette alternative que j’imaginais, car il est par design défecteux avec GNU/Linux. Un jour peut être cela arrivera avec haiku OS (https://www.haiku-os.org) la phylosophie y étant radicalement différente, notamment par le but de pouvoir lancer des applications BeOS … propriétaire … Quelle horreur….

Google vs Apple vs … ?

Je viens de tomber sur cet article Google vs Apple, des visions très différentes c’est l’occasion pour moi de rebondir sur ce sujet qui me titille.

La dernière WWDC d’Apple a été l’occasion de démontrer les dernières avancées autour de l’intégration entre leurs devices. On pourra ainsi commencer l’écriture d’un email sur son iPhone ou iPad et le finir sur son Mac. De même on pourra répondre à un appel téléphonique depuis son Mac. Apple mise en force sur le matériel et le logiciel natif le tout lié par iCloud. Google, semble en effet différer puisqu’il mise tout sur ses services web, bien qu’il propose également des smartphones et tablettes nexus il est absent du desktop, chromeOS étant tout sauf un succès.

En fait tout découle de leur business model. Celui d’Apple est basé sur la vente de matériels, il est donc condamné à innover régulièrement sur ce secteur. Celui de Google est basé sur son moteur de recherche et la publicité qui est leur pompe à fric, il est donc condamné à conserver son leadership dans le search en s’appuyant sur leurs services web annexes, et tous les matériels sous android.

Qui a raison, qui peut gagner, impossible à dire, le vrai problème est que les deux peuvent gagner indéfiniment… On entre dans une nouvelle ère où l’informatique s’étend vers des matériels jusque là isolés ; les véhicules, les lunettes, les montres, les maisons, etc. or même si les premiers utilisateurs seront vu comme des passionnés frimeurs fortunés, nul doute que le coût d’acquisition baissera et sera accessible au plus grand nombre. Le choix du consommateur ne sera plus quel matériel lui fait envie mais à quel univers il souhaite se lier, et de fait la question sera également imposée à tous les développeurs…

Rien de surprenant dans tout cela pour qui s’intéresse à ces sujets, mais les derniers scandales autour de la vie privée repose la question sur des alternatives à ces services propriétaires. Il s’agit bien de services et non de logiciels, par exemple l’interaction de plus en plus forte des iPhone avec iCloud va rendre ce dernier obligatoire. De même pour android avec un compte Google…

La seule alternative du libre, qui peut paraître crédible est celle de Mozilla avec Firefox OS. Je ne parlerai pas de celle de Ubuntu, qui prend bien trop son temps depuis des années malheureusement. Un des problèmes de Mozilla à mes yeux est de réduire l’informatique et Internet au web, d’en faire le dénominateur commun… Mettre à la trappe de nombreux outils, langages, et technologies pour se baser uniquement sur la moins pertinente techniquement est une grossière erreur, pour rester poli…

Il est à noter malgré tout qu’après des années d’extrémismes anti-cloud, mozilla se sent obligé de proposer des services, un market et account ; quand la réalité du monde percute les idéaux les plus stupide il ne reste pas grand chose… Je suis pour ma part convaincu depuis des années que le libre se doit de proposer des services, mais il n’y a pas malheureusement un libre mais des libres … Le libre étant constitué de communautés qui travaillent souvent sur des solutions proches voir concurrentes des noyaux aux desktops, ce qui faisait notre force il y a des années, nous réduit en simple fournisseur de briques logiciels pour des fournisseurs de services ou pour les quelques utilisateurs que nous auront pu conserver.

Aussi j’ai bien peur qu’une alternative libre et respectueuse de la vie privée, fournissant des services voir aussi des matériels tels que ceux proposés par Google et Apple ne voit jamais le jour. Il est impossible que le libre puisse s’unifier afin de faire naître cela de manière homogène, cependant il y a quelques lueurs d’espoirs de faire autrement. Lorsque je regarde un produit 100% hacker tel que bitcoin obtenir un si gros succès en si peu de temps je pense que cela peu nous montrer la voie vers des services complètement décentralisés et spécialisés. Un de ces nouveaux service spécialisé basé sur le moteur de bitcoin est twister qui est à mes yeux une alternative hautement crédible à twitter, même s’il est infiniment loin d’espérer atteindre la même base d’utilisateurs avant des années. Le libre arrive parfois à accoucher de pépites, or pourquoi pas imaginer qu’un jour ces pépites puissent arriver à communiquer entre elles afin de fournir un service homogène pour les utilisateurs ? Entre temps il faudra que les libristes, les utilisent, les promeus, les hacks, au lieu de les ignorer tout en utilisant des services propriétaires centralisés… et pour les autres qui n’utilisent ni l’un ni l’autre, il s’isoleront dans leur grotte chaque jour plus seul ; numériquement bien sûr :)

le revenu de base

Cela fait longtemps comme de nombreux français que je m’intéresse à l’emploi dans notre pays mais aussi aux développement des entreprises qui est lié à l’emploi. En effet on comprend vite lorsqu’on grandi et encore plus lorsqu’on a des enfants, que les 2 choses indispensable dans la vie d’un citoyen français sont une assurance chômage et un emploi (public ou privé).

Des pays comme les états unis se passent très bien de l’assurance chômage, cependant l’activité de leurs nombreuses entreprises n’a rien à voir avec celles de la France. De plus la facilité pour licencier n’apporte pas de crainte à l’embauche, mais je vais y revenir.

 

Pour commencer je vous conseille de lire cet article court Comprendre le revenu de base ou celui plus complet de wikipedia http://fr.wikipedia.org/wiki/Revenu_de_base

Pour résumer grossièrement, d’autant plus que cela diffère selon les partisans, le revenu de base permettrait de percevoir une allocation mensuelle sans contrepartie si l’on rempli les conditions suivantes :

  • être de nationalité française
  • ne pas travailler
  • travailler mais auquel cas le revenu de base serait diminué au prorata de ses revenus ou supprimé

Et surtout il n’y a pas d’exigence à la recherche d’un emploi pour la percevoir … à vie. Ce sont à priori les principes de base de ce revenu, le montant de l’allocation peut changer en fonction des partisans, au minima cela reviendrait à une allocation permettant de payer un petit loyer dans une petite ville et à se nourrir.

C’est une idée tellement moderne ou extrême selon les points de vu, que ni la gauche, ni les partis encore plus à gauche n’ont osé la proposer dans leur programme aux présidentielles, hormis Dominique de Villepin (sic) (850€/mois):

« La mesure sans doute la plus spectaculaire de son programme (et la plus décriée à l’intérieur même de son propre parti30) est la création d’un « revenu citoyen31 », qui serait versé à chaque Français selon un principe proche de celui de l’allocation universelle« 

Mon point de vu est que cette allocation pourrait apporter un changement radical des rapports avec le travail. En effet nul besoin de prendre n’importe quel travail pour survivre, l’Entreprise en bénéficierait en ayant des postulants réellement intéressé par le poste et non plus de personnes souhaitant juste recotiser pour les ASSEDIC. Les emplois ingrats et pénibles seraient de fait mieux payé. La disparition des multiples aides remplacées par ce revenu supprimerait les couts administratif et la mobilisation de nombreux fonctionnaire pour les gérer.

Enfin et surtout, les citoyens désireux de créer leur entreprise pourraient enfin avoir le temps de la préparer, d’y réfléchir, de faire les études de marchés, et les développements (code pour une startup informatique) pour la création du produit. L’Auvergne l’a d’ailleurs très bien compris puisqu’elle propose un SMIC pendant 6 mois à toute startup qui se lancerait dans cette région : http://www.newdealnewideas.fr

C’est là que j’y vois le plus grand intérêt. La seule chose qui peut réduire le chômage en France est la création de micro-entreprise/TPE/PME. L’âge des grosses industries française qui font vivre des milliers de personnes est révolu depuis 30 ans. Les industries sont délocalisées dans des pays où la main d’oeuvre ne coute rien en salaire et en charges. Par contre faciliter la création de petites entreprises, que cela soit des salons de coiffure ou des startups dans un garage, oui le revenu de base peut faire exploser cela. Il est faux de croire que les gens qui toucheraient ce revenu passerait leur journée devant la TV car il n’y a rien de plus plaisant de faire un travail qui plait, et encore mieux de créer son propre emploi.

Concernant le financement de ce revenu il a bien entendu un cout. C’est bien sûr l’argument en sa défaveur. C’est là que je pose mon idée toute simple. Face à une idée aussi extrême qu’est le revenu de base, posons en face une autre idée tout aussi extrême, afin que les deux ensemble apportent un équilibre à notre société. Simplifions drastiquement la création d’entreprise, supprimons d’office les charges pendant les 3 premières années d’une entreprise de moins de 5 personnes, et surtout autorisons le licenciement immédiat et sans justificatif à toutes les entreprises (ou toute entreprise de moins de 50 personnes).

Le corolaire de ces 2 idées réunies, serait qu’il n’y aurait plus de touriste pour postuler à des emplois, il n’y aurait plus de crainte à embaucher puisqu’il n’y aurait pas de problème pour licencier, il n’y aurait pas de crainte à être licencié puisqu’il y aurait le revenu de base pour vivre, humblement certes mais vivre.

Et pour ceux souhaitant un revenu de base plus élevé sur une période, il pourrait dépendre d’une cotisation facultative prélevé sur son salaire comme actuellement.

A mon sens le revenu de base ne peut être crédible qu’avec cette idée en face. Dans une société les appliquant j’y vois une explosion de création d’entreprises, j’y vois une explosion des recrutements et donc une diminution du chômage, chose qui n’arrivera jamais dans le consensus actuel qu’il soit à Droite ou à Gauche.

Je crois malheureusement qu’aucun parti n’aura le courage de proposer des idées aussi opposées. Nos partis mettent toujours face à face les employés contre les employeurs, que cela soit les gentils employés contre les méchants patrons pour la Gauche, ou les gentils patrons et les méchants employés syndiqués pour la Droite.

Enfin tant que la culture du business ne sera pas intégré dans les programmes scolaire dès le collège, la France restera dans une culture anti patron, anti réussite mais aussi anti loser, complètement dépassé du monde qui nous entoure.

Nodecast : passé, présent et avenir

Voici un moment que je n’avais pas trouvé le temps d’écrire un nouvel article sur nodecast. Depuis le dernier en juillet 2012, il y a eu énormément d’apprentissage et d’avancées, et même si ce projet n’est pas encore prêt à être utilisé en dehors de mon usage, j’ai bon espoir qu’il puisse être présentable d’ici quelques mois.

Passé

A l’origine j’avais débuté ce projet en tant que backend de mon projet de supervision système nodecast.net. Le frontend web étant en Ruby on Rails il m’a paru évident d’utiliser Ruby pour le backend. Il avait pour but de recevoir les payloads envoyées par mon client natif en Qt/C++ et qui contenaient les informations système (CPU, réseau, mémoire, etc). J’ai utilisé pour ce backend différents serveurs de file d’attente afin de le rendre asynchrone, propriété impérative à tout système ayant la prétention de tenir la charge. Il s’est avéré qu’avec juste quelques clients le backend montait rapidement en charge CPU et mémoire, la faute au langage script et aux innombrables couches de bibliothèques.

Il me fallait donc un langage compilé ce qui me permettait de plus d’éviter des bindings vers mongodb pas forcément optimisé et à jour. Utilisant Qt pour mon client desktop, je me suis lancé dans la réécriture du backend en Qt/C++. Ruby fut malgré tout intéressant car il me permit de développer rapidement un prototype.

La réécriture du backend se fit en plusieurs passes, en fonction des technologies que je testais et des contraintes qui s’imposaient. L’objectif étant d’avoir un minimum de dépendances vers des outils annexes et une stack très légère permettant d’exploiter l’ensemble sur un environnement matériel très léger ou ancien. Pour cela Zeromq supprime la dépendance d’un serveur de file d’attente tout en fournissant les mêmes propriétés, hormis la persistance disque. Je l’ai réglé en stockant les payloads dans mongoDB en sus des autres données.

Coté fonctionnalité, mon backend était typé en fonction du métier de la supervision. J’ai donc travaillé pour sortir le métier du serveur ncs vers des workers externe, cela afin de le rendre générique et facilement adaptable à des besoins différents. Ce travail pris tellement de l’ampleur que j’ai fini par percevoir plus d’intérêt. En effet si un backend générique asynchrone pouvait voir le jour, il permettrait de développer plus rapidement des logiciels, laissant le développeur se concentrer sur son cœur de métier. De plus cela permettrait de séparer l’IHM des traitements, ce qui procure l’immense avantage de développer facilement plusieurs IHM (desktop, mobile, web).

Les payloads envoyées sur l’API HTTP peuvent être du json ou bien des fichiers binaires. Dans ce dernier cas nodecast les stocke dans GridFS pour les transmettre immédiatement aux workers ou lorsqu’un worker en fait la demande. Comme usage on peut très bien imaginer envoyer à nodecast des fichiers vidéos pour les faire traiter à différents workers qui vont les transcoder, les dupliquer, les distribuer, etc. L’upload HTTP ayant ses limites, le service FTP permettra d’envoyer de gros fichiers avec possibilité de resume en cas de coupure.

Présent

A ce jour l’architecture est basée sur QtZeromq et mongoDB. J’étais parti sur le postulat d’offrir des services embarqués dans des threads, ceci pour simplifier l’installation et la configuration. C’était cependant une erreur de sécurité, une simple faille dans un service (FTP par exemple) aurait compromis l’ensemble du processus ncs de nodecast, ensuite cela aurait obligé de futurs contributeurs à utiliser Qt/C++ et à m’assurer de chaque ligne de code de leur service avant de l’intégrer.

Je travaille donc actuellement à externaliser ces services, cependant sans sacrifier en performance puisqu’il resteront en C/C++ ou dans un langage compilé. La difficulté étant de trouver un outil adapté à ces contraintes, j’ai fini par trouver le projet zerogw qui est un serveur HTTP en frontal et un backend vers Zeromq. Dans un simple fichier de configuration, ce serveur permet grâce à des règles de routage de transférer les requêtes HTTP vers le serveur nodecast. Les performances de zerogw sont incomparables avec ce que je pouvais espérer avec la libqxt et cela me permet d’installer ce service sur une machine dédiée, nodecast restant alors au chaud sur un serveur non routable depuis l’extérieur.

Les deux autres services HTTP sont l’IHM web d’administration et le tracker bittorrent. Pour cela j’ai trouvé l’excellent treefrogframework qui propose une stack façon Ruby on Rails en Qt/C++. Cependant puisque les services nodecast seront externes, au même titre que les workers, il sera tout à fait possible de les développer dans un autre langage tel que Go  qui possède des frameworks web (Revel, Gorilla) . Quant au service FTP, rien de plus simple de sortir celui que j’ai développé à partir de CftpServer.

L’idée finale étant que ces services communiquent avec nodecast via zeromq voir également via stdin/stdout comme les workers.

Futur

Nodecast, et plus précisément le serveur ncs, se présentera comme un HUB entre des workers et des services. L’utilisateur pourra l’utiliser via l’API HTTP et les différents services, et effectuer ses traitements métiers dans ses workers. L’enchaînement de ses traitements se fait via un workflow qu’il définit lui même. Le workflow est pour l’instant très basique puisque c’est une simple suite ordonnée (worker1 puis worker2, etc). A long terme je souhaite pouvoir conditionner les enchaînements par exemple si le worker1 renvoit true -> worker2a sinon worker2b, puis avec des conditions plus complexes (présence de fichier, date, etc) grâce au state machine framework de Qt.

Enfin le deux derniers services à finaliser seront le serveur XMPP et le tracker bittorrent. Ils permettront la communication et le partage de fichiers entre des utilisateurs depuis une interface native dédiée à cela, cette interface fait partie de mon prochain projet nodeseed.

ncs architecture

le monde selon le Libre

Ce texte tente d’être une réponse à le monde selon Google de ploum.

En 2020 l’hégémonie du Triumvirat Google-Apple-Amazon est à son comble. Pour les consommateurs il ne s’agit plus de choisir une télévision, une voiture, un ordinateur, un smartphone ou une tablette, il s’agit de choisir un écosystème dans lequel son expérience sera comblée.

A cette époque le logiciel libre sur les terminaux utilisateurs est réduit à une peau de chagrin, celle de certains informaticiens et libertaires qui préfèrent sacrifier les facilités que procurent les écosystèmes fermés sur l’autel de leur indépendance.. Après des années de dénis, de dénigrement et de mauvaise fois, une frange de cette communauté décida de développer les fondations amenant à la naissance d’un écosystème libre respectant l’étique du Libre et l’architecture décentralisée d’Internet.

Le projet Avalon fut créé, non sans difficultés et heurts. Il avait pour principe de fournir des outils et protocoles permettant à n’importe qui de développer un logiciel sans se préoccuper de la confidentialité, de la scalabilité, du stockage, du partage des données et de leur redondance. Ce fut une avancée majeure pour le libre, ainsi il pouvait proposer des fonctionnalités présentes depuis des décennies dans les écosystèmes propriétaires.

Avalon fut rapidement intégré dans les distributions Linux, lequelles offrirent également un service en ligne qui permettait d’associer le compte de l’utilisateur Linux à leur propre instance. De plus en plus de logiciels natifs intégrèrent l’API d’Avalon ce qui permit de sauvegarder les préférences de configuration dans Avalon mais aussi les données de ces logiciels. Cela commença par de simple éditeur de texte via des plugins, puis lorsque les retours utilisateurs enthousiastes fusaient de toute part, des poids lourds comme OpenOffice intégrèrent l’API nativement ainsi que des logiciels de chat, musique, mail, et même des sites web.

Les utilisateurs découvrirent les avantages de la fusion du natifs et d’Internet, puisque leurs documents étaient sauvegardés sur plusieurs noeuds, mais l’API permettait aussi l’édition à plusieurs. Les avantages du web sans les limitations de ses interfaces de programmation.

Avalon était tellement optimisé que les utilisateurs avancés pouvaient l’installer dans un device léger au fond d’un placard. Avalon intégrait nativement une réplication en P2P avec ses contacts. Les données étaient chiffrées et répliqués, une simple commande permettaient de les récupérer en cas de crash de son instance locale. Avalon fut tellement adopté que toutes les distributions l’avaient intégré au point qu’un utilisateur pouvait installer à nouveau une machine, l’associer à son compte Avalon puis en quelques minutes retrouver les logiciels déjà installé par ailleurs avec leurs données de configuration et les données utilisateurs correspondantes pour chacun d’eux.

Avalon atteignit son apogée dans le Libre, lorsque cyanogenmod intégra les API d’Avalon par défaut. Les tablettes, smartphone et télévisions sous Android étaient synchronisable avec ses desktops Linux. De nombreuses applications Android utilisèrent son API plutôt que celle de Google. HaikuOS fit de même ainsi que Jolla Mobile.

Avalon devint un standard du Libre et de tous les écosystèmes alternatifs. L’intégration avec l’OS était telle que les services de réseaux sociaux historique n’avaient plus d’intérêt, en effet on avait son réseau social intégré dans toutes les applications de son système. Il était devenu complètement désué de devoir aller sur un site web dédié ou de lancer une application dédié pour communiquer avec son réseau.

Les développeurs d’Amazon, Mac, et même du vieux système Windows encore sur le marché malgré sa chute libre depuis 2017,  souhaitèrent à ce moment là utiliser l’API d’Avalon plutôt que celles de leurs OS éponyme. Cela leur économisait des coûts de licence vers les clouds et surtout la demande de leurs utilisateurs étaient de plus en plus tenace. A ce moment là les développeur d’Avalon ajoutèrent le service Bitcoin nativement. Cette monnaie était de plus en plus utilisée et la demande était forte pour vendre et acheter du contenu numérique à travers Avalon.

Le Triumvirat ne supporta pas l’arrivée sur leur plate-bande d’Avalon, qui permettait aux développeurs et surtout à leurs consommateurs d’échapper à leurs contrôles et à leurs taxes. Bitcoin fut la goutte de trop et ils firent pression auprès des gouvernements qui n’attendaient que ça pour rendre illégal Avalon.

Malgré une mobilisation mondiale et une résistance farouche d’hacktivistes, le point d’Achille fut rapidement trouvé en stoppant les DNS d’Avalon.

Aujourd’hui, 2022. Internet est splitté. Avalon a comblé sa dernière faille, son dernier point central, en basculant sur Namecoin, un DNS en P2P basé sur Bitcoin. La bataille est loin d’être terminée, mais Avalon attirant de plus en plus d’utilisateurs et une économie florissante il obtient chaque jour plus de soutiens. Les FAIs ont de plus en plus de pressions via des lois pour scruter ce réseau parallèle et le bloquer. En contrepartie des FAIs locaux alternatifs poussent partout, ils ne supportent qu’Avalon et son DNS en P2P.

La bataille est loin d’être terminée, mais l’économie numérique basée sur Avalon étant de plus en plus florissante, il devient difficile pour les gouvernements de justifier son éradication. Hier Google a du faire un premier pas en se rendant compatible avec Avalon, ils ne pouvaient continuer à rester isolé d’un nombre de plus en plus grand d’utilisateurs. Google n’est plus qu’un noeud, mais il est certainement trop tard pour eux, sur Avalon tout le monde utilise seeks

Nodecast : évolution vers un ordonnanceur opensource

Depuis mon dernier article sur nodecast en novembre 2011 j’ai depuis extraordinairement avancé. Historiquement Nodecast.net représentait pour moi un outil de monitoring système, via un client natif desktop et un backend asynchrone. J’ai rapidement décidé de rendre ce backend agnostique pour qu’il puisse être utilisé par tous types de projets. Le site du projet est donc Nodecast.org qui renvoie pour l’instant sur le compte github en attendant une page web de présentation.

Nodecast devient donc officiellement un ordonnanceur, même si ce terme est encore très pompeux face aux ténors propriétaires du marché. Je ne sais pas encore ce qu’il adviendra du projet de monitoring, ni si j’aurais le temps et l’envie de le migrer vers la nouvelle version de Nodecast. Côté desktop j’ai à vrai dire une idée de projet plus excitante :)

A ce jour Nodecast permet de gérer des workers qui reçoivent en paramètre un exécutable à lancer. Une fois enregistré, on poste en HTTP un JSON qui contient un workflow d’enchainement des workers, exemple :

curl -H "X-workflow: test" -d '{ "ls": 1, "rm": 2}' --user "user@email.com:16dsqqs" 

http://127.0.0.1:4567/workflow/create

Le premier worker qui s’exécutera s’appelle « ls » et le deuxième « rm », ils lancent bien entendu les commandes éponymes.  L’API renvoi un uuid à utiliser par la suite.

On poste ensuite le fichier binaire ou texte que l’on souhaite traiter, ici qxmpp-0.4.0.tar.gz :

curl -H "X-workflow-uuid: 66e994e8-1824-4604-bcf0-f1a321986888" 
-H "X-node-uuid: d4bd950b-7a04-4ff3-bf73-f840947d1171" 
-H "X-node-password: 69df62ab-4084-4e22-b788-6803c80c9931" 
-H "X-payloadfilename: qxmpp-0.4.0.tar.gz" 
-X POST --data-binary @qxmpp-0.4.0.tar.gz 

http://127.0.0.1:4567/payload/create

Les informations à fournir sur le node (le serveur qui POST) sont obtenues auparavant par la commande suivante :

curl -H "X-nodename: your-node-name" --user "email:token" http://127.0.0.1:4567/node/create

Le fichier est ensuite stocké par Nodecast dans GridFS, puis extrait dans le filesystème et son path transmis au premier worker. le retour de la commande (ls dans cet exemple) et transmis au deuxième worker, via Nodecast, qui la donne en paramètre à son exécutable (rm ici). Rien de transcendant comme exemple, mais grâce à l’architecture de Nodecast basée sur Zeromq, il est possible de lancer de multiples workers « ls » et « rm », les messages seront alors transmis à une instance aléatoire de chaque type de worker. La connexion entre les workers et Nodecast étant en TCP il est bien sur possible de répartir les workers sur une grappe de serveurs. Attention le fichier transmis à Nodecast étant stocké sur le file system, il faudra un partage NFS pour que les workers y aient accès en réseaux. Je souhaite cependant utiliser les fonctionnalités de stream de données de Zeromq pour la transmission vers les workers.

Mon prochain gros travail sera de terminer les workers de type service et leur éventuel communication avec les workers. Ensuite développer une API qui permettra de développer des IHM afin de connaitre l’état des workers, les piloter, etc …

Pour finir voici les derniers schémas côté utilisateur et développeur

Pourquoi Linux ne percera pas sur le desktop

Disclamer

Voici un billet pourrait sembler aller à  contre sens de mes convictions, cependant je n’ai pas honte de dire que des convictions sont parfois amenées à évoluer en fonction de la réalité que l’on veut bien accepter. Dans le cas où l’on refuse d’admettre les faits, il faut accepter l’idée de vivre avec sa propre réalité dans sa tête et au final sans doute plus subir que jouir de ses convictions…

Ce billet n’est pas une tentative d’excuse, n’ayant rien à justifier à personne, mais un simple billet d’humeur pour pourrait intéresser quelques gouikers.

Contexte

J’ai donc eu l’occasion de tester un week end complet un vieux macbook blanc. Même si j’avais pu lorgner du coin de l’oeil un OS X, cela n’a rien à voir avec un test complet dans les mains. La première chose qui me vient à l’esprit c’est OS X est un OS taillé au laser. Il possède une finition remarquable, que cela soit dans les polices, dans les petits détails comme dans l’écosystème de store remarquablement bien présenté. La dernière version de l »OS (Lion) ne semble subir d’aucun lag même sur ce vieux macbook de 2006. Le matériel est du même niveau avec un trackpad très agréable et beaucoup plus utilisable que les versions PC…

Je ne vais pas m’étendre mais l’OS possède une cohérence et une finition qu’aucun desktop libre n’arrive à approcher, que cela soit GNOME ou KDE. Ubuntu essaye bien de ressembler à OS X, mais il subit la stack Linux/Xorg/GTK ce qui ne lui permettra pas d’atteindre ce même niveau d’excellence.

Théorie

Ma théorie est donc la suivante :

1. Linux est un noyau généraliste, qui essaye tant bien que mal de supporter une multitude de matériels.

2. Xorg est un serveur graphique en userspace qui possède une architecture très adaptée dans un ancien temps mais est archaïque de nos jours.

3. Les projets GNOME et KDE se concentrent uniquement sur les logiciels, ils ignorent sciemment la demande de services en ligne. Ils ne travaillent sur aucune API qui permettrait à un développeur d’un logiciel natif desktop de faciliter l’utilisation d’Internet. Chaque développeur doit donc redévelopper la roue de son côté et s’occuper de la partie développement et hébergement côté serveur s’il souhaite intégrer des fonctionnalités type cloud (synchronisation des préférences et des données en ligne, …).

A l’inverse Mozilla essaye d’adapter le web au desktop (sic) avec le projet WebAPI. Il est « amusant » de voir que ceux qui auraient le moins de boulot pour fournir un desktop libre qui exploite Internet ne sont pas ceux qu’on aurait pu imaginer…………..

Faits

Chez Apple on trouve :

  1. Un noyau (micro-noyau peu importe) optimisé pour une gamme de matériel
  2. Une stack graphique moderne et intégrée au plus profond de l’OS
  3. Une plateforme de développement cohérente, moderne et dernièrement des API pour exploiter les fonctionnalités d’Internet (cloud Apple), afin de proposer des services de synchronisation (datas et apps), backup et partage de données.

Les 2 premiers points me rappellent furieusement les Amiga et Atari. Pour rappel pour les plus jeunes, ça été deux énormes succès, les premiers ordinateurs grand public (années 80-90). Ils ont malheureusement fini par échouer plus pour des raisons de stratégies commerciales et d’égo des dirigeants que de techniques. Cependant leur réussite a été du à un OS 100% dédié a un type de matériel (et en grande partie en langage assembleur) ce qui permettait des optimisations de folies. Les développeurs d’applications tierces connaissaient la plateforme sur le bout des doigts, ils ne perdaient pas leur temps à gérer des configuration matériel tordues.

Face au melon qu’ont pris les dirigeants d’Atari et Amiga ce qui a bridé le renouvellement de la gamme, les PC à bas coûts fait de bric et de broc ont su séduire  malgré des interfaces MS-DOS bien inférieures…

Or, ce qui a fait le succès d’Atari et Amiga, a été clairement repris par Steve Jobs : Un OS conçu pour le desktop et dédié à un type de matériel. Cette recette est, à mon avis, la seule valable pour rendre l’informatique sexy, agréable, intuitive, ergonomique, moderne. Elle a certes le « petit » défaut de lier l’utilisateur à cet écosystème logiciel et à des types de matériels et périphériques. Mais c’est le prix à payer pour ceux qui souhaite bénéficier de ces avantages, et ce prix étaient d’ailleurs  à l’époque pleinement accepté par les Ataristes et Amigaiste.

Conclusion

Le calcul personnel à faire est donc mettre sur la balance le prix d’être lié à une marque et ses technologies proprios face au prix de subir une informatique dépassée qui n’apporte plus aucun plaisir. J’ai personnellement fait mon choix, car j’estime qu’en 2012 il est temps que l’informatique de bureau devienne un plaisir, quelque chose d’intuitif et transparent. Quelle liberté y a t-il a subir ses convictions ?

Pour ces raisons le desktop Linux ne pourra pas arriver aux genoux de ce que propose Apple avec OS X. Seule une entreprise qui ferait le choix de modifier profondément la stack Linux/Xorg pour l’optimiser à un matériel spécifique pourrait peut-être commencer à y arriver, encore que l’architecture de Haiku OS est à mon sens plus adapté par design.

Bien entendu le bureau Linux aura toujours son public, mais un public restreint, différent de la foule toujours plus grande qui souhaite se faire plaisir à utiliser un environnement sexy qui rend de plus en plus de services.  Si des communautés du libre pensent prétendre un jour opposer une alternative, il faudra autre chose que des paroles qui exigent au grand public de devenir informaticien pour « s’auto-héberger ». Il faudra arrêter de troller, sortir le doigt de son derrière et tapoter sur son clavier pour coder une alternative sexy qui rend des services.

J’ai d’ailleurs testé récemment le très sexy Enlightenment (E17). Le problème est que même si le bureau après de pénibles paramétrages est à tomber (KDE ET GNOME sont juste laids à côté), il n’y a aucune application en EFL… Utiliser des applications en Qt ou GTK sous E17 n’apporte donc aucune cohérence malheureusement, sauf à gruger mollement avec des thèmes…

BREF, je n’ai pas encore acheté de Mac faute de budget :) Je souhaite vraiment que le libre puisse un jour fournir une alternative complète qui pourrait séduire un grand public, cependant les choix stupides de certains et les non-choix stupides des autres me font douter fortement de cela à moyen terme. En attendant l’heure du plaisir est venu :) (ou pas)