Deblan blog

Tag #Logiciel Libre

DebFlux a migré de version du BilboPlanet, mais...

DebFlux est mon outil principal pour lire les différents flux RSS auxquels je souscris. Il fonctionne pas trop mal et me permet, quelque soit la machine sur laquelle je me trouve, de suivre l'actualité des sites internet qui m'intéressent. Il s'appuie sur BilboPlanet, un logiciel libre que je hack pour le sortir (un peu) de son objectif initial : gérer un planet.

Il me sert énormément mais je dois dire que cette nouvelle version me surprend, surtout d'un point de vue technique. En effet, les développeurs ont choisi de faire un peu d'objet, un peu de procédural et de coller par dessus un moteur de template un peu dépassé. Peut-être voulaient-ils se passer de la gestion du cache et la déléguer à ce moteur ? Ou bien est-ce un choix pour rendre plus simple la modification du rendu et de gérer plusieurs thèmes ? Je ne sais pas, mais je reste sur ma faim.

Mon objectif au travers de ce billet n'est pas descendre le boulot abattu puisque j'apprécie le service qu'il me rend. Cependant, il me paraît nécessaire d'élever une critique qui pourrait aider à son développement, surtout d'un point de vue communautaire.

Dans un premier temps, je regrette qu'il ne repose pas sur un framework. Il aurait été vraiment intéressant que derrière ce CMS, un outil tels que Symfony, CakePHP, Zend Framework ou CodeIgniter ait été utilisé. La raison est simple : les méthodes de développement auraient été standardisées et ce travail aurait permis une intégration plus simple dans d'autres plateformes. Demain je souhaite intégrer le moteur de gestion des flux sur une application et je devrai me coltiner la réécriture du BilboPlanet.

Le choix du moteur de template me dérange. J'ai déjà utilisé un tel outil et ma conclusion est simple : quand on doit polluer son code PHP de méthodes ou fonctions propres au moteur de template, alors il faut changer d'outil. La couche de rendu doit être dissociée de la gestion des données et coller des $core->tpl-> partout dans son code, ça craint : je ne connais pas Hyla et ça me gonfle de devoir lire sa documentation alors que je dois simplement modifier la récupération des données. Il aurait été judicieux de travailler avec des méthodes proches de celles de Symfony : on a des données générées et stockées dans des tableaux simples (array) et le moteur de rendu pourra s'appuyer sur ce qu'il veut : PHP, Twig ou n'importe quoi d'autres. Qui plus est, ça facilite grandement l'intégration du code à l'intérieur d'autres projets.

D'un point de vue sécurité, j'aurais également apprécié d'avoir un grain de sel qui se paramètre à l'installation ou dans un fichier de conf. Avec la gestion de base, on peut brute forcer sans problème puisque qu'on connaît la clé définie en dure dans l'appel de la méthode de hash.

Enfin, pourquoi éparpiller les fonctions un peu partout dans le code ? C'est quand même intéressant de retrouver ses billes quand on connaît les répertoires où elles sont déclarées. Dans le code actuel, il y a un répertoire lib/ mais des fonctions sont écrites un peu partout ailleurs, typiquement l'index de l'administration. Heureusement que ctags est performant !

C'est le genre de projet qui mérite de recevoir des contributions et en ce qui me concerne, c'est le seul qui me convient pour gérer mes flux. Mais de mon point de vue, c'est une réécriture complète à faire.

Que faire ? Est-ce que je vais passer pour un élitiste après m'avoir lu, ou un gros con qui fait chier son monde car on ne fait pas comme il aime ? Faut-il forker ou bien contribuer en faisant un gros pull request avec moultes modifications ? No idea.


Fork, le serpent qui se mord la queue

Le monde du logiciel libre est vaste et c'est sans doute la force mais aussi le point faible de ce milieu. Quand j'ai un besoin d'une fonctionnalité, je prend le temps de faire le tour des solutions logiciels qui la comblent. Celle qui me conviendra le plus sera bien sur la solution retenue. Pour rentrer plus rapidement dans le sujet, j'ai envie de taper un peu sur une mode qui s'étend trop rapidement : le fork.

Le fork consiste à récupérer les sources d'un projet et de faire son propre projet avec (modulo des modifs). Dans l'absolu c'est génial et c'est l'essence même du logiciel libre : prendre, modifier et éventuellement publier. Je trouve ça parfait quand il s'agit de hacker pour un besoin précis. Je trouve ça aussi génial quand l'objectif et de vraiment modifier le système et de partir dans une autre optique que le projet initial. Seulement je trouve ça débile de forker un projet quand l'effort de développement pourrait être mutualisé. Quel est l'intérêt d'avoir deux équipes de dev qui font presque la même chose, l'une se reposant sur l'autre, sans une résultante commune des travaux ? Quand je vois des projets comme CrunchBang (un fork de Debian) qui ne fourni qu'une simple configuration d'OpenBox, ça me fait mal aux fesses : pourquoi ne pas faire un package qui pourrait s'étendre à d'autres distributions ? Comptez le nombre impressionnant de distributions Linux qui sont des forks d'Ubuntu et qui ne servent à rien, vous allez prendre peur (XUbuntu, Xubuntu, FluxBuntu, PureOS, etc.).

C'est vraiment lassant de voir arriver des forks alors que leurs développeurs pourraient simplement contribuer vers l'UpStream...

« Fork » n'est pas synonyme de « contribution » !


10 raisons de préférer Windows à Linux

C'est un article assez étrange à première vue, surtout venant de ma part. Oui, j'aime et j'utilise une distribution Linux, oui j'apprécie ce système et oui je suis persuadé qu'il convient à beaucoup de tâches quotidiennes et non techniques. Cependant je suis aussi sûr d'une chose : Linux n'est pas fait pour Monsieur Toutlemonde.

Voici 10 raisons de ne pas installer une distribution Linux.

01. Un copain m'a dit que Linux c'est trop bien !

...et en plus il m'a dit qu'Ubuntu c'est l'avenir de l'informatique. C'est le point de départ de beaucoup d'ennuis : on ne change pas de système sans avoir un avis plus affûté que ça. Quand on décide de passer sur Linux c'est qu'on connaît un minimum la bestiole, qu'on sait (presque) ce que c'est et qu'on ne se limite pas à l'avis d'un non linuxien (ceci est un troll).

02. Windows ça plante tout le temps !

...et vous ferez partie des gens qui booteront Paint.net avec Wine car Gimp c'est pourri. Plus sérieusement, autant être clair tout de suite : les distro Linux ne sont pas des substitus à Windows. Il est difficile de comparer un Linux à Windows, ils sont trop différents, les objectifs ne sont pas communs.

03. Linux, il n'y a pas de virus...

Une belle connerie bien trop répandue sur la toile. Il est plus rapide de crasher la machine d'un linuxien manchot que le Windows de ma grand-mère. C'est une idée reçue et je peux vous assurez qu'il est très rapide de faire une connerie et d'ouvrir votre machine à des gens/logiciels malveillants (Linux ou pas).

04. Linux c'est pour les hackers !

...et on installe Backtrack pour casser le Wifi de son voisin. Si votre unique objectif est de péter le Wifi du mec qui vie à coté de chez vous, restez sur Windows, ça fonctionne aussi bien et vous ne viendrez pas pourrir les forums car le mode monitor de votre carte wifi est mal géré.

05. Je veux linux...ça se télécharge où ?!

Le truc le plus énervant à lire quand on fait du support : la question typique du mec qui n'est pas fichu de faire une recherche. Si vous n'avez pas envie de passer des heures (voir des jours) pour plancher sur un problème, que vous et la documentation font deux, alors vous êtes mal barré et vous préférerez Windows.

06. Installer Linux ça à l'air cool...par contre c'est quoi le BIOS ?

Pour utiliser une distro. Linux, il faut avoir le minimum vital en informatique. Je ne dis absolument pas que le Linuxien moyen est informaticien, mais avoir des notions essentielles en informatique sont primordiales pour utiliser et comprendre un tel système.

07. J'ai testé sur une machine virtuelle, ça marche trop bien !

Une différence notable entre une machine virtuelle est une installation en dure sur votre machine c'est la quantité d'emmerdes que vous allez vous prendre sur la tronche. Linux c'est bien mais c'est loin de fonctionner du premier coup et la publicité mensongère de Canonical ne viendra jamais trahir la vraie vie Linuxienne !

08. Je veux Linux mais je suis attaché à mes outils de Windows

Si vous espérez garder vos belles habitudes Windowsiennes alors c'est peine perdue. On n'installe pas Linux en imaginant l'utiliser comme Windows.

09. Linux c'est super joli, on peut faire des trucs en 3D avec son bureau

Si votre objectif est d'avoir un bureau joli, consultez le site DeviantArt, il y a d'excellents bureaux Windowsiens.

10. Je veux utiliser du logiciel libre

C'est sans doute la première grosse erreur de jugement : un système complétement libre est quasi inutilisable. Entre les drivers vidéo/Wifi libres a moitié utilisable et la fausse pub d'Ubuntu, vous aurez tout sauf un système libéré. Si vous avez envie de logiciels libres (et c'est très bien), la plupart sont disponibles aussi sur Windows.


Sources du blog

Comme je l'avais indiqué il y a quelques semaines, je souhaite libérer les sources du moteur de ce blog.

La publication de code n'implique pas de ma part un support technique. Je ne suis pas responsable si une faille de sécurité est utilisée à travers mon code.

Pour être honnête avec vous, il n'est pas du tout terminé mais il est fonctionnel. Je n'ai aucune prétention a dévoilant les sources.

Il y a encore des traces de moi dans le code. Je vous invite à faire le tour du module "page" présent dans le répertoire "apps/www/".

Pour télécharger et installer le blog, suivant les instructions suivantes :

1. Configurer votre virtualhost

Configurer votre virtualhost pour que le domaine du blog pointe sur le répertoire "web" présent dans le zip (que vous allez bientôt télécharger)

2. Se place dans le répertoire du site puis :
$ wget https://www.deblan.io/uploads/sources_blog.zip
$ unzip sources_blog.zip
3. Configurer les accès à la base

Il faut éditer le fichier "config/database.yml".

N'utiliser pas des tabulations mais des espaces.
[...]
dsn:        mysql:dbname=NOM_BASE;host=localhost
username:   UTILISATEUR
password:   MOT_DE_PASSE
[...]
4. Lancement de la "procédure" d'installe du blog :
# on vide le cache
$ ./symfony cc
# on crée les tables pour la base de données
$ ./symfony propel:build-all
$ mysql -uUTILISATEUR -p NOM_BASE < data/sql/permissions.sql
# création de l'admin
$ ./symfony guard:create-user admin password
$ ./symfony guard:promote admin
$ ./symfony guard:add-permission admin Rédaction
$ ./symfony guard:add-permission admin Administrer

Le design est cassé (web/css/main.css est vide). Je vous invite à faire le votre.

J'avoue c'est un peu posté à l'arrache mais je n'ai pas spécialement le temps de faire mieux en ce moment :)

Note : on accède au backoffice via /admin.php

Enjoy!