Blogue

Nouvelles de 2056

À lire sur l’édition du 22 juin 2056 de The Onion, un magazine de satire américain:

Democratic Middle Eastern Union Votes To Invade U.S.

[…]

Mexico, Canada, and Quebec have stated they are sympathetic to the MEU’s goals but must remain neutral for the protection of their own people. It is likely, however, that they will host many refugees, should the U.S. turn against its people.

Remarquez que le Québec est placé dans une liste aux côtés du Canada et du Mexique. Doit-on conclure que The Onion prédit l’indépendance du Québec d’ici 2056 ? Ah!


Sous-menu sur Mac

Si vous avez déjà parcouru des sous-menu sur un Mac et fait la même chose sur Windows, vous aurez peut-être remarqué qu’ils se comportent différemment.

Dans les deux cas, il y a un délai avant qu’un sous menu s’ouvre. Ceci est bien utile car ça évite qu’une ribambelle de sous menus s’ouvrent quand vous vous rendez jusqu’au bas du menu. Par contre quand ce délai est long, il faut faire une pause sur l’élément du menu parent avant de voir apparaître le sous menu. Ce délai est plus court sur Mac.

Dans les deux cas il y a aussi un délai avant que le sous-menu se ferme. Ce délai est compté à partir du moment où le curseur quitte l’élément parent du sous menu. Les deux plateformes utilisent un délais d’environ une seconde, cependant il existe des exceptions qui font que le sous menu se ferme avant la fin du délai. Sur Windows, il s’agit d’un clic sur un autre élément du menu. Sur Mac c’est un peu plus compliqué…

Les flèches sur l’image précédente représentent les mouvements du pointeur. Si vous effectuez sur mac le mouvement d’une des flèche jaune, le menu restera affiché, tant que vous vous atteignez le sous menu dans le délai imparti d’une seconde. Par contre, si vous effectuez le mouvement représenté par une flèche rouge, le menu disparaîtra dès que le pointeur quitte l’élément « Rechercher » du premier menu, sans aucun délai.

Une autre différence par rapport au menu de Windows est qu’aucun autre élément du menu parent ne peut être sélectionné pendant que le sous-menu est ouvert. Pendant que le pointeur suit le parcourt d’une flèche jaune, l’élément « Caractère spéciaux… » ne se retrouve jamais contrasté, même si le pointeur passe au dessus, tant et aussi longtemps que le sous-menu est ouvert. Ça peut sembler étrange à première vue, mais la situation peut devenir confuse pendant un instant sinon. Imaginez que l’élément « Caractères spéciaux… » soit aussi un sous menu, comment savoir lequel des deux sous-menu est affiché à droite ? Cette situation peut arriver sur Windows, mais heureusement le délai d’activation du sous-menu est assez grand pour éviter ce genre de situation: l’utilisateur est « forcé » de faire une pause sur l’élément dont il souhaite ouvrir le sous-menu, ce qui réduit les chances d’avoir ouvert un autre menu que celui souhaité.

Comment ça fonctionne ? C’est simple, dès que le pointeur quitte l’élément parent du menu, une région triangulaire entre la position actuelle du pointeur et le coin du bas du sous-menu est définie. Si le pointeur sort de cette région, le sous-menu se ferme immédiatement. Autrement, l’utilisateur dispose d’une seconde pour déplacer le pointeur à l’intérieur de cette zone après quoi le sous-menu se ferme si le pointeur ne se trouve pas encore à l’intérieur du sous-menu.

Cette approche possède cependant quelque inconvénients. D’abord, il est impossible de se rendre à un sous-menu en glissant le curseur selon une courbe tel que montré par la flèche rouge sur l’image précédente, ceci parce que la direction du début de la courbe fait sortir le pointeur de la région où le délais est applicable.

Ensuite, si on glisse le pointeur de façon à ce qu’il reste toujours dans la région, mais que l’on s’arrête à mi-chemin pour sélectionner un élément voisin, il faut attendre la fin du délai d’une seconde pour qu’il devienne contrasté. Ceci est particulièrement dérangeant quand les sous-menus sont très grands, avec une région triangulaire très étirée.


Multi-Safari

Une nouvelle intéressante est apparue dans mon aggrégateur RSS ce matin. Le code source du Web Kit de Mac OS X est maintenant ouvert à tous. Sur le nouveau dépôt CVS public se trouve un petit script qui m’a inspiré pour faire ce que j’aurais bien aimé faire depuis longtemps: rouler deux versions de Safari en même temps sur le même ordinateur. C’est maintenant chose faite, et voici comment vous pouvez en faire autant.

WebKitTools/Scripts/run-safari

This script sets up the DYLD_FRAMEWORK_PATH environment variable, which will cause the system loader to use the frameworks you built from your Xcode build products directory instead of the ones installed in /System/Library/Frameworks, so it will start the version of Safari from the Applications directory with the WebKit frameworks you just built.

J’ai réécrit le script d’une façon qui m’a permis de créer une version 1.2.3 de l’application Safari 1.2.3 utilisant Web Kit version 125.9 provenant de Mac OS X 10.3.8. Et elle fonctionne parfaitement avec Mac OS X 10.3.9 à côté de Safari 1.3 que j’ai sur mon iBook.

Pour faire marcher tout ça, vous devez avoir un ordinateur avec la version de Safari que vous voulez dupliquer. Voici la marche à suivre:

  1. Créez une copie de l’ancienne application Safari. C’est sur cette copie qu’on travaillera.

  2. Ouvrez votre nouvelle copie de safari pour voir l’intérieur du paquet avec le menu contextuel du Finder. Ensuite, dans le dossier « Content », créez un dossier « Frameworks ».

  3. Sur le disque de démarrage ayant l’ancienne version de Mac OS X, copiez la framework « WebKit » qui se trouve à « /Système/Bibliothèque/Frameworks » dans le dossier « Frameworks » que vous venez de créer dans l’application Safari.

  4. À l’intérieur du dossier « WebKit.framework » que vous venez de copier se trouve un autre dossier « Frameworks » qui contient deux frameworks : « JavaScriptCore » et « WebCore ». Déplacez les dans le dossier « Frameworks » que vous avez créé, juste à côté de « WebKit ».

  5. Maintenant que les frameworks sont à leur place, nous devons nous assurer que le programme les utilise. À l’intérieur du paquet de l’application, renommez le fichier binaire « Safari » qui se trouve dans « Contents/MacOS » et appelez le « TrueSafari ». Ensuite, nous allons placer un script appelé « Safari » à sa place. Le script lancera le programme « TrueSafari » après avoir changé la variable d’environnement DYLD_FRAMEWORK_PATH de façon à préférer les frameworks à l’intérieur du paquet de l’application.

    Téléchargez le script ici : Safari

  6. Il n’y a pas de sixième étape, cependant vous devriez renommez cette nouvelle application Safari pour quelque chose du genre « Safari 1.2.3 » pour éviter les situations mêlantes par la suite.

Vous pouvez maintenant double-cliquer sur votre nouveau vieux Safari. Quelqu’un d’autre a réussit à le faire marcher ?

Mise à jour : J’ai maintenant les versions 1.0, 1.2, 1.2.3 et 1.3 de Safari qui fonctionnent simultanément sur mon ordinateur. J’aimerais bien les partager, mais je doit m’abstenir vu la grosseur des fichiers et la bande passante que ça prendrait si ils venait à devenir populaire.


PHP Markdown 1.0.1b / PHP SmartyPants 1.5.1d

Pour faire suite au billet que j’ai posté dernièrement sur la version anglaise de mon journal, voici une nouvelle version de PHP Markdown sensé corriger les problèmes multiples qui apparaissait avec les anciennes version du plugin pour WordPress.

Le principal changement dans cette version est une réécriture complète de l’interface qui fait de PHP Markdown un plugin pour WordPress. Il est nottamant possible de désactiver Markdown dans les commentaires avec WordPress. Quelques bogues syntaxiques ont aussi été réglés. La liste des correctifs est affiché sur la page anglaise de PHP Markdown.

Finalement un problème dans la fonction _TokenizeHTML était présent à la fois dans PHP Markdown et PHP SmartyPants. Si l’on filtre une page HTML complète avec PHP SmartyPants 1.0.1c, la balise de définition du type de document (DOCTYPE) était ignorée et les guillemets à l’intérieur était courbés. Dorénavant, PHP SmartyPants gérera correctement ce type de balise:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">

Consulter les pages de PHP Markdown et de PHP SmartyPants pour télécharger la dernière version.



  • © 2003–2024 Michel Fortin.