Blogue

Souveraineté

Ces jours-ci se déroule la course à la chefferie du Parti Québécois. Celui qui en sortira vainqueur m’importe peu. Mais les discussions qui s’en suivent sur la souveraineté du Québec un peu plus. (Pour les gens qui sont à l’étranger, il s’agit d’un des deux partis politiques majeurs de la province de Québec, le parti qui a choisi comme priorité de réaliser l’indépendance du Québec vis à vis du Canada.)

Je ne me décris pas comme souverainiste, pas plus que fédéraliste d’ailleurs. Je n’ai rien contre le principe d’être en fédération avec le reste du Canada, pas plus que de vivre dans un éventuel Québec devenu pays indépendant.

Mais il y a une chose de certaine : je ne voterai jamais « oui » à un projet ambigu. Et l’indépendance du Québec reste un projet ambigu à mes yeux. Réaliser l’indépendance, d’accord, mais sur quelles bases ?

Ce qu’on nous répète souvent, c’est ceci (pris directement sur le blogue d’André Boisclair, candidat en tête de la course à la chefferie) :

Il est urgent de réaliser la souveraineté afin que nous possédions l’ensemble des leviers économiques et sociaux qui nous permettront enfin d’être véritablement maître de nos choix et de notre avenir.

Hors, c’est bien beau de rapatrier tous ces leviers du fédéral, mais qu’est-ce qu’on en ferait ? Ne faudrait-il pas commencer par définir ce qu’on attend d’un Québec indépendant ?

Alors voici la recette vers la souveraineté que je propose :

  1. élaborer une constitution en impliquant des gens de tous les milieux afin d’avoir le consensus le plus large possible, la rendre publique et la faire connaître ;
  2. élaborer un plan de transition détaillé, le rendre public et le faire connaître ;
  3. soumettre ces deux documents pour approbation, par référendum.

… et voilà, peut-être que je voterais « oui ». En gros, je veux savoir exactement sur quoi je vote.

Je n’ai rien contre le projet de la souveraineté, mais si le Québec devient indépendant, autant que ce soit bien fait : dans la transparence et dans le respect des idées de chacun, et sans trop d’empressement (personne n’aime se faire pousser dans le dos).

Malheureusement, j’ai l’impression que les forces souverainistes sont plutôt pressées de réaliser un nouveau référendum, et tout ceci au détriment des points que je viens d’élaborer. Tout vient à point à celui qui sait attendre dit-on, mais les gens du Parti Québécois seront-ils suffisamment patients pour laisser à leurs dirigeants le temps de préparer toutes ces choses ?

Quoi qu’il en soit, il me semble presque assuré maintenant qu’il y aura un troisième référendum, tôt ou tard. Personne dans le camp souverainiste n’a abandonné depuis le résultat à 49 pour cent contre 51 d’il y a dix ans.

Que le prochain référendum sur l’indépendance du Québec soit gagnant ou qu’il soit perdant, je crois que le Québec dans son ensemble en sera soulagé. Soit le nombre de vote en faveur de la souveraineté augmente et la proposition passe, soit il redescend et on arrête de penser à un prochain référendum. Dans ces deux cas, ça permettra de sortir du contexte bipolaire actuel où tout doit être étiqueté fédéraliste ou souverainiste, et où il n’y a plus de place pour personne entre les deux.


PHP Markdown et le codage du texte

Le remplacement des caractères en dehors de la plage ASCII par leur entité HTML équivalente est très répandue sur le web. Je parle du remplacement des caractères (comme é) par une entitée nommée (é) ou numérique (é en décimal ou é en hexadécimal). De temps en temps, je reçoit un courriel qui me demande d’ajouter le codage des caractères par leur entité HTML dans PHP Markdown. Voici pourquoi ça ne se produira pas.

La raison pour laquelle Markdown ne code aucun caractère (excepté <>'"& lorsque approprié) est que vous ne devriez pas avoir à les coder. PHP Markdown fonctionne avec n’importe quel codage de caractrère qui est une extension de l’ASCII, incluant ISO-Latin-1 et UTF-8, et laissera les caractères comme tel. Si le texte à l’entré est en UTF-8, le résultat sera en UTF-8 et s’affichera correctement sur une page web, pourvu que le « charset » UTF-8 soit spécifié dans le type mime (soit dans l’entête du serveur, soit dans une balise meta).

Si vous voulez convertir ces caractères en entités, n’hésitez pas: faites-le après que Markdown ai terminé sa conversion du texte. Mais il n’appartient pas à Markdown de faire la conversion de tels caractères. Convertir correctement les caractères en entités demande de connaître le codage du texte d’entré, et Markdown ne le connaît pas — il assume tout simplement qu’il s’agit de n’importe quel codage basé sur l’ASCII.


Sim Daltonisme 1.0.1

Cette petite mise à jour de Sim Daltonisme règle un problème qui empêchait l’application de démarrer sur certains processeurs G3. J’avais pourtant bien testé l’application sur deux ordinateur G3 avec succès, mais il semble que certains iBook et PowerBook G3 n’aimait pas trop l’application. Alors voilà, maintenant tout devrait fonctionner.

Le problème? Essentiellement, j’ai désactivé l’autovectorisation qui semblerait-il créait du code non-compatible avec le G3. Normalement l’autovectorisation aurait dû créer un chemin non-vectorisé pour les processeurs G3, ou du moins c’est ce que je croyais. Je ne suis plus certain que c’est le cas. De toute façon, après inspection, j’ai pu constater qu’aucun morceau critique du code n’avait été vectorisé, ce qui rend l’autovectorisation pas mal inutile pour Sim Daltonisme.

J’ai ajouté sur la page de Sim Daltonisme la configuration requise et un historique de version que vous pourrez lire. J’y indique que Sim Daltonisme fonctionne sous Mac OS X 10.2.8. Ceci n’est basé que sur le fait que le logiciel compile sans problème avec le SDK 10.2.8; je n’ai pas vraiment pu faire de test sur une machine roulant ce système.


Multi Colonne

Dernièrement (hier), sur A List Apart est apparu deux articles expliquant comment réaliser des arrangement à colonne multiples pour le web. J’ai trouvé particulièrement intéressant celui sur les listes, cependant j’aimerais suggérer une autre façon de réaliser la chose.

Leur solution finale suggère de donner une classe distincte à chaque élément de la liste. Quel fouillis dans le HTML ! Pourquoi ne pas créer une feuille de style qui ne nécessite aucun attribut class ? Voyons-voir…

D’abord vous avez besoin de connaître le sélecteur d’adjacence. Si vous écrivez li + li comme sélecteur CSS, cela désigne un élément d’une liste qui suit immédiatement un autre élément d’une liste. En d’autre termes, la règle de style sera appliqué à tous les éléments d’une liste, sauf le premier. Génial ! Mettons ça en pratique.

Je vais me baser sur l’exemple 6 de l’article de ALA pour expliquer le reste. Alors peut-être voudrez-vous y jeter un coup d’oeil.

La première utilisation de la classe d’un élément de liste dans la feuille de style attribue une marge négative au sixième et onzième élément pour qu’ils commencent une nouvelle colonne. Nous remplacerons les noms de classe par le sélecteur d’adjacence. Donc ceci :

li.feve,
li.kava
{
    margin-top: -6em;
}

Devient maintenant :

ol li+li+li+li+li + li, 
ol li+li+li+li+li + li+li+li+li+li + li
{
    margin-top: -6em;
}
ol li+li+li+li+li + li+li, 
ol li+li+li+li+li + li+li+li+li+li + li+li
{
    margin-top: 0em;
}

La première règle donne un margin-top négatif à tous les éléments d’une liste précédés par cinq ou dix autre éléments. La deuxième règle remet à zéro la marge pour les autres éléments de la liste (ceux précédés par six ou onze autre éléments). Le résultat est une marge négative uniquement pour le sixième et le onzième élément.

Note sur l’espacement : j’ai groupé les li par 5 — le nombre d’élément dans une colonne — pour rendre la lecture plus facile, autant pour moi que pour le lecteur.

Maintenant nous devons nous occuper du positionnement horizontal de la même façon. Seulement, cette fois, on voit très bien que c’est moins de travail que d’utiliser une classe pour chaque élément. On remplace cet encombrement :

ol li.aloe,
ol li.berg,
ol li.cale,
ol li.dami,
ol li.elde
{
    margin-left: 0em;
}
ol li.feve,
ol li.ging,
ol li.hops,
ol li.iris,
ol li.juni
{
    margin-left: 10em;
}
ol li.kava,
ol li.lave,
ol li.marj,
ol li.nutm,
ol li.oreg,
ol li.penn
{
    margin-left: 20em;
}

Par ces trois règles élégantes :

ol li
{
    margin-left: 0em;
}
ol li+li+li+li+li + li
{
    margin-left: 10em;
}
ol li+li+li+li+li + li+li+li+li+li + li
{
    margin-left: 20em;
}

Le résultat est maintenant exactement le même qu’à l’exemple 6, excepté qu’à présent vous pouvez enlever les attributs class dans le code HTML et que vous pouvez changer l’ordre, insérer ou retirer des éléments à volonté sans vous soucier de la feuille de style.

À présent, on peut dire que le style est vraiment bien séparé du contenu.

Le seul défaut de cette technique semble être que le sélecteur d’adjacence ne fonctionne pas avec IE pour Widnows. :-(



  • © 2003–2024 Michel Fortin.