Archives pour septembre, 2013

field

Formidable: une autre vision des formulaires

0

Formidable est une bibliothèque PHP de gestion de formulaire un peu spéciale. Contrairement à l’approche habituelle, qui vous fait utiliser une API PHP pour spécifier et construire votre formulaire puis vous propose de l’utiliser pour faire un rendu, Formidable se base sur du code HTML, puis l’analyse pour construire une représentation manipulable du formulaire et ensuite l’afficher. Par exemple:

$form = new Gregwar\Formidable\Form('<form method="post">'
 .'What\'s your name? <input type="text" name="nom" />'
 .'<input type="submit" />'
 .'</form>');

$form->setValue('nom', 'Jack');

echo $form;

Ce bout de code construira un formulaire et en conservera une représentation intermédiaire, et il sera par exemple ici possible à l’aide de setValue() de définir la valeur d’un champ. Le echo $form affichera le formulaire, ce qui donnera quelque chose du genre:

<form method="post">What's your name?
<input type="text" name="nom" value="Jack" />

<input type="submit" />
<input type="hidden" name="csrf_token"
       value="9c14019138010ddee6766caaad8f2926b5b09fc7" /></form>

Comme vous le remarquez:

  • Le champ est requis par défaut, l’attribut required a été ajouté automatiquement
  • L’attribut value a été rempli par « Jack »
  • Un jeton CSRF a été automatiquement injecté dans le formulaire

Ce système permet alors de manipuler un formulaire d’une nouvelle manière, qui vous permettra de créer facilement des formulaires, et de les personnaliser à volonté.

Un autre exemple:

$form = new Gregwar\Formidable\Form('<form method="post">'
 .'How old are you? <input type="int" name="age" />'
 .'</form>');

echo $form;

Notez que le type int n’est pas valide et que les attributs min et max n’existent pas non plus en HTML. Ils seront utilisés pour générer une contrainte d’intégrité sur le champ et ne seront pas affichés, on obtiendra simplement un formulaire de la forme:

<form method="post">How old are you? <input type="text" name="age" />
<input type="hidden" name="csrf_token"
       value="fa88b988041aa1497b4200996c246c5f75d22e4c" /></form>

Et il sera possible de gérer la réception du formulaire comme cela:

$form->handle(function($values) {
    echo 'You are '.$values['age'].' years old!';
}, function($errors) {
    echo 'Errors:<br/>';
    foreach ($errors as $error) {
        echo "* $error <br/>";
    }
});

De cette manière, le formulaire vérifiera que l’ensemble de ses contraintes sont respectées, y compris le jeton csrf et appellera alors l’une des deux fonctions fournies en paramètre de handle().

La bibliothèque est sous licence MIT et vous propose aussi d’autre fonctionnalités, comme la possibilité d’alimenter des select ou des radios depuis du code, de placer des contraintes personnalisées, de récupérer les données ou de peupler les données depuis un objet mappé… Pour plus d’informations, n’hésitez pas à consulter le README de Gregwar/Formidable

windows-logo

Pourquoi je n’aime pas Windows

1

Je ne veux pas tenter de lancer un énième troll ou un « Micro$oft sux » de Linuxien en manque de reconaissance. Mais, quand même, Windows, ça craint.

Pourtant cet OS n’est pas si mauvais, 7 et 8 sont assez rapides, tournent plutôt bien et, Visual Studio est par exemple un bon outil pour concevoir des applications, complet et intuitif. Énorme plus dont je ne peux pas me cacher non plus, la suite office et surtout Word, qui n’a malheureusement aucun égal à mon sens (Je parle d’éditeurs tout public, pas de LaTeX hein), j’ai déjà tenté d’écrire des gros documents sur LibreOffice et j’en suis revenu en courant.

Pourquoi donc détester cet OS pourtant si répandu?

Le temple du Spyware

J’imagine que vous avez tous déjà vécu ce grand moment de solitude ou, en ouvrant Firefox ou autre, vous vous retrouviez face à un moteur de recherche poubelle exotique bardé de pub et ou, surprise, en tentant de redéfinir votre page d’accueil en imaginant que la blague s’arrêtait là, vous réalisiez qu’en fait vous aviez été contaminé par un Spyware.

Je citerais notamment le tristement célèbre Babylon search, en tappant son nom sur Google, on ne tombe d’ailleurs que sur des articles ou personnes qui se demandent, « comment se débarassent t-on de cette immonde saleté? ».

Le problème? C’est que chaque logiciel que vous installez sous Windows essaye de vous refourguer d’autre logiciels dont il faut la promotion. Par exemple iTunes de Apple essaiera de vous faire installer Safari, Picasa de Google voudra absolument vous refiler Chrome. Mais si on s’aventure vers des programmes plus exotiques, ce sont des barres d’outils, des spywares à gogo et des pubs omniprésentes que vous allez manger.

Pour contrer cela, on vous propose d’installer un antivirus qui, de toutes façons, ne vous empêchera pas de ne pas voir la case « Oui, je veux installer cette merde » bien cachée dans les 50 étapes d’installation d’un logiciel.

Désormais, le vice va encore plus loin, imaginez par exemple que vous ayez besoin d’installer un pilote pour un périphérique non reconnu et que vous atterrissiez sur un site à peu près honnête, le bouton de téléchargement apparaîtra, mais les publicités de diverses régies qui l’entourent (il faut bien faire vivre le site, pas vrai?) ressembleront … aussi à des bouton « Télécharger ». En effet, dans la prolongation de ces pubs qui se noient aux menu d’un site et dont on ne fait plus trop la distinction avec le site lui-même, les publicités qui s’insinuent dans les pages de téléchargement sont parfaitement trompeuses car elles donnent l’impression qu’il s’agit du vrai téléchargement que nous souhaitons avoir.

Autre exemple, ces publicités qui visent des utilisateurs peu avertis, en leur signalant (et l’ironie est de mise) que leur ordinateur est infectée par quelque chose ou que leur disque est plein, du genre (extra: cherchez l’erreur):

Une pub bien pourrie de gens qui ne savent même pas compter en plus

En quoi est-ce propre à Windows?

Ces problèmes ne sont qu’en partie liés à Windows, et notamment au fait que ce soit un OS très mainstream, ce qui rend beaucoup plus de gens vulnérables et entraîne une très mauvaise mentalité sur l’OS.

Mais il y a un autre problème derrière tout ça, Windows ne propose pas encore d’AppStore. Sous IOS, l’AppleStore permet de télécharger des applications, sous Androïd, le Play Store, et sous Ubuntu les dépôts APT viennent nous fournir une très grande partie des logiciels dont nous avons besoins. Et même si il y a une bonne dose de mauvais logiciel dans les AppStore, ils sont au moins notés et évalués ce qui permet de se faire une idée sur la qualité. De plus, les logiciels « principaux » seraient certifiés et centralisés, pas besoin d’aller sur le site de Apple pour télécharger iTunes par exemple. Enfin, la procédure d’installation pourrait être rationalisée et uniformisée en évitant les opt-in/opt-out douteux.

Les versions OEM

Continuons avec les tristes expériences. Encore une que vous avez tous déjà vécue, lorsque vous (ou quelqu’un de votre famille) allumez pour la toute première fois un PC flambant neuf sous Windows, vous découvrez une magnifique surprise… la surcouche logicielle à la mords-moi-le-noeud que le constructeur (Acer, HP, Asus …) a pri soin d’installer pour vous, avec sa magnifique et inutile jauge d’utilisation du CPU, son « gestionnaire optimisé d’énergie » qui fait tourner votre PC à deux de tension lorsque vous êtes sur batterie et ainsi de suite. C’est ce que l’on nomme la version OEM:

Un exemple de surcouche horrible: Acer eNet Manager

OK, qu’à cela ne tienne, vous décidez d’installer votre version étudiante (cf prochain point), ce n’est d’ailleurs que l’affaire de 30 minutes. Enfin, 30 minutes, pour réinstaller Windows. Pas les 15 drivers non reconnus nativement (en même temps, pour un OS qui ne fait « que » 20Go sur votre disque, on ne peut pas lui demander de reconnaître plus que Ubuntu qui en pèse 2, non? A moins que…). C’est ainsi que vous vous retrouvez embarqué dans une succession d’installer interminable pour retrouver exactement un OS tel que vous l’avez acheté et payé, sans la surcouche OEM.

En bref, les versions OEM de Windows sont supposées être faite pour être compatible avez votre matériel et optimisé pour votre ordinateur. Cependant, Ubuntu tourne par exemple très bien sans jamais trop se battre et pèse moins lourd, ou est l’erreur? De plus, les constructeurs en profitent pour vous inclure plein d’outils don vous n’avez pas l’envie ni l’utilité, ce à quoi vous ne vous attendez d’ailleurs pas.

La vente forcée et l’hypocrisie de DreamSpark

Autre reproche que je ferais au système: il pratique un racket. Le mot n’est pas à prendre à la légère, car il s’agit bien de racket, c’est à dire une dépense dont vous n’auriez pas la nécéssite mais que vous vous retrouvez obligés de faire.

Pourquoi? Premièrement parce que vous pourriez choisir un autre système d’exploitation pour votre machine. Mais non, le magasin en a décidé autrement, votre Laptop sera sous Windows 8!

Bon, OK, peu de gens utilisent un autre OS en réalité. Mais pourtant Windows 7 et 8 sont gratuits pour les étudiants quand leur école est affiliée DreamSpark. Autrement dit, vous achetez quelque chose que vous avez peut-être déjà!

DreamSpark, autrefois MSDNAA (MicroSoft Network Academic Alliance), est un système proposant aux étudiants d’accéder gratuitement à des logiciels ou systèmes d’exploitations Windows, selon les accords en cours avec leur établissement. Le principe est « d’aider » les étudiants à étudier et apprendre sur leur système pour qu’ils l’utilisent dans leur vie professionnelle. Si tel est leur but, pourquoi ne pas proposer de leur rembourser leur version OEM de Windows?

En fait, c’est possible, mais il faut pour cela accepter de subit une torture administrative, pouvant aller jusqu’à un aller-retour de l’ordinateur chez le fabriquant. Un site nommé « Non aux racketiciels » centralise d’ailleurs les procédures servant à faire cette démarche.

Un environnent de travail triste

Le terminal Win32, toujours le même depuis 20 ans

Ce point est, je le reconnais, nettement plus subjectif. Windows est ce que l’on appelle un Clicodrome, autrement, sans la souris, il est impossible de faire quoi que ce soit.

De plus, son interface est très peu configurable, mis à part en installant des logiciels tiers très exotiques. Par exemple, l’absence de bureau virtuel est très dommage car je trouve personnellement ça très pratique.

Enfin, le terminal de Windows n’a pas évolué depuis très longtemps, bridé en largeur, avec une police affreuse, une expertise certaine requise pour y faire un copier/coller,  et surtout, l’absence d’une ribambelle d’outils bien utiles sous Linux comme grep, sed ou autre find.

Bien entendu, on peut utiliser MinGW ou Cygwin, mais ça reste un bon bricolage. Git est un exemple typique d’outil que je pense être bien meilleur en ligne de commande qu’en graphique, il vient d’ailleurs avec son « git bash » sous windows.

Bref, j’éspère que vous n’allez pas me prendre pour un puriste, car moi aussi il m’arrive fréquemment de choisir la ligne « Windows 7″ dans grub pour lancer Visual Studio, Windows Movie Maker ou Word, mais je ne me sens pour le moment pas à l’aise avec ce système.

Haut de page