David Madore's WebLog: Unicode

This WebLog is bilingual, some entries are in English and others are in French. A few of them have a version in either language. Other than that, the French entries are not translations of the English ones or vice versa. Of course, if you understand only English, the English entries ought to be quite understandable without reading the French ones.

Ce WebLog est bilingue, certaines entrées sont en anglais et d'autres sont en français. Quelques-unes ont une version dans chaque langue. À part ça, les entrées en français ne sont pas des traductions de celles en anglais ou vice versa. Bien sûr, si vous ne comprenez que le français, les entrées en français devraient être assez compréhensibles sans lire celles en anglais.

Note that the first entry comes last! / Notez que la première entrée vient en dernier !

Index of all entries / Index de toutes les entréesXML (RSS 1.0) • Recent comments / Commentaires récents

Entries with category unicode / Entrées de la catégorie unicode:

(vendredi)

Des caractères Unicode qui manquent

Je commence une page pour rassembler quelques caractères Unicode qui me semblent manquer dans le Saint Standard et dont j'aimerais proposer l'addition. (J'avais déjà il y a longtemps essayé de suggérer l'addition d'un caractère N-ARY RESTRICTED PRODUCT, mais visiblement la personne à laquelle j'avais transmis l'idée — et les preuves de son utilisation dans la littérature mathématique — n'en a rien fait. Il faudra que je voie si je peux trouver des contacts plus fiables.)

Après, ça risque d'être comme ce dont je parlais dans l'entrée précédente : pour faire bouger les choses, il faut se battre contre les Gardiens de la Loi, et ma motivation pour le faire n'est pas démesurée, surtout si je suis tout seul à mener le combat.

(mercredi)

Représentation des maths : TeX et Unicode sont dans un bateau

[Cette entrée fait plus ou moins suite — ou complément — à la précédente, même si elle peut être lue indépendamment.]

Quand on change de police dans le mode maths de TeX (avec des commandes comme \it pour les italiques ou \bf pour le gras dans plain TeX, remplacées en LaTeX par \mathit et \mathbf), le système change vraiment de police (enfin, plus exactement, il change de « famille », une famille étant un ensemble de polices pour le mode maths, les indices et exposants et indices et exposants de deuxième niveau). Plus précisément, TeX attribue aux symboles du mode maths un mathcode, qui est constitué de trois parties : un type de symbole (0=ordinaire, 1=grand opérateur, 2=opération binaire, 3=relation, etc., et 7=variable), une famille (par exemple, 0=droit, 1=italiques maths, 2=script et symboles, 6=gras) et un numéro de caractère dans la police (par exemple, pour un ‘x’, ces parties valent 7, 1 et 0x78, tandis que pour un ‘+’ elles valent 2, 0 et 0x2B, et enfin pour un \Gamma ce sont 7, 0 et 0x00) ; le type sert à l'espacement, la famille détermine la police utilisée pour ce symbole, et le numéro indique quoi chercher dans cette police ; mais si le type vaut 7(=variable), alors le numéro de famille stocké comme deuxième partie du mathcode sera overridé par le numéro de famille courante (celle qu'on choisit en tapant une commande de police) si ce numéro ne vaut pas −1 : c'est la raison pour laquelle le ‘x’ est italique par défaut (alors que le \Gamma est droit par défaut) mais que si on ajoute un \bf devant (qui passe la famille à 6), tous les deux deviennent gras — en revanche, le ‘+’ ne le devient pas.

Mais Unicode a prévu des alphabets spécifiques pour les lettres grasses/italiques/etc. dans les formules mathématiques (l'idée étant qu'en mathématiques, et seulement en mathématiques, passer en gras change vraiment la sémantique du caractère : donc il est logique d'en faire un caractère Unicode différent).

Du coup, si on utilise LuaTeX avec le package unicode-math, les choses sont complètement différentes : il n'y a plus qu'une police (numérotée 0) qui sert pour tout, elle est encodée avec des codepoints Unicode. Par exemple, un ‘x’ mathématique italique minuscule est représenté dans Unicode par le codepoint U+1D465 MATHEMATICAL ITALIC SMALL X : le paquet unicode-math va donc lui donner le mathcode (étendu par LuaTeX pour pouvoir dépasser les 3+4+4=15 bits prévus par TeX) dont les trois parties sont : 7, 0 et 0x1D465. Cette fois, quand on veut passer, disons, en sans-sérif, le paquet ne change pas la police, il change les mathcode associés aux lettres (dans un \mathsf, le mathcode du ‘x’ devient (7, 0, 0x1D5D1) pour référencer U+1D5D1 MATHEMATICAL SANS-SERIF SMALL X).

Bon, le principe n'est pas idiot, mais il souffre d'une limitation : et si je veux un ‘Ш’ en gras ou en sans-sérif ? Et si je veux un ‘é’ en gras ou en sans-sérif ? Unicode n'a pas prévu de caractères pour ces choses-là. Et, indépendamment d'Unicode, la police XITS ne les a pas. Ce qui ne veut pas dire que les choses soient impossibles : pour le gras, on peut prendre une version grasse de la police XITS (oui, il y a un alphabet mathématique gras dans la police normale, mais il y a aussi une version grasse de la police) ; pour le sans-sérif, on peut aller chercher une police vaguement semblable ; et pour taper un ‘é’ on peut aussi mettre un ‘´’ sur un ‘e’. Mais quelle est la bonne façon de faire ?

On peut peut-être inventer des nuances sémantiques sibyllines : par exemple, on peut prétendre que si j'écris un x sans-sérif dans une formule mathématique (un 𝖾), c'est un symbole en lui-même, donc il est logique de le représenter par un symbole Unicode spécial qui correspond à un e sans-sérif quelle que soit la police (U+1D5BE MATHEMATICAL SANS-SERIF SMALL E), mais que si je choisis de représenter l'ensemble des dérivations sur un anneau A par Dér(A) et que je m'amuse à écrire le Dér en sans-sérif, alors il faut quand même le représenter par les caractères Unicode normaux (U+0044 LATIN CAPITAL LETTER D / U+00E9 LATIN SMALL LETTER E WITH ACUTE / U+0072 LATIN SMALL LETTER R) et c'est la police qui devra être sans-sérif. Pour aller plus loin dans les distinctions byzantines : dans le deuxième cas, on a un ‘é’ dans une police sans-sérif, alors que si j'invente une notation mathématique représentée par un accent aigu (pourquoi pas, après tout), je pourrai voir un U+1D5BE MATHEMATICAL SANS-SERIF SMALL E surmonté d'un accent aigu, ce qui est différent. C'est en tout cas la meilleure façon que je voie de défendre la choix d'Unicode. Mais il faut dire que c'est sacrément tiré par les cheveux, et un peu pénible à implémenter avec unicode-math. Et ça ne tient même pas complètement debout : parce que si je prétends que les mots ou bouts de mots français qui apparaissent dans les formules mathématiques doivent s'écrire avec les caractères Unicodes « normaux » et pas dans les alphabets mathématiques du plan 1 — ce qui, effectivement, se défend — ça pose problème lorsque je commence à vouloir distinguer le mot Hom écrit en caractères gras (par exemple pour la catégorie des foncteurs entre deux catégories). Bref, on encule les mouches mais on ne sait pas très bien où on va.

(lundi)

De la difficulté de marier TeX et Unicode

J'avais déjà parlé de la question il y a quelques années, mais il est peut-être temps que je fasse une mise au point un peu plus détaillée sur ce qu'il en est.

Le merdier

Commençons par rappeler les personnages de la pièce. D'un côté, on a TeX, le logiciel de typographie scientifique écrit vers la fin des années '70 par Donald E. Knuth pour pouvoir mettre en page son Art of Computer Programming, et qui à ce jour semble être le seul programme capable de faire de la mise en page scientifique (voire, de la mise en page tout court) de bonne qualité — et qui est, en tout cas, universellement utilisé pour leurs publications par les mathématiciens, les physiciens et les informaticiens. De l'autre, on a Unicode, le jeu de caractères démarré vers la fin des années '80 et qui est en train de devenir le standard pour la représentation de toutes les formes d'écriture de toutes les langues du monde.

De cette description il résulte que si on veut mettre en page un document de qualité typographique correcte mélangeant un grand nombre de langues, on va vouloir utiliser TeX et Unicode. L'ennui, c'est qu'ils ne s'aiment pas. Mais alors, vraiment pas.

Le problème vient principalement de ce que Knuth, quand il programme, écrit du code certes absolument parfait du point de vue des bugs (il a fait 427 corrections à TeX depuis 1982, dont 11 depuis le début de ce millénaire, ce qui est plutôt pas mal quand on considère que Mozilla/Firefox approche les 850000 bugs rapportés depuis 1998 — même si ça ne compte pas exactement la même chose ça donne une idée), mais absolument abominable du point de vue de l'extensibilité future. TeX est donc bourré de bizarreries et d'idiosyncrasies poussiéreuses[#], de code ad hoc, de constantes magiques, et d'hypothèses faites à niveau profond — comme le fait qu'il n'y aura pas plus que 256 caractères dans une police, ou que toutes les dimensions sont exprimés en une unité fondamentale qui vaut 127/23681433600 mètres (soit environ 5.362851nm). En plus de ça, c'est un des langages de programmation les plus abominables qui soient (basé sur l'expansion de macros, sans aucune notion de portée bien définie ou de transparence référentielle — et avec des limitations incroyablement lourdingues comme 255 variables globales et 255 variables locales pour chaque type de données, aucune multiplication ou division ou arithmétique flottante, bref, une vraie fosse à goudron de Turing). Soit dit en passant, le source de TeX lui-même est tout aussi abominable (pas seulement parce qu'il est écrit en Pascal, mais aussi parce qu'il fait tout ce qu'on dit de ne surtout pas faire dans les cours de compilation, comme stocker des paramètres et variables de retour dans des variables globales).

Comme si ce n'était pas suffisamment atroce, au-dessus de TeX s'est accumulée toute une couche de sédiments, à savoir des packages pour TeX qui tentent de l'enrichir dans différentes directions. Et notamment tout l'édifice de LaTeX qui essaie de fabriquer quelque chose de propre au-dessus du merdier sous-jacent d'une façon qui revient à peu près à essayer de construire une ville au-dessus d'un tas de fumier, pour se retrouver, en fait, avec une construction complètement bancale et qui ressemble plus à la citadelle de Kowloon qu'à la Cité interdite. (Bon, j'en conviens, mes métaphores sont complètement pourries.) Certains de ces paquets sont carrément impressionnants (comme TikZ), mais le problème est que (1) la compatibilité des packages entre eux est souvent très douteuse, car chacun peut modifier tout le système dans des directions carrément imprévisibles, et (2) les hypothèses douteuses du cœur (comme le fait que les polices sont limitées à 256 caractères) sont démultipliées par tout le code qui se greffe au-dessus.

(vendredi)

Unicode Map version 0.0.4

J'ai publié la version 0.0.4[#] de ma petite table Unicode pour Android (qui a maintenant sa propre page Web mais ça ne dit rien d'intéressant). Les changements sont assez mineurs : le plus important est que j'ai mis à jour les données pour Unicode 6.1[#2] (avant c'était 5.2) ; j'ai aussi ajouté deux-trois boutons plus pratiques sur la description d'un caractère, rien de bien passionnant[#3]. Malgré ça, c'est fou la perte de temps que peut représenter l'écriture d'une nouvelle version : le mécanisme de compilation sous Android (basé sur ant) a changé depuis la dernière fois que j'y ai touché et il m'a fallu me rappeler ce que je savais et recomprendre ce qui avait changé ; mais au passage ils n'ont pas corrigé le bug qui faisait que dès qu'on touche aux ressources de l'application, si on ne force pas une recompilation complète, elles ne sont pas correctement mises à jour dans le paquet, ce qui peut causer de graves maux de tête ; il faut aussi se rappeler comment signer un paquet, quoi faire avec pour l'installer manuellement[#4], etc., et bien sûr comment fonctionne le système de widgets d'Android, comment accéder à la console développeur pour uploader le package, rédiger un changelog ; et se battre pour comprendre comment ils numérotent les versions du système (genre, il faut passer --target 11 à certains programmes pour compiler avec le niveau 10 de l'API, c'est-à-dire celle de la version 2.3.3 d'Android qui s'appelle aussi Gingerbread, c'est terriblement intuitif). Bref.

Tout ça pour avoir le droit de me faire spammer par (1) des mails semi-automatisés de la part de marchés d'applications autres que celui de Google[#5], me demandant de mettre mon programme aussi sur leur site, et (2) des mails d'utilisateurs qui me demandent pourquoi la plupart des caractères s'affichent comme des carrés. Ça c'est la rançon du fait de publier une application Android.

En contrepartie, Google vous donne des caramels mous : c'est comme quand on publie une vidéo sur YouTube, on a droit à plein de stats profondément inutiles donc indispensables sur combien de gens utilisent votre application (resp. regardent votre vidéo), dans quels pays ils sont, quelle est leur couleur préférée et quel est le prénom de leur chat, tout ça avec des courbes interactives et plein d'autres choses encore plus inutiles. Là par exemple, avant la mise à jour, Google me prétend qu'il y a 3455 personnes qui ont actuellement mon application installée (sur 4052 dispositifs Android, et 17105 personnes l'ayant installée un jour ou un autre), que 64% d'entre eux sont aux États-Unis (ce qui est beaucoup parce que — toujours d'après Google — les Américains ne sont que 30% parmi les utilisateurs d'une application quelconque de la catégorie dans laquelle la mienne s'inscrit ; j'imagine que c'est tout bêtement parce que mon application est uniquement en anglais, mais je ne pensais pas que ça jouerait autant), et que j'ai encore autour de 3% d'installations sous Android 1.5 alors que pour l'ensemble de la catégorie c'est plutôt 0.2% (probablement parce que justement mon application tourne encore, contrairement à beaucoup d'autres, sous Android 1.5). Bon, sans doute que dans trois jours je vais voir que le nombre d'utilisateurs sera tombé à ~1000 parce que l'upgrade aura rappelé aux gens qu'ils ont cette application qu'ils n'utilisent jamais, ou parce qu'elle se sera mal passée.

[#] Je crois que je vais toutes les numéroter 0.0.n pour n un entier naturel.

[#2] Voilà, maintenant vous pouvez utiliser le merveilleux U+1F61B FACE WITH STUCK-OUT TONGUE. 😛

[#3] Et j'ai toujours un bug que je ne comprends pas qui fait que parfois la première initialisation de l'application échoue et laisse la base de données verrouillée.

[#4] Ah, et aussi se rappeler comment lancer un émulateur, histoire de tester l'application sur différentes configurations, par exemple une tablette sous Android 4, chose que je n'ai pas sous forme matérielle. Et pester que l'émulation est très (très) très lente. Et se demander pourquoi ces bananes n'ont pas prévu une configuration émulant une tablette Intel au lieu d'une tablette ARM, histoire de bénéficier de l'émulation matérielle du processeur (enfin, à supposer qu'ils en profitent, ce dont je ne suis malheureusement pas certain).

[#5] Ce dernier ne s'appelle plus Android Market, d'ailleurs, mais Google Play. J'ai déjà dit que je détestais la manie de changer le nom des choses ?

(lundi)

Fallait-il ajouter plein de pictogrammes dans Unicode ?

Les lecteurs réguliers de ce blog savent bien que je suis un zélé fidèle de l'église de l'Universelle Numérotation en Intelligence Commune Offerte par les Dieux de l'Encodage, loué soit le nom du Saint Standard et louée soit sa version 6.0. Il faut cependant que je reconnaisse parfois que ma foi hésite et qu'il me prend l'audace de m'interroger sur l'opportunité de telle ou telle décision.

Un des moments qui m'a ainsi fait vaciller a été l'addition dans Unicode 6.0 (environ l'an dernier) de centaines de caractères dans deux blocs appelés Emoticons (1F600–1F64F) et surtout Miscellaneous Symbols and Pictographs (1F300–1F5FF), parmi lesquels on trouve des choses aussi saugrenues et surprenantes que :

…ce n'est pas une blague. Et encore, je ne suis pas sûr d'avoir bien fait le tour des plus ridicules du lot. Je constate d'ailleurs en écrivant ceci que j'ai apparemment sur mon système une police contenant tous ces trucs (enfin, au moins j'ai quelque chose de plausible qui s'affiche : je ne sais pas bien à quoi une moon viewing ceremony est censée ressembler même en regardant le Standard et en zoomant dessus, mais c'est peut-être bien ce que mon navigateur affiche ; par contre mon alien monster est clairement différent de celui du Standard) ; je ne sais pas d'où elle sort.

Bref, ma première réaction a été d'être partagé entre l'amusement (oooooh, plein de nouveaux caractères brillants avec lesquels faire joujou !) et l'exaspération (mais ils ont fumé la moquette, ou quoi ? qu'est-ce que c'est que toutes ces conneries, et où est le caractère UNICODE STANDARD FINALLY GONE BANANAS ?).

L'origine de tous ces caractères brillants, comme de beaucoup de gadgets clignotants en général, et comme on s'en rend compte en regardant un peu le biais culturel qui préside au choix des concepts dessinés (sans même aller chercher quelque chose d'aussi évident que la tour de Tōkyō qui est certes accompagnée d'une statue de la Liberté mais pas des grandes pyramides, de Big Ben, d'une tour Eiffel ou du Golden Gate), est bien entendu le Japon : plein de « caractères », sous formes d'échappements Shift-JIS spéciaux et plus ou moins normalisés, qui étaient déjà utilisés pour échanger des petits dessins dans des petits messages téléphoniques (pas des SMS parce que ce n'est pas ce qui est utilisé au Japon, mais peu importe). L'argument en faveur de leur encodage dans Unicode est donc évident : il y a un standard, ou un quasi-standard, qui les répertorise, et Unicode a pour but de devenir le standard ultime de représentation des caractères dans les échanges d'information, donc il fallait bien qu'il absorbât tout ça. En l'occurrence, je crois comprendre que ce sont Google (pour Android) et Apple (pour l'iPhone) qui ont présenté des demandes dans ce sens (voire des propositions formelles) au consortium Unicode.

Le principal argument contraire, ce n'est pas celui du ridicule ni même du biais culturel (de toute façon il y a des dizaines de milliers de caractères CJK, alors le biais culturel…). C'est plutôt celui de la pente glissante : oui mais si on commence à avoir dans le standard Unicode une cérémonie de contemplation de la lune, un alien ou deux, une femme avec des oreilles de lapin, un chat avec des yeux en forme de cœur et la tour de Tōkyō, pourquoi pas aussi Darth Vader, Flash Gordon, une crevette boxeuse, une otarie écoutant de la musique et l'alien de Reddit ? Si Unicode commence à devenir un répertoire de tous les pictogrammes de l'humanité, 17×65536 codepoints ne suffiront pas, et si ce sont tous les concepts, 231 non plus. La réponse du Standard à ce genre d'arguments a toujours été : le fait que nous ayons encodé X n'est en aucune cas une garantie d'encoder X′ très proche de X, même si ça peut sembler « logique » — et donc de rejeter systématiquement tous les arguments à base de mais puisque vous avez encodé Truc, vous devriez aussi logiquement encoder Machin. Ce n'est pas furieusement satisfaisant : il y a plein de manques illogiques, et parfois ils finissent par céder, par exemple ils ont fini par mettre un U+2E18 INVERTED INTERROBANG (⸘) (ce qui a causé une certaine réjouissance auprès de normaliens que je connais) après avoir longtemps soutenu qu'il n'y avait aucune raison d'être logique et que ce n'était pas parce que le point d'interrogation et le point d'exclamation avaient leur version inversée que leur superposition devait l'avoir aussi, jusqu'à preuve que des espagnols utilisent vraiment l'interrobang. Mais s'agissant des emojis, ces arguments doivent céder devant le fait que toutes ces choses sont vraiment utilisées (ce qui, pour l'interrobang inversé, reste quand même un peu à prouver). Bon, mon Android ne permet pas encore de les saisir (du moins de façon commode), et n'est même pas foutu de les afficher, mais j'imagine qu'au fil des versions ça viendra. Il semble que Mac OS 10.7 (Lion) va dans ce sens.

La réponse officielle d'Unicode aux questions qu'on peut se poser sur les emojis est ici, mais il est aussi intéressant de jeter un œil aux commentaires officiels des organismes de standardisation nationaux lors des votes pour ISO/IEC 10646:2003. On y apprend par exemple que l'Allemagne à demander à renommer U+1F471 de WESTERN PERSON à PERSON WITH BLOND HAIR (pour éviter des débats racistes douteux sur ce qu'est un occidental — ceci dit, je ne sais pas dans quel sens le changement a plus de chances d'éviter ce débat), et qu'il y a eu toutes sortes d'autres arguties sur les noms, notamment entre le Royaume-Uni et les États-Unis pour l'orthographe de sulphur/sulfur. En fouillant un peu, on trouve d'autres documents de travail dans le même coin (malheureusement pas référencés de façon systématique, ou alors je n'ai pas trouvé) qui donnent une petite idée de ce que les débats ont pu être. Par exemple celui-ci, qui émane des organismes de standardisation allemand et irlandais et qui fait tout un tas de commentaires en cours de standardisation, qui me semblent tout à fait sensés et intelligents (et qui ont été largement suivis), sur la proposition initiale (du moins je suppose que c'est ça — malheureusement elle n'est pas annotée).

Ce qui sera intéressant, c'est de voir quel usage les non-japonais vont faire de ces symboles : leur usage va-t-il se répandre, va-t-on voir les webforums en anglais fleurir de toutes sortes de pictogrammes dans ce jeu, ou bien l'usage de ceux-ci restera-t-il cantonné au Japon ? Pour l'instant il est encore trop tôt pour le dire, il faut probablement que les polices soient un peu plus diffusées. Si cela se produit, et même si le jeu des caractères ainsi fournis est bizarre, idiosyncratique et illogiquement incohérent, je trouve que ce ne sera pas forcément un mal, toute forme d'expressivité gagnée dans la communication électronique me semble plutôt bonne à prendre. Actuellement les webforums semblent surtout prendre un jeu de smileys plus ou moins standardisé (plutôt moins que plus), saisis à la souris, temporairement encodés sous forme de succession de caractères ASCII (évidente quand il s'agit de :-) mais parfois juste un code ad hoc) et finalement affichés sous fome de petites images. Eh bien je préférerais largement des caractères Unicode pour tout ça ! Pour écrire ce blog, je tape des balises spéciales comme <d:smiley-wink /> (ce qui donne : 😉), converties en smileys par mon moteur de blog (celui que depuis des années je dois réécrire entièrement) et affichées sous forme d'images avec un attribut alt pour les rendre lisibles sur un navigateur texte pur et aussi un title qui explique un peu plus ce que le smiley doit représenter. De même, je ne serai(s) pas fâché de pouvoir passer à de vrais caractères Unicode.

Ajout : Apparemment la police que j'ai pour représenter ces caractères s'appelle Symbola, elle est disponible ici (merci à George Douros !), et packagée par Debian dans le paquet ttf-ancient-fonts. Et comme exemple d'affichage des caractères donnés ci-dessus comme exemple, voici à quoi ça ressemble (c'est plus du clipart à ce niveau-là) :

🌇🍥🎑👯👽👾💖💹🗼😅😝😻🙊🙌

(jeudi)

Mes domaines Web se font saisir par une RFC

Il y a six ans j'avais acheté les domaines xn--kwg.net (lire ⁂.net) et idem.com au moment où le DNS internationalisé commençait à apparaître. Depuis, les gens se sont rendu compte que les caractères Unicode posaient plein de problèmes de sécurité (le genre de problèmes étant qu'il est difficile de distinguer google.com et gооglе.com alors que ces deux domaines n'ont rien à voir), et ils ont commencé à mettre plein de règles (à mon avis totalement stupides) dans l'espoir (à mon avis totalement futile) de trier dans Unicode les caractères désirables et indésirables dans un nom de domaine.

Je n'ai guère utilisé ce domaine « astérisme » de façon publique, me doutant bien que cela poserait toutes sortes de problèmes (publiquement j'utilise madore.org), mais je l'ai beaucoup utilisé sous son nom Punycode (xn--kwg.net, je trouve ça rigolo) de façon interne et architecturale (c'est-à-dire comme un domaine technique : les serveurs DNS de mes domaines étaient enregistrés sous ce domaine, je m'en servais pour le DNS inverse, etc.). Depuis un moment j'ai commencé à utiliser gro-tsen.net à la place, me doutant bien que des problèmes viendraient. Mais réussir à extriquer tous les endroits où j'ai utilisé le nom xn--kwg.net est extrêmement difficile, donc je l'ai gardé.

Voilà que la dernière version des règles du DNS internationalisé interdit le caractère U+2042 ASTERISM (⁂) que j'avais adopté. Verisign (registry des TLD .net et .com) a décidé d'appliquer maintenant ces règles et j'ai reçu le courrier suivant de mon registrar :

Dear customer.
 
We regret to inform you that Verisign, the Registry for .com and .net 
domain names, has just given notice that it will discontinue service for 
domain names not in compliance with RFC 5891.RFC 5891, which was adopted 
by the IETF/IESG applies to Internationalized Domain Names in 
Application (“IDNA”).  Compliance with this new RFC is necessary to 
ensure the security and stability of registry operations.  RFC 5891 
affects allowable second level strings in IDN domain names. In addition, 
Verisign will insure compliance with RFC 5891 by deleting existing 
domain names and child hosts from the .com and .net databases.
 
We hereby inform you that your domain names listed below are affected by 
this policy change of the registry and will be deleted by the registry 
on or after Juli 27, 2011. Please change your settings for these domain 
names to AUTODELETE to prevent a renewal before that time as no refunds 
for ongoing registration terms will be possible. Should the domains be 
registered for your customers, please inform the registrants of the 
domain names as soon as possible.

- XN--KWG.COM
- XN--KWG.NET

We sincerely regret the inconvenience caused to you and your customers 
by the decision of the Registry to implement the new RFC in this way.

Je trouve que c'est un peu fort de café de ne me laisser que quatre mois pour me retourner. Ça c'est la faute de Verisign, évidemment. Mais c'est d'autant plus fort que j'avais payé les domaines en question jusqu'à février 2012, et l'annonce cavalière no refunds for ongoing registration terms will be possible, elle, est la faute de mon registrar, et ce n'est absolument pas normal.

J'ai donc répondu :

Dear DD24,

On Thu, Mar 10, 2011 at 12:55:23PM +0000, Support DD24 - Key-Systems GmbH wrote:
> We hereby inform you that your domain names listed below are affected by 
> this policy change of the registry and will be deleted by the registry 
> on or after Juli 27, 2011. Please change your settings for these domain 
> names to AUTODELETE to prevent a renewal before that time as no refunds 
> for ongoing registration terms will be possible. Should the domains be 
> registered for your customers, please inform the registrants of the 
> domain names as soon as possible.
> 
> - XN--KWG.COM
> - XN--KWG.NET

I had already registered the two domains in question beyond 2011-07-27
(expiration date was scheduled to be 2012-02-24 for each one of them),
so I'll be losing 2×7 months of domain registration through no fault
of my own.  I don't think it's fair that you can simply say "no
refunds will be possible".  I paid for these domains well in advance,
so I'm entitled to some kind of compensation.

Instead of a refund, I propose that you transfer the 2×212 domain·days
that I will be deprived of by Verisign's decision to extend the
validity for the domain gro-tsen.net (which is on the same registry,
also registered by dd24 and currently set to expire on 2013-12-27) by
that same number of days, i.e., until 2015-02-24.  I hope we can agree
that this is an acceptable settlement in this matter.

Nous allons voir comment cela évolue.

Toujours est-il que je me tâte pour reprendre un domaine internationalisé pour remplacer xn--kwg.net, parce que gro-tsen.net ça ne me plaît vraiment pas (je voudrais quelque chose de plus cryptique pour mon domaine technique). Si je comprends la RFC, le domaine xn--qr7c.net devrait devenir accessible (il s'agit du caractère U+10080 LINEAR B IDEOGRAM B100 MAN, 𐂀 si vous avez la police qui va bien), ou encore xn--wb8d.net (U+132F9 EGYPTIAN HIEROGLYPH S034, 𓋹), mais celui-là il y a certainement plein de fans de new age qui vont se jeter dessus. Ou alors peut-être que je suis échaudé avec l'IDN et que je vais prendre un nom de domaine constitué de caractères hexadécimaux aléatoires.

Mise à jour : Voici leur réponse :

Dear Mr. Moore[sic],

regretfully, we are unable to provide a refund for domain names lost through
registry policy change. Such a policy change by the registry is completely outside
our control. We are currently trying to influence the registry to change their
position, but we do not have high hopes for that. 

Et ma réponse à leur réponse :

On Thu, Mar 10, 2011 at 04:50:05PM +0000, Support DD24 - Key-Systems GmbH wrote:
> regretfully, we are unable to provide a refund for domain names lost through
> registry policy change. Such a policy change by the registry is completely outside
> our control. We are currently trying to influence the registry to change their
> position, but we do not have high hopes for that. 

As stated in my email, I do not require a refund, I am proposing to
transfer the duration of validity of the domain in question to another
domain, also administered by you and from the same registry.

If this is not acceptable, please explain how you intend to compensate
for failing to provide a service which I have paid for.

Mise à jour nº2 : Ils m'ont informé que Verisign avait fait marche arrière et ne supprimerait pas les domaines selon le calendrier initialement annoncé.

(jeudi)

Je programme pour Android

Comme finalement je trouve que le Java n'est pas un langage trop mal, et que j'avais par ailleurs depuis longtemps envie de programmer quelque chose pour Android, j'ai écrit un petit programme pour réparer une lacune qui m'agaçait : une liste des caractères Unicode avec quelques possibilités primitives de recherche et de saisie des caractères (pour pouvoir les copier-coller ensuite ailleurs). Vous pouvez la télécharger sur le marché Android (cherchez Unicode Map) ou depuis un ordinateur via le lien précédent. Vous pouvez aussi me faire part de vos suggestions d'amélioration, je promets de les ignorer très soigneusement ☺ (sauf peut-être si elles sont accompagnées d'un patch ou d'une proposition de git pull). Vous pouvez également me dessiner une icône qui soit moins complètement pourrie que celle que j'ai « dessinée » en dix secondes en découvrant qu'il était obligatoire d'en avoir une.

C'est d'ailleurs impressionnant le nombre de sites Web qui répercutent l'arrivée d'une nouvelle application Android (et j'imagine que pour iPhone c'est environ 1000 fois ça) : pour une application que j'ai mise sur le marché avant-hier, il y a déjà plein de listings (automatiquement générés) qui sont indicés par Google et qui en parlent (en parlent veut dire, évidemment, ont recopié le petit blabla que j'ai écrit en cinq secondes — encore moins que l'icône — dans le formulaire d'upload). Ça semble surtout là pour combler ce manque qui me semble insupportable et criant : Google n'a prévu aucun listing Web officiel des applications Android, ce que je ne comprends pas du tout (ça ressemble à une tactique d'Apple, mais à la sauce Google) ; je comprends éventuellement qu'ils ne prévoient aucun moyen de télécharger l'application autrement qu'en passant par leur application de marché sur le téléphone, mais pourquoi ne même pas avoir un mécanisme de recherche via le Web et des pages fixes rappelant les informations basiques sur l'application ? ça n'a pas de sens. Et c'est clairement intentionnel : quand on regarde la page Web du marché, on voit que tout a été fait exprès pour éviter les liens Web. Je ne comprends pas. (Et je comprends d'autant moins que, du coup, plein d'autres gens s'engouffrent dans la brèche, justement.)

(dimanche)

Quelle est l'histoire de la ponctuation ?

Des livres entiers ont été dédiés à l'histoire de l'alphabet. Beaucoup moins sont consacrés à celle, qui me semble pourtant tout aussi fascinante, des signes de ponctuation et de tous les autres signes d'écriture qui ne sont pas alphabétiques. Je trouve bien celui-ci, par exemple, mais d'une part il coûte quand même très cher et d'autre part je crois deviner qu'il se limite à un usage strictement typographique (excluant, par exemple, les communications purement électroniques et l'histoire de la ponctuation en informatique), ce qui est dommage.

L'histoire devrait commencer avec l'apparition de l'espace (je ne cesse de m'étonner du temps qu'il a fallu pour que les gens comprissent que c'était une bonne idée de ne pas collertouslesmotsensemble si on veut aider à la relecture), et devrait couvrir jusqu'à la standardisation d'Unicode, en passant par la façon dont les claviers des machines à écrire ont été choisis et la manière dont ASCII a fait la synthèse des jeux de caractères préexistants.

Et c'est une histoire compliquée, parce que les langues s'influencent les uns les autres, et les signes se confondent ou se séparent de façon pas forcément évidente. Pour comprendre l'histoire du point-virgule, il ne s'agit pas simplement de trouver le premier exemple d'un point-virgule dans un texte imprimé (ça doit être vers la fin du XVe siècle en Italie), il faut comprendre aussi comment le point-virgule et le deux-points se sont différenciés et spécialisés (quel a été le premier texte à utiliser l'un et l'autre ? et le premier à les utiliser avec essentiellement les sens modernes ? je remarque par exemple que le manuel de typographie d'Étienne Dolet (1540) ne connaît pas le point-virgule). Il ne faut pas oublier les signes un peu rares : comment sont apparus les signes § (section ou paragraphe), (paragraphe ou pied-de-mouche), @ (arrobase) ou encore (obèle ou glaive) dans les documents imprimés, et avec quel(s) sens ? On trouve des bouts d'information sur Wikipédia (cf. les liens que j'ai donnés) ou ailleurs sur le web, mais c'est souvent très partiel, approximatif ou confus (on mélange allègrement l'histoire de l'apparition du caractère, ses différents usages, sa version informatique…).

J'ai évoqué la naissance d'ASCII en 1963[#] et 1967 : c'est une date fondamentale pour la typographie informatique car les caractères qui ont reçu cet adoubement caractères ASCII sont devenus omniprésents, et les autres ont été relégués à un rôle de second plan (même s'ils ont pu apparaître dans des jeux de caractères ultérieurs : Latin-1 ou Unicode). C'était sans doute inspiré des jeux de caractères informatiques antérieurs, eux-mêmes inspirés des machines à écrire, mais la cohérence n'est pas toujours très évidente. Et ça a changé la face du monde : je ne sais pas au juste pourquoi le signe @ (arrobase) s'est retrouvé dans ASCII et pas le signe § (ce dernier ayant quand même l'air plus commun dans des textes typographiés traditionnels, que ce soit en anglais ou en français, alors que le @ servait traditionnellement uniquement dans quelques notations commerciales), mais je pense qu'il n'est pas besoin d'expliquer comment le @ a vu sa popularité boostée par cette inclusion dans ASCII qui a permis de l'utiliser ensuite dans les adresses de courrier électronique. Alors pourquoi @ et & sont-ils dans ASCII et pas § et  ? Je n'en sais rien. Cette page fournit des explications sur certains caractères, mais pas sur ceux-là. C'est d'autant plus bizarre, d'ailleurs, que des caractères complètement anecdotiques se sont retrouvés dans ASCII, le plus bizarre étant sans doute la barre verticale |[#2]. Mais c'est aussi ASCII qui a rendu universel le backslash \[#3], un caractère presque inexistant auparavant (son histoire est racontée ici par le Monsieur qui l'a inventé).

Les accolades mériteraient certainement qu'on parle d'elles : si leur apparition dans ASCII est due au même Monsieur que le backslash (voici ce qu'il en dit), on peut se demander comment elles étaient apparues sur les claviers de certaines machines à écrire pour commencer — après tout, à part quelques mathématiciens, qui diable aurait eu besoin ou envie de taper des accolades ? En maths on les utilise pour désigner des ensembles, mais j'imagine que ce ne sont pas les mathématiciens qui ont inventé ces signes. Je subodore que leur premier usage était comme des signes très larges placés, par exemple, dans une marge, pour regrouper des lignes entre elles (ou n'importe quelle sorte d'items alignés verticalement), et j'imagine que l'accolade gauche est née avant l'accolade droite (peut-être que ce sont effectivement les mathématiciens qui ont inventé l'accolade droite, et/ou les accolades utilisées comme parenthèses et de taille seulement d'une ligne). Mais alors comment se sont-elles retrouvées sur le clavier d'une machine à écrire (si on veut faire des grandes accolades pour regrouper plusieurs lignes, avoir une touche qui fait une accolade d'une seule ligne de haut ne sert pas à grand-chose…).

Parmi les caractères dont l'histoire est intéressante, il y a aussi Celui Qu'On Ne Sait Pas Nommer — je veux dire celui qui est à l'emplacement 35=0x23 dans ASCII et qui ressemble à un dièse : #. Les gens le prononcent généralement dièse mais ce n'est pas un dièse (le dièse, c'est ça : ♯ — et ce n'est pas un signe utilisé dans la notation d'autre chose que la musique). Il est souvent utilisé en anglais pour précéder un numéro (un peu comme on écrirait en français), et il semble qu'historiquement il vienne d'une notation désignant (aux États-Unis) une livre de poids. Pour cette raison, il est d'ailleurs parfois appelé pound sign, ce qui est une réussite géniale du Club Contexte parce que du coup on le confond complètement avec le symbole £ de la livre (l'unité monétaire britannique), d'autant plus que le # est sur les claviers qwerty US exactement à l'endroit où est le £ sur les claviers qwerty GB (ça c'est vraiment génial, comme façon d'alimenter la confusion). Bref, le # ressemble à un dièse mais n'en est pas un, et s'appelle symbole de la livre même s'il n'en est pas un ! (D'où la suggestion faite dans le Jargon File d'appeler ce caractère shibboleth — comme שבלת dans Juges 12:5–6.)

On pourrait dévier vers l'histoire de toutes les notations mathématiques, d'ailleurs, mais je remarque quand même que ça se recouvre assez peu : les mathématiciens, qui sont très friands de notations exotiques, utilisent assez peu certains des symboles fournis par la typographie (je crois que je n'ai à peu près jamais vu les caractères $, @, § ou ¶ utilisés dans des articles mathématiques, alors qu'ils fournissent un système commode de variations sur le prime).

((J'en profite pour conclure par une exhortation (et je m'adresse à tous ceux qui écrivent des textes, qu'ils soient littéraires ou techniques) : celle de ne pas hésiter à faire un usage libéral, éventuellement même créatif, de la ponctuation. Créer de nouveaux signes de ponctuation est difficile, surtout dans le cadre d'échanges de fichiers informatiques (où on est contraint par ce que les standards permettent), donc il est par exemple difficile d'utiliser la virgule d'interrogation et la virgule d'exclamation (des signes que dont je prétends qu'ils auraient une certaine utilité), ou même le point d'ironie. Mais on peut au moins composer « horizontalement », si j'ose dire, la ponctuation : c'est-à-dire, par exemple, si on en ressent l'utilité !, de faire suivre un point d'interrogation ou d'exclamation par une virgule, un deux-points ou un point-virgule, pour indiquer la nuance avec plus de précision : ce n'est pas autorisé par les règles traditionnelles de la typographie française, n'est-ce pas ?, et ce sont justement ces règles que j'invite à aller voir dans les toilettes si je m'y trouve. Dans des textes que j'écris pour moi-même, il m'arrive d'utiliser deux points-virgules de suite ou d'autres combinaisons un peu exotiques :: mais ce n'est pas aussi intuitivement compréhensible : donc je ne recommande pas forcément ;; par contre, les doubles parenthèses ont une certaine utilité, et se comprennent assez bien, pour marquer un aparté un peu long, typiquement un paragraphe entier. ⁂ Et finalement il n'y a aucune raison de ‹ne pas se servir de signes un peu rares ou un peu détournés›, tant que le lecteur peut facilement deviner que usage l'auteur en fait, ou {au moins !,} tant que ça ne gêne pas la compréhension.))

[#] La version de 1963 comportait les caractères 32=0x20 à 93=0x5d comme maintenant, donc avec uniquement des majuscules (les cases 96=0x60 à 123=0x7b étaient inutilisées, les dernières contenaient des caractères de contrôle supplémentaires), et à la place de l'accent circonflexe (^) et du souligné (_), en 94=0x5e et 95=0x5f, étaient une flèche vers le haut () et une vers la gauche ().

[#2] Barre verticale qui, dans ASCII, est indifféremment trouée au milieu ou pas. Alors que dans Latin-1 et donc dans Unicode il existe deux caractères différents de barre verticale : celle (|) qui n'est pas trouée (à l'emplacement ASCII, donc on est maintenant censé considérer que la barre en question n'est pas trouée), et celle (¦) qui l'est et qui très franchement ne sert absolument et rigoureusement à rien (on se demande vraiment comment elle s'est retrouvée là). C'est assez perturbant, parce que les claviers montrent souvent la barre verticale trouée pour le caractère ASCII : on se retrouve donc avec une touche représentant une barre verticale trouée et qui affiche une barre verticale non trouée.

[#3] Le backslash était prévu pour suivre ou précéder le slash pour former les signes logiques et (utilisés en ALGOL) comme /\ et \/ ; mais en fait, c'est le langage C qui a donné au backslash sont sens le plus commun en informatique actuellement, comme un échappement (il faut aussi signaler son usage dans MS-DOS pour remplacer le slash d'Unix parce que le slash était déjà pris comme séparateur d'options à l'imitation de VMS et CP/M). L'usage d'ASCII par le C est d'ailleurs un peu surprenant parce qu'il ne fait aucun usage des caractères $, @ ou ` et il fait un usage minimaliste du ~ (et très particulier du #) : c'est sans doute pour ça que le sens de ces derniers est beaucoup moins clairement établi que ceux qui servent en C.

(dimanche)

Petite histoire du « gras de tableau noir »

Puisque je parlais de notations mathématiques dans la dernière entrée, je vais raconter un autre petite histoire à ce sujet : celle de la police qu'on appelle le gras de tableau noir (enfin, je ne sais pas ce qu'on est censé dire en français : je sais juste que les lettres se disent double barre — c'est en anglais qu'on parle de blackboard bold).

Il s'agit des caractères qui ressemblent à ceci :

(en l'occurrence le Z double barre, qui désigne l'ensemble des entiers relatifs {…, −3, −2, −1, 0, 1, 2, 3, …}, et qui pour Unicode se nomme U+2124 DOUBLE-STRUCK CAPITAL Z, soit ℤ si vous avez donné des polices correctes à votre navigateur). Il s'agit d'une désignation maintenant assez standardisée pour les ensembles de nombres (les plus communs étant : ℕ soit N double barre pour les entiers naturels, ℤ soit Z double barre pour les entiers relatifs, ℚ soit Q double barre pour les rationnels, ℝ soit R double barre pour les nombres réels, ℂ soit C double barre pour les nombres complexes). Quelle est leur histoire ?

La désignation des ensembles de nombres était assez fluctuante jusque dans la première moitié du XXe siècle : l'utilisation du N pour les entiers naturels remonte au moins à Peano, celle du Z pour les entiers — sans doute comme initiale du mot allemand Zahl — est sans doute due à Landau dans ses Grundlagen der Analysis vers 1930 (mais l'écrivait en gothique fraktur, ℨ, avec une barre au-dessus), celle du R pour les réels a été faite par plusieurs personnes indépendamment (mais le R était aussi souvent utilisé au début du XXe pour désigner les rationnels).

C'est Bourbaki qui a fixé, à la fin des années '40, au moins les lettres suivantes : le N pour les entiers naturels, le Z pour les entiers relatifs, le Q pour les rationnels (qu'il semble avoir été le premier à introduire), le R pour les réels et C pour les complexes (ainsi que H pour les quaternions — par contre, il n'utilise pas O pour les octonions, et il est sans doute difficile d'attribuer à quelqu'un de précis une notation aussi évidente). Il semble que ces conventions se soient imposées très rapidement. Cependant, si Bourbaki a fixé les lettres, il utilise une police grasse normale pour les désigner.

L'histoire du « gras tableau noir » est complètement contenue dans son nom : pour simuler du gras au tableau noir, le plus simple est de doubler les traits. La façon dont cette habitude est passée du tableau noir au papier n'est pas évidente à retracer : il semble que le vecteur ait été les textes imprimés à la machine à écrire, où on graissait une lettre en la frappant deux fois légèrement décalée. (Le premier texte comme ça est peut-être le Lectures on Riemann Surfaces de Gunning, publié en 1966 à Princeton, Gunning lui-même ayant tiré cette idée de l'habitude prise dans le séminaire Kodaira-Spencer à Princeton au début des années '60 ; mais ce n'est pas sûr.)

Je ne sais pas non plus quel est le premier document imprimé de façon plus sérieuse qu'à la machine qui a eu ces caractères, mais il y a eu plusieurs styles de polices « gras tableau noir » dans TeX, essentiellement développées par l'AMS :

(msym10) est devenu (msbm10) vers 1991

(mais ce ne sont pas les seules formes possibles).

Ce qui est amusant, c'est que cette police est apparue par accident (du gras de Bourbaki au gras « tableau noir » en passant par le doublement des traits sur un vrai tableau noir et le doublement des caractères sur la machine à écrire), mais que c'est une invention vraiment géniale (et maintenant entérinée par son introduction dans Unicode) : alors qu'en maths on manque souvent de lettres et de symboles pour désigner les objets, voici une police complètement unique et très facilement reconnaissable pour désigner des objets uniques. Car il n'y a pas que les ensembles de nombres : le gras « tableau noir » semble servir généralement à désigner un objet mathématique qui n'est pas seulement particulier au problème, mais plus généralement bien reconnu dans l'ensemble de la branche des mathématiques où on se place, voire l'ensemble de toutes les mathématiques — en probabilités on utilisera 𝔼 soit E double barre pour l'espérance, en géométrie ℙ soit P double barre pour l'espace projectif, etc. (tiens, le μ double barre n'est pas dans Unicode : il faudra sans doute que je propose celui-là aussi — il sert à désigner le groupe des racines de l'unité).

Un peu de polémique maintenant : les membres de Bourbaki, notamment Serre, et un certain nombre de matheux français qui s'en sentent proches, n'aiment pas cette police et refusent de l'utiliser dans les textes imprimés, arguänt que Bourbaki avait choisi le gras, pas le doublement des barres. Je trouve que ce refus est une obstination d'orgueil bien malheureuse, car même si le gras « tableau noir » est le fruit du hasard, il est vraiment utile, et il a l'avantage de libérer le gras pour d'autres usages (par exemple pour désigner des catégories, des foncteurs, que sais-je encore) ; en tout cas, l'explication c'est un malentendu, le doublement des barres n'est qu'une façon de faire du gras au tableau noir ne vaut rien (on est conscient que c'est un malentendu, mais beaucoup d'inventions utiles sont nées d'une erreur, ce n'est pas une raison pour ne pas s'en servir !), pas plus que Bourbaki a choisi le gras (comme Landau a choisi la fraktur avec une barre dessus, mais on ne s'en sert plus). Heureusement, je crois qu'ils ont complètement perdu cette bataille (les notations pour les ensembles de nombres en « gras tableau noir » s'enseignent maintenant au collège/lycée, en France et dans beaucoup d'autres pays, et l'immense majorité des mathématiciens les considèrent maintenant comme acquises).

PS : Si quelqu'un veut bien faire à ma place l'effort de rendre un peu plus corrects les articles de Wikipédia (It is frequently claimed that the symbols were first introduced by the group of mathematicians known as Nicolas Bourbaki. There are several reasons to doubt this claim…), ce serait bien. L'ennui, c'est qu'il est à peu près impossible de donner une référence pour tout ce que je viens de raconter.

(vendredi)

Je propose un N-ARY RESTRICTED PRODUCT

Aujourd'hui j'ai fait une tentative pour augmenter mon karma geek : j'ai soumis un caractère à Unicode. Il s'agit d'un caractère qui ressemble à ça :

— c'est-à-dire une combinaison de ça : et ça :

Les deux symboles de droite existent déjà dans Unicode : il s'agit du symbole du produit de suites ou familles (U+220F N-ARY PRODUCT) ∏ (le glyphe est juste un grand pi majuscule) et du symbole du coproduit de suites ou familles (U+2210 N-ARY COPRODUCT) ∐ (le glyphe est le même mais inversé). Le symbole que j'ai proposé d'ajouter (et qui pourrait recevoir le nom de N-ARY RESTRICTED PRODUCT) a un glyphe dont la partie supérieure est celle du symbole du produit et la partie inférieure est celle du symbole du coproduit (donc le même à l'envers). Il dénote le produit restreint (toujours de suites ou familles) et apparaît en théorie des nombres — dans un contexte où le coproduit d'une famille infinie d'objets (qui, en général, est une opération duale du produit) serait le sous-ensemble du produit dont toutes les coordonnées sont nulles sauf un nombre fini, le produit restreint est intermédiaire entre le coproduit et le produit, il correspond au sous-ensemble du produit dont toutes les coordonnées sauf un nombre fini appartiennent à un sous-ensemble des facteurs compris implicitement ; cela apparaît par exemple, dans la définition de l'anneau des adèles ou du groupe des idèles d'un corps de nombres. Ce produit restreint est souvent noté ∏′ (pi-prime, quoi) par les auteurs qui n'aiment pas ou ne savent pas typographier le symbole ci-dessus, mais cette notation, proposée par John Tate, est occasionnellement utilisée, graphiquement élégante, et il me semble important de l'ajouter à Unicode.

Ça faisait longtemps que je pensais soumettre ce caractère (depuis un exposé au séminaire Variétés rationnelles, il y a un an, où il était apparu sous la craie de David Harari). Mais pour cela, il me fallait trouver des exemples de son utilisation : c'est là qu'était la difficulté, parce que pour convaincre que le symbole existe vraiment, il faut des exemples imprimés, or il sert surtout au tableau noir où ce n'est pas difficile de le faire et où le prime dans ∏′ (pi-prime) risquerait de ne pas être vu — alors que dans un texte imprimé, c'est le contraire, écrire ∏′ est plus facile (le symbole inventé par Tate, non seulement il n'est pas dans Unicode, mais il n'est pas non plus dans les jeux de macros LaTeX usuels). Je savais que je l'avais vu quelque part dans un livre, mais encore fallait-il retrouver où. Un ami m'a rapidement trouvé un spécimen dans Galois Cohomology de Serre, et ce n'est que récemment que je suis retombé sur un autre exemple que j'avais oublié, dans Algebraic Number Theory de Neukirch. Avec ces deux références (de deux auteurs différents et imprimées par un éditeur connu), je pense qu'il y a de bonnes chances que le caractère soit inséré : plutôt que m'adresser directement au working group, sur la suggestion d'un ami j'ai confié le combat à une experte en typographie mathématique qui m'a répondu que : the unicode technical committee has accepted the principle that math notation is open-ended, so they are receptive to well-documented submissions of new symbols. your informants are correct that, at present, i'm the "fast track" entry point to the system, and that will probably continue for several more years.

Nous allons donc maintenant voir combien de temps il faudra pour que ce caractère apparaisse dans une version ultérieure du standard. (Il ne faut jamais perdre espoir, avec Unicode : la première proposition d'encoder les hiéroglyphes date de 1999, maintenant c'est quasiment acquis, au moins pour la partie la plus basique, mais il faut encore attendre la sortie de la prochaine version, donc ça aura pris environ dix ans.)

[Mise à jour () : j'ai essayé de rassembler sur une page différents caractères dont je voudrais proposer l'addition à Unicode (voir une entrée ultérieure). Au fait, les hiéroglyphes basiques ont bien fini par arriver dans le standard.]

(jeudi)

Ἅπαξ λεγόμενα

Puisque ces caractères ont été introduits dans Unicode (qui devait avoir bu un peu trop de tsikoudia ce jour-là) pour écrire un seul texte, et que Google ne semble pas connaître le texte en question, le voici :

𐇑𐇛𐇜𐇐𐇡𐇽 𐇧𐇷𐇛 𐇬𐇼𐇖𐇽 𐇬𐇬𐇱 𐇑𐇛𐇓𐇷𐇰 𐇪𐇼𐇖𐇛 𐇪𐇻𐇗 𐇑𐇛𐇕𐇡□ 𐇮𐇩𐇲 𐇑𐇛𐇸𐇢𐇲 𐇐𐇸𐇷𐇖 𐇑𐇛𐇯𐇦𐇵𐇽 𐇶𐇚
𐇑𐇪𐇨𐇙𐇦𐇡 𐇫𐇐𐇽 𐇑𐇛𐇮𐇩𐇽 𐇑𐇛𐇪𐇪𐇲𐇴𐇤 𐇰𐇦 𐇑𐇛𐇮𐇩𐇽 𐇑𐇪𐇨𐇙𐇦𐇡 𐇫𐇐𐇽 𐇑𐇛𐇮𐇩𐇽 𐇑𐇛𐇪𐇝𐇯𐇡𐇪 𐇕𐇡𐇠𐇢 𐇮𐇩𐇛 𐇑𐇛𐇜𐇐 𐇦𐇢𐇲𐇽 𐇙𐇒𐇵 𐇑𐇛𐇪𐇪𐇲𐇴𐇤 𐇜𐇐 𐇙𐇒𐇵

𐇑𐇛𐇥𐇷𐇖 𐇪𐇼𐇖𐇲 𐇑𐇴𐇦𐇔𐇽 𐇥𐇨𐇪 𐇰𐇧𐇣𐇛 𐇟𐇦𐇡𐇺𐇽 𐇜𐇐𐇶𐇰 𐇞𐇖𐇜𐇐𐇡 𐇥𐇴𐇹𐇨 𐇖𐇧𐇷𐇲 𐇑𐇩𐇳𐇷 𐇪𐇨𐇵𐇐
𐇬𐇧𐇧𐇣𐇲 𐇟𐇝𐇡 𐇬𐇰𐇐 𐇕𐇲𐇯𐇶𐇰 𐇑𐇘𐇪𐇐 𐇬𐇳𐇖𐇗𐇽 𐇬𐇗𐇜 𐇬𐇼𐇖𐇽 𐇥𐇬𐇳𐇖𐇗𐇽 𐇪𐇱𐇦𐇨 𐇖𐇡𐇲 𐇖𐇼𐇖𐇽 𐇖𐇦𐇡𐇧 𐇥𐇬𐇳𐇖𐇗𐇽 𐇘𐇭𐇶𐇡𐇖 𐇑𐇕𐇲𐇦𐇖 𐇬𐇱𐇦𐇨 𐇼𐇖𐇽

Non, je ne sais pas plus que vous ce que ça peut vouloir dire, mais c'est certainement très profond. Si vous n'avez pas la police pour afficher les caractères en question, rassurez-vous, vous ne risquerez pas de les rencontrer trop souvent, et si vous les rencontrez ce sera forcément dans ce texte-là donc le fait d'avoir les caractères ne vous éclairerait pas beaucoup.

(Par contre, je remarque que la police que j'ai, moi, a un problème de directionnalité : les glyphes sont prévus pour une écriture de droite à gauche comme l'original alors qu'Unicode, dans son infinie sagesse assistée de tsikoudia, a décidé qu'il fallait inverser les glyphes et écrire de gauche à droite. Du coup, il m'affiche un truc subtilement inversé.)

(mardi)

Après les domaines .com et .net, accueillez les .测试

Je viens de remarquer l'apparition dans le DNS de toutes sortes de domaines (de premier niveau !) aux noms rigolos, avec lesquels l'ICANN fait joujou. Voici donc des URL qui nous changent de l'alphabet latin (et que tous les navigateurs ne sauront pas forcément afficher ou consulter correctement) :

Si vous vous demandez ce que ça veut dire, je crois que c'est pareil dans chaque langue et ça deviendrait en français quelque chose comme http://exemple.test/Page_principale ; mais bon, je ne parle pas le tourdebabel donc je me trompe peut-être.

(Par ailleurs, si Firefox vous affiche une adresse du genre http://xn--fsqu00a.xn--0zwm56d/%e9%a6%96%e9%a1%b5 quand vous suivez, disons, le premier lien, vous pouvez essayer de faire joujou avec les paramètres de configuration tels que network.enableIDN, network.IDN_show_punycode, network.standard-url.encode-utf8 et network.standard-url.escape-utf8 — dont les interactions sont certainement très subtiles. Vous pouvez aussi vérifier que copier-coller l'adresse dans la barre d'URL, avec ses caractères bizarres, vous amène au même endroit que de cliquer dessus.)

Il est amusant de voir que Google connaît déjà ces domaines et qu'on peut l'interroger à leur sujet. Par exemple, voici une recherche sur le domaine .テスト ; il comprend aussi si on lui donne le nom du domaine en punycode : la preuve. Par contre, on voit sur ce dernier exemple que l'affichage de la page des résultats Google n'est pas du tout prévue pour le cas où le nom de domaine se lit de droite à gauche ; d'ailleurs, je ne sais pas trop comment on est censé écrire les sous-domaines dans ce cas (je dirais quand même de gauche à droite, parce que le http, que Google omet à tort, se lit de gauche à droite).

Sinon, dernier petit gag à propos de Google : il permet de conster qu'il existe des sites Web dans le domaine .arpa (je pourrais moi-même y ajouter ma pierre en créant www.e.a.8.7.8.a.7.0.1.0.0.2.ip6.arpa, mais je ne le ferai pas parce que c'est Mal®).

(dimanche)

Un chouïa de linguistique

J'en suis à la leçon quatorze de ma ma tentative pour apprendre un peu d'arabe, et les paris sont encore ouverts pour savoir jusqu'où je tiendrai. Pour l'instant, la langue (ou peut-être devrais-je dire, la présentation qui m'en est faite) est juste assez tordue pour attirer mon intérêt de geek sans être assez difficile pour me faire abandonner. Disons que, par rapport au même nombre de leçons en japonais, les questions de grammaire et d'écriture[#] sont beaucoup plus envahissantes : j'ai donc dû voir, pour l'instant, un vocabulaire de trente mots environ, et les phrases (qui parlent toutes d'écrivains qui écrivent un livre avec un stylo ou de filles qui sont sorties de la maison et allées au nouveau marché) ne sont vraiment pas passionnantes ; en plus, tous les verbes sont à l'accompli (= au passé) et tous les mots sont au singulier. C'est amusant, mon père avait lui aussi, dans le temps, essayé d'apprendre l'arabe[#2] avec la méthode Assimil : mais c'était l'ancienne édition (en deux volumes, dont tout le texte arabe était écrit à la main), et l'approche pédagogique était visiblement très différente, on vous plongeait tout de suite dans un texte un peu compliqué (une annonce faite dans un avion) déployant à peu près tout l'alphabet, alors que la nouvelle édition commence par une leçon d'une seule phrase, longue de deux mots et utilisant cinq lettres différentes : كَتَبَ الْكَاتِبُ (l'écrivain a écrit).

Phonétique

La prononciation de l'arabe semble un tantinet plus dure, pour un Français, que celle du japonais. L'argument naïf serait de dire que c'est parce qu'il y a plus de phonèmes, mais c'est un peu trompeur : je me suis livré à l'exercice stupide de compter le nombre de phonèmes dans quelques langues (compte tout à fait incertain vu que la notion de phonème est mal définie) : j'ai trouvé très approximativement :

LangueConsonnesVoyellesTotal phonèmes
Japonais165 + 5 longues26
Français2111 + 4 nasales36
Arabe293 + 5 lg./dipht.37
Anglais US2412 + 3 dipht.39
Allemand2215 + 3 dipht.40
Anglais GB2411 + 8 dipht.43
Hindi3014 + 10 nasales54

Bref, si le japonais est bas, l'arabe n'est pas spécialement haut non plus. L'anglais US est plus bas que l'anglais GB notamment parce que la prononciation du ‘r’ fait que beaucoup de choses qui s'analysent en diphtongues en en-GB deviennent voyelle+[ɹ] en en-US : je ne suis pas sûr que ce soit vraiment une différence profonde ; sinon je suis surpris de voir l'allemand aussi haut, mais c'est vrai que quand on pense à la différence de prononciation entre bieten, bitten, beten, Betten, [wenn sie] bäten, boten, Botten, etc., il y a quand même des choses. Le hindi est très haut notamment à cause de la double distinction sonore/sourde et aspirée/non-aspirée sur les consonnes. Bref, ce dénombrement est dénué de sens (je ne sais même pas comment on compterait pour une langue à tons). Mais ce serait quand même intéressant pour un esprit pervers d'inventer une langue qui ait les consonnes de l'arabe multipliées par les grades du hindi, plus les voyelles de l'anglais, et les tons du chinois cantonais : comme ça, tout se dirait en une seule syllabe et personne ne se comprendrait au téléphone.

Pour revenir à l'arabe, ce qui est difficile pour un francophone/anglophone/germanophone/…, c'est l'utilisation du pharynx, qui sert à prononcer les quatre ou cinq consonnes dites emphatiques (et qui sont, en fait, pharyngalisées), la fricative pharyngale sourde [ħ] (notée par la lettre ḥaʾˌ : ح), et le fameux ʿayn (ع) qui est parfois décrit comme la variante sonore de cette dernière, [ʕ], mais qui, si j'en crois le Manuel de l'Association phonétique internationale (lequel a le bon goût d'avoir un chapitre consacré à l'arabe), n'est en fait jamais prononcé de la sorte mais plutôt comme un coup de glotte pharyngalisé [ʔˤ] (et apparemment certaines prononciations de l'arabe en font une épilaryngale [ʢ]) [#3]. Alors, pour ma part, j'ai fait suffisamment de phonétique pour savoir comment réaliser, disons, une fricative épilaryngale sonore, mais malheureusement, prononcer une langue ce n'est pas juste prononcer une par une des articulations pures, encore faut-il les enchaîner[#4], et je ne sais pas si ce que je fais pour l'arabe est très crédible.

Je suis aussi intrigué par l'habitude de noter l'arabe sans les voyelles (ça ressemble à une décision qu'aurait pris quelqu'un qui voulait s'assurer que personne n'aurait le droit de lire quoi que ce soit sans avoir d'abord passé un temps fou à étudier la langue). Si je comprends bien, ça a pour conséquence que, exactement au contraire du français qui fait à l'écrit la distinction dans la phrase tu est sorti[e] selon que la personne à qui on parle est un homme (auquel cas on écrit tu es sorti) ou une femme (tu es sortie), l'arabe fait cette distinction à l'oral uniquement, écrivant خرجت pour prononcer [xaraʒta] ou [xaraʒti] selon qu'on s'adresse à un homme ou une femme. Il ne doit pas y avoir beaucoup de cas, en français, où on fait des distinctions à l'oral et pas à l'écrit.

Grammaire

En revanche, pour la syntaxe et la structure grammaticale, on retrouve beaucoup de choses étonnamment communes avec les langues indo-européennes (ce qui donne une certaine crédibilité à la thèse d'une origine commune des familles indo-européenne et sémitique). Par exemple, la notion de verbe, de nom et d'adjectif, avec un apparentement des adjectifs aux noms : tout ceci n'a rien de naturel[#5], d'ailleurs en japonais les adjectifs sont (au moins pour ceux en -い) nettement plus apparentés aux verbes qu'aux noms[#6], et d'autres langues ne marquent pas nettement (ou pas du tout ?) ces catégories grammaticales. Ou encore le fait de faire varier le verbe avec son sujet (ce qui n'est pas plus logique qu'avec son objet), et de différentier les cas nominatif et direct (= accusatif) plutôt que, par exemple, absolutif et ergatif. Encore plus frappante comme ressemblance entre les langues indo-européennes et les langues sémitiques est l'existence des trois nombres : singulier, duel et pluriel ; le duel a apparemment mieux survécu en arabe que dans la famille indo-européenne où il a essentiellement disparu des langues modernes (à part pour les pédants comme moi qui seraient capables de dire au cours d'un exposé de maths and now, combine this lemma with the previous two lemmate: the three lemmata, together, allow us to finish the proof), mais déjà la distinction singulier/pluriel n'a rien de vraiment naturel et, de nouveau, elle n'existe pas en japonais. On pourrait dire quelque chose de semblable du genre des mots.

Du coup, pour ce qui est du dépaysement sapirwhorfien, l'arabe n'est pas aussi bon que je l'espérais.

Informatique

Par contre, pour ce qui est de faire le kéké avec Unicode, l'arabe est parfait. C'est un excellent test des polices vectorielles parce que les lettres changent de forme selon les lettres voisines (et font même quelques ligatures, quoique nettement moins que dans les langues brahmiques) et qu'en plus si on écrit les voyelles ça fait plein de caractères combinants qui doivent être correctement placés. Il y a plusieurs polices vectorielles libres qui s'en sortent plus ou moins bien, mais la seule qui a l'air de tout faire parfaitement est la police Scheherazade — elle ne fera pas de calligraphie sophistiquée mais elle ressemble comme deux gouttes d'eau — peut-être pas par hasard — à la police qui a servi à écrire l'Assimil dans lequel j'apprends (en plus ça m'a permis d'entendre parler des excellentes polices qu'offre le SIL — sur une Debianoïde faire apt-cache search ttf-sil et faire son choix).

L'écriture de la droite vers la gauche est perturbante sur un ordinateur : tout le monde est d'accord que la touche backspace doit effacer le caractère précédant le curseur (donc à droite si on écrit de droite à gauche) et delete le caractère suivant, mais que doivent faire les touches flèche gauche et flèche droite ? Parmi les logiciels que j'ai essayés, yudit (un éditeur pour texte Unicode pur, dont j'apprécie les méthodes d'entrée) a choisi, comme tout ce qui est basé sur GTK+, de faire que la flèche gauche aille effectivement vers la gauche et la flèche droite vers la droite — c'est plus simple à comprendre, mais ça veut dire que si on mélange des langues de directionalité contraire on va faire des sauts bizarres dans l'ordre logique du texte si on garde la flèche droite appuyée — alors qu'OpenOffice.org a choisi que la flèche vers la droite aille toujours en avant dans le texte, quitte à ce que le curseur fasse des bonds bizarres si on mélange des langues de directionalité contraire. Je suis curieux de savoir quels logiciels connus ont fait quels choix en la matière (et, d'ailleurs, lequel est le moins pénible à programmer). Il est aussi perturbant de voir le sens des parenthèses s'inverser (l'idée étant que les caractères ‘(’ et ‘)’ sont toujours des parenthèses ouvrante et fermante, mais dont l'apparence visuelle sera inversée dans un contexte droite-vers-gauche).


Notes

[#] La comparaison est faussée, cependant, du fait que l'Assimil japonais relègue l'apprentissage des kanji (= idéogrammes chinois) à un volume séparé dont l'étude est largement indépendante — l'idée étant de permettre à ceux qui le souhaitent d'apprendre le japonais uniquement parlé. Ça n'a sans doute pas beaucoup de sens de dire que, pour le débutant, le-japonais-avec-des-kana-au-dessus-de-chaque-kanji est apparemment plus facile que l'arabe-avec-toutes-les-voyelles-écrites, mézenfin, c'est l'impression que j'ai. ☺

[#2] Ma mère n'a cesse de se moquer de lui à ce sujet parce qu'un jour, il y a fort longtemps en Algérie, mon père a essayé de commander en arabe deux thés à la menthe sans sucre, le serveur a eu l'air estomaqué, a fait répéter, et a finalement apporté… deux cafés sucrés.

[#3] Si ces termes vous semblent chinois (ou arabes…), voyez notamment la page sur l'alphabet phonétique que j'avais commencée — et jamais finie — il y a assez longtemps. Les pharyngales s'articulent en rapprochant l'arrière de la langue de la cavité du pharynx, soit comme point d'articulation primaire (pour une pharyngale proprement dite) soit comme point d'articulation secondaire (pour une pharyngalisée) ; ce n'est pas très difficile à réaliser si on s'efforce d'utiliser la base de la langue pour obstruer partiellement le passage de l'air sans s'approcher du palais (on doit pouvoir voir la luette dans un miroir) : la position de la langue est à peu près celle de la voyelle [ɑ] (du français pâte, correctement prononcé, ou de l'anglais britannique laugh). Les épilaryngales, elles, s'articulent en rapprochant le pli aryépiglottique de l'épiglotte : ça c'est plus difficile à expliquer (déjà, voyez cette image et ce manuel pour l'emplacement des différentes parties du pharynx) ; il faut essayer d'obstruer partiellement le passage de l'air sans utiliser la langue et sans non plus donner un coup de glotte. (Moi je trouve que ça ressemble un peu à un râle d'agonisant, alors que les pharyngales font plutôt vomissement — désolé pour la poésie.) Il paraît que la langue aghul, parlée au sud du Daghestan, a l'idée complètement saugrenue de faire une distinction phonémique entre pharyngales et épilaryngales : donc, rappelez-moi de ne jamais essayer d'apprendre l'aghul. Enfin, les laryngales, c'est beaucoup plus facile ; d'ailleurs, si vous savez prononcer l'allemand, il y a un coup de glotte (c'est-à-dire une occlusive laryngale, [ʔ]) au début de chaque mot commençant par une voyelle (prononcez Deutschland ʔüber ʔalles et vous vous en rendrez bien compte), et en anglais comme dans beaucoup de langues il y a une fricative laryngale [h].

[#4] Pour dire le chat (أَلْقِطُّ), [alqitˤtˤu] il faut enchaîner une occlusive uvulaire sourde [q] et une occlusive dentale pharyngalisée et géminée [tˤtˤ] : ce n'est pas parce que je sais ce qu'il faut faire que j'y arrive (pour un francophone, c'est très casse-gueule).

[#5] Du point de vue sémantique, il est évident qu'il y aura des mots d'une langue qui désigneront une action (qui prendront éventuellement des compléments indiquant l'agent et le subissant de l'action) et d'autres une chose concrète (qui prennent typiquement moins de compléments), mais il n'y a pas de raison que cette distinction se traduise par une différentiation de catégories grammaticales (pas plus qu'on n'a besoin de catégories grammaticales distinctes pour distinguer les mots désignant des choses concrètes et ceux désignant des concepts abstraits). D'ailleurs, la distinction verbe/nom ne recouvre même pas cette distinction sémantique : si je dis brillante victoire des Romains sur les Carthaginois, le contenu sémantique du mot victoire est le même que ont vaincu dans les Romains ont brillamment vaincu les Carthaginois (pareil, forte pluie sur la campagne par rapport à il pleut fort sur la campagne), et le mode nominal ou verbal a plutôt pour fonction de déterminer l'aspect de l'énoncé (positif/déclaratif ou absolu/infinitif) que pour faire varier le sens du noyau de l'énoncé en question. Tout ça pour dire que la distinction verbe/nom n'a rien d'obligatoire (parmi mes nombreux projets inachevés, il y a celui de créer une langue qui éviterait complètement cette distinction tout en ayant une grammaire extrêmement régulière).

[#6] En japonais, pour mettre au passé une phrase comme l'arbre est grand (quelque chose comme 木は高いです), on met au passé l'adjectif grand (高い高かった). Pour un cours très geek-friendly (i.e., qui en souligne la logique) de la grammaire japonaise, je recommande le résumé de Tae Kim.

(jeudi)

Merci XeTeX !

Voilà, j'ai produit une jolie nouvelle version PDF, grâce à XeTeX, de mes fragments littéraires gratuits. Je suis très satisfait du résultat (comme de la facilité avec laquelle j'y suis arrivé). Comme police de caractères, sur les conseils d'un ami, j'ai utilisé Linux Libertine, une police libre puisant apparemment d'inspirations telles que Garamond, Bembo et Baskerville (voire Perpetua), donc avec un style assez marqué mais pas du tout déplacé pour un livre imprimé, et qui a le bon goût de contenir une agréable variété de caractères Unicode (mais pour les caractères chinois et le tengwar, j'utilise d'autres polices).

J'avais un peu cessé d'en écrire pour ne pas avoir à faire toutes les contorsions nécessaires pour faire fonctionner Lamed depuis ma dernière mise à jour qui l'avait cassé. Maintenant que les choses sont rentrées dans l'ordre et se sont même améliorées, je vais pouvoir m'y remettre.

(mardi)

TeX + Unicode → Omega, Aleph, XeTeX, LuaTeX ?

Comme les lecteurs réguliers de ce blog le savent bien, il m'arrive d'écrire des petits textes littéraires que j'appelle fragments littéraires gratuits. Et comme n'importe qui ayant lu quelques-uns d'entre eux l'aura forcément remarqué, je me gargarise prends un plaisir tout particulier à faire usage de courtes citations dans toutes sortes de langues — et en particulier dans toutes sortes d'alphabets non latins. (Je vois ça comme un hommage d'écrivain à la multiplicité des formes d'écriture inventés par l'Homme : que ceux qui ne savent pas lire cinquante langues se rassurent, moi non plus, et ce n'est jamais nécessaire pour comprendre le fragment.) Tant qu'il s'agit de faire de mes fragments littéraires une page HTML (lien ci-dessus), pas de difficulté : en HTML on peut librement utiliser le jeu de caractères universel Unicode, qui contient tous les alphabets dont j'ai envie (et bien d'autres), sauf le tengwar mais même pour ça on s'en sort en utilisant une région à usage privé — et c'est le boulot du navigateur qui est en face d'arriver à transformer le HTML que j'écris en quelque chose d'affichable à l'écran (notamment, c'est au lecteur qu'il appartient d'avoir les bonnes polices).

L'ennui, c'est que je veux aussi en générer (et si possible : de façon complètement automatisée) une version PDF, c'est-à-dire déjà mise en page et prête à l'impression, avec une typographie décente (voire, de qualité), avec une table des matières et tout et tout ; demander à un navigateur Web de faire le travail de mise en page (en imprimant vers du PDF) fournit, quel que soit le navigateur utilisé, un truc inacceptable.

Pour mettre en page de jolis documents, la solution — malheureusement fort archaïque — qui semble encore la meilleure, c'est (La)TeX (le logiciel de mise en page universellement utilisé, notamment, dans le monde de l'édition mathématique). Hélas, TeX a été conçu bien des années avant qu'Unicode ne dissipe par sa lumière bienfaisante les ténèbres de la confusion qui régnaient sur le monde des jeux de caractères, et par conséquent il ne connaît rien de tout ça. Et il n'est vraiment pas prévu pour les écritures allant de droite à gauche. Bien entendu, des polices et des jeux de macros (packages) LaTeX ont été créés pour taper du russe, du japonais, du grec, et même du sanskrit, de l'arabe, de l'hébreu et encore quantité d'autres langues (dont, d'ailleurs, les hiéroglyphes égyptiens — qui ne sont pas dans Unicode et ne sont hélas pas près d'y entrer). Mais ces packages se mélangent mal entre eux et il ne faut pas espérer pouvoir faire facilement un document mélangeant toutes ces langues : or c'est précisément ce que j'ai envie de faire.

Heureusement, tout de même, le monde de TeX n'a pas l'intention de rester indéfiniment privé de la clarté d'Unicode. Il y a plusieurs projets (naturellement subtilement semblables et pourtant profondément incompatibles) qui prétendent enrichir TeX, soit en adaptant le moteur sous-jacent soit en lui ajoutant toute une couche de macros, pour le rendre plus « Unicode-aware ». Parmi ces projets, il y a Omega, ou plutôt, Aleph (c'est en gros la même chose, disons qu'Omega est plus ou moins mort et Aleph a rassemblé les morceaux pour faire quelque chose de vaguement utilisable), ce que j'utilisais jusqu'à présent (actuellement, voici la version PDF de mes fragments). L'idée en est fort intéressante et séduisante, puisqu'il s'agit de rajouter à TeX tout un système d'automates finis qu'on peut empiler et qui font le travail de conversion des différentes formes d'Unicode entre elles ou de création des ligatures, ou de tout ce qu'on voudra ; malheureusement, le système n'est quasiment pas documenté donc excessivement difficile à utiliser, il s'interface assez mal avec les packages LaTeX tels que Babel (d'ailleurs, depuis une mise à jour récente de ma distribution TeX ça a tout simplement cessé de marcher) et il a l'air un peu (seulement un peu ?) à l'abandon.

Plus récemment, un autre projet est apparu qui semble à la fois plus simple (quoique moins puissant sur certains plans) et donc plus utilisable : il s'agit de XeTeX (le nom tend à rappeler qu'il sait écrire de droite à gauche). À la différence de TeX et Omega/Aleph, XeTeX prend le parti d'utiliser le même mécanisme de polices vectorielles qui est maintenant quasi universel en informatique : les polices TrueType (qui, elles aussi, sont bien postérieures à la conception de TeX et de son mécanisme de polices génériques pré-rastérisées, Metafont). C'est plutôt une bonne chose, parce qu'on a d'excellentes polices TrueType couvrant de larges régions d'Unicode. On m'a suggéré d'utiliser XeTeX plutôt qu'Aleph pour mettre en page mes fragments littéraires gratuits, et c'est ce que je vais faire.

Pour l'instant j'ai fait un essai (source ici) qui est assez concluant[#] : je ne sais pas faire correctement les ligatures requises par les langues indiennes, mais comme je n'ai pas encore cité de sanskrit ou de tamoul dans mes fragments ce n'est pas grave dans l'immédiat.

Ceci dit, si on en croit les nouvelles qui nous proviennent du futur, l'avenir de TeX devrait résider dans un moteur appelé LuaTeX, successeur de l'actuel PDFTeX, qui incorporerait également les extensions d'Aleph en rajoutant aux automates finis la possibilité d'interface avec le langage de programmation Lua : il ne reprendrait pas la suite de XeTeX mais devrait être capable de réaliser les fonctionnalités de celui-ci. Bon, ça c'est ce qu'on nous promet : je ne sais pas pour quand ce sera (if ever) ; en attendant cette merveille, XeTeX a l'air de ne pas être mal.

[#] J'attire notamment l'attention sur la citation en hébreu (ונפקחו עיניכם והייתם כאלהים), qui a été coupée correctement sur deux lignes, c'est-à-dire avec le début (ונפקחו עיניכם והייתם) sur une ligne, évidemment écrit de droite à gauche, et le dernier mot (כאלהים) sur la ligne suivante. Il ne suffit évidemment pas d'inverser l'ordre des caractères et de les écrire de gauche à droite, pour mettre correctement en page de l'hébreu (à l'intérieur d'un texte français) !

(jeudi)

J'apprends à écrire

Aujourd'hui, j'ai débuté un cours d'égyptien hiéroglyphique. (Il est vrai que c'est désespérément banal d'apprendre l'égyptien hiéroglyphique : le sumérien, ou le maya, au moins, ce serait un peu original, pour rester dans la catégorie des langues mortes à l'écriture pénible, et dont la grammaire est au moins aussi intéressante et riche, mais bon, je m'efforce d'apprendre des choses simples et utiles.) Le prof est intéressant (même s'il a un peu tendance à digresser). Aujourd'hui il nous a surtout résumé l'histoire de l'Égypte ancienne et de son langage et donné quelques rudiments sur l'écriture (surtout les signes phonétiques unilitères), et nous avons appris à écrire, par exemple, Anubis (enfin, Jnpw ou quelque chose de ce goût-là) en hiéroglyphes. L'ennui, c'est que comme c'est bien de l'écriture hiéroglyphique et pas hiératique qu'il s'agit, prendre des notes est un peu difficile ; il nous dit qu'il faut que nous nous formions une véritable écriture et que nous ne fassions pas des dessins, mais j'ai du mal à écrire, par exemple, un percnoptère (le hiéroglyphe représentant un son dont la valeur n'est d'ailleurs pas claire). Faire des tables grammaticales risque d'être un petit peu pénible.

Vivement que les hiéroglyphes (au moins les plus simples) soient dans Unicode ! Ce qui, malheureusement, n'est pas trop près d'arriver, malgré la proposition (à mes yeux ignares tout à fait bien convaincante) faite par le phénoménal Michael Everson. Comme une des choses qui font que la question n'avance pas est le manque d'égyptologues pour évaluer les problèmes (et notamment juger la proposition en question), je vais sans doute aborder le prof qui nous fait le cours pour lui demander s'il connaît des gens qui seraient prêts à se mettre en contact avec le consortium Unicode.

(vendredi)

Unicode Power

On m'a offert un énorme poster qui représente l'intégralité des caractères du plan 0 d'Unicode (4.0.1) ! C'est vraiment impressionnant à regarder, et surtout on se dit que le chinois prend de la place (surtout quand on pense qu'il y a encore beaucoup plus de caractères chinois dans le plan 2).

Bon, maintenant je me demande où je vais bien pouvoir afficher ça.

Voyez aussi ce site Web.

(jeudi)

J−1

Bon, normalement mon exposé est au point (c'est-à-dire autant qu'il le sera), j'ai fait une répétition hier où je ne m'en suis pas trop mal sorti, mes transparents sont nuls mais il faudra faire avec. J'ai récupéré le dossier de soutenance au service de la scolarité (une enveloppe scellée que je dois remettre au président du jury — je me demande bien ce qu'il y a dedans[#]), j'ai récupéré les exemplaires imprimés de mon mémoire (où j'ai consciencieusement inséré une feuille d'errata) et j'en ai distribué quelques-uns. Ma mère a confirmé pour le pot (cinquante personnes). Bref : tout est prêt, et j'en suis à m'ennuyer en attendant que le temps passe.

Je serai le premier de l'année 2005 à soutenir une thèse de maths à Orsay (ben oui, les thèses se font par saison — à cause de deadlines administratives débiles —, et je suis complètement hors-saison, là). Ah, et, je me demande si tout le monde arrivera à tenir dans la salle où a lieu la soutenance

J'espère par ailleurs que l'administration n'aura pas la bêtise de me chercher des ennuis parce que sur les papiers officiels j'ai indiqué mon sujet comme étant

Hypersurfaces cubiques: équivalence rationnelle, R-équivalence, et approximation faible

alors que sur le mémoire c'est

Hypersurfaces cubiques: R-équivalence, équivalence rationnelle et approximation faible

J'ai moyennement envie de soutenir une deuxième fois sur le même sujet en permutant deux termes.

Bon, pour parler d'autre chose que de ma thèse, voici quelques pointeurs Web. Je viens de jeter un coup d'œil aux images de la dernière édition de l'IRTC, c'est-à-dire janvier-février 2005, sur le thème Out of place, et je dois dire que les lauréats sont excellents : à la fois techniquement réussis, esthétiquement intéressants, et drôles ; je conseille donc de regarder ça (de façon générale les images de l'IRTC méritent l'attention, mais cette fournée me semble vraiment bien, sans doute parce que le sujet était propice à l'inspiration). Je viens aussi de découvrir un poisson d'avril qui fera rire tous ceux qui connaissent Boing Boing : Boring Boring (A Directory of Dull Things).

Je viens aussi de découvrir un passage de la toute nouvelle version (4.1.0) du standard Unicode (béni-soit-son-nom) qui m'a fait hurler de rire :

@		Gender symbols
26A2	DOUBLED FEMALE SIGN
	= lesbianism
26A3	DOUBLED MALE SIGN
	* a glyph variant has the two circles on the same line
	= male homosexuality
26A4	INTERLOCKED FEMALE AND MALE SIGN
	* a glyph variant has the two circles on the same line
	= bisexuality
26A5	MALE AND FEMALE SIGN
	= transgendered sexuality
	= hermaphrodite (in entomology)
26A6	MALE WITH STROKE SIGN
	= transgendered sexuality
26A7	MALE WITH STROKE AND MALE AND FEMALE SIGN
	= transgendered sexuality
26A8	VERTICAL MALE WITH STROKE SIGN
	= ferrous iron sulphate (alchemy and older chemistry)
26A9	HORIZONTAL MALE WITH STROKE SIGN
	= magnesium (alchemy and older chemistry)
@		Circles
26AA	MEDIUM WHITE CIRCLE
	= asexuality, sexless, genderless
	= engaged, betrothed
	* base for male or female sign
26AB	MEDIUM BLACK CIRCLE
	* UI symbol for record function
26AC	MEDIUM SMALL WHITE CIRCLE
	= engaged, betrothed (genealogy)
	* can represent wedding ring
@		Genealogical symbols
26AD	MARRIAGE SYMBOL
	x (infinity - 221E)
26AE	DIVORCE SYMBOL
	x (infinity negated with vertical bar - 29DE)
26AF	UNMARRIED PARTNERSHIP SYMBOL
	x (double-ended multimap - 29DF)
26B0	COFFIN
	= buried (genealogy)
	x (white rectangle - 25AD)
26B1	FUNERAL URN
	= cremated (genealogy)

À quand la marche des fiertés lesbienne, gaie, bi, trans, hermaphrodite, sulfate ferreux et magnésium ? À part ça, je trouve amusant de voir le Saint Standard donner dans le politiquement correct ; ils n'ont toujours pas ajouté, d'ailleurs, le svastika dans les symboles divers (alors qu'il y a plein de croix religieuses, il y a le symbole marteau-et-faucille, le symbole peace-and-love, yin-et-yang, et plein d'autres choses de ce genre, même, très récemment, la fleur-de-lis), je me demande si c'est parce qu'ils ont peur des réactions ou simplement parce que personne n'a fait de proposition formelle. Ah, et, par ailleurs, faudrait que je me dévoue pour faire une proposition qui se tienne pour ajouter les smileys dans Unicode (je veux dire, le « répertoire standard », c'est-à-dire les smileys qu'on retrouve en commun dans énormément de systèmes de communication électronique, ceux qui servent vraiment à transmettre des informations et pas à faire de l'ASCII-art).

[#] En fait, je soupçonne quand même que ce sont les rapports. Mais comme mes rapporteurs font de toute manière partie de mon jury de soutenance, ça n'a pas énormément de sens de me donner sous enveloppe scellée à leur remettre une copie des rapports qu'ils ont eux-mêmes écrit. Et je crois qu'après la soutenance j'aurai le droit de les voir, les rapports en question.

(jeudi)

J'ai fait des folies

J'avoue, j'ai craqué : comme mon ami Gaëtan a acheté le domaine ‽.com (prononcez interrobang[#] point com, et si votre browser ne supporte pas l'IDN essayez xn--fwg.com), j'ai fait à mon tour une folie, après un saut sur Domain Discount 24 (ils ont l'air plutôt pas mal comme registrar) je suis devenu pour quelques dizaines d'euros le détenteur de ⁂.com (prononcez astérisme point com, et si votre browser ne supporte pas l'IDN essayez xn--kwg.com).

Bon, pour l'instant, il n'y a rien à voir ; je ne suis même pas sûr d'avoir configuré le DNS correctement (ça fait très longtemps que j'ai appris ça, comme j'ai pondu les zone files en cinq minutes j'ai probablement fait une erreur stupide) et de toute façon les fichiers de zone ne sont pas encore mis à jour. Peut-être qu'à terme je mettrai vraiment quelque chose à cet endroit (le déplacement définitif de ce site, qui sait ?). Bien sûr, comme l'IDN n'est pas près d'être parfaitement géré partout, je me contenterai probablement de dire que l'adresse est xn--kwg.com et peu de gens sauront ce que ça veut dire. Pas même moi, d'ailleurs, parce que je n'ai aucune idée[#2] de ce que c'est qu'un(e?) astérisme, à part trois astérisques en triangle.

C'est ça qui est merveilleux avec Unicode, le nombre de caractères absolument bizarres qui ne servent à rien et dont personne n'a la moindre idée comment ils sont arrivés là. J'avoue avoir hésité entre ASTERISM et SOFTWARE-FUNCTION SYMBOL notamment. Et dire qu'il y a des gens sur la mailing-list Unicode en ce moment qui discutent de comment limiter les IDN à un sous-ensemble de caractères correspondant aux alphabets de langues effectivement utilisées, pour éviter des risques de confusion — mais ils veulent retirer tout ce qui est intéressant, ces idiots !

[#] Il y a pourtant d'autres fans de l'interrobang sur le Web, on dirait ‽ Tiens, il faudra que je parle mon projet de virgules d'interrogation et d'exclamation, un jour. 😝

[#2] Bon, d'accord, c'est un terme d'astronomie pour désigner un motif d'étoiles très reconnaissable (comme la ceinture d'Orion, le ‘W’ de Cassiopée ou la casserole de la grande Ourse) à l'intérieur d'une constellation — ce n'est pas plus mal vu que je donne à mes ordinateurs des noms astronomiques. Mais je parle du symbole ‘⁂’ lui-même.

(Thursday)

Internationalized Domain Names

I thought it was still a project, but apparently it “already works”: I refer to Internationalized Domain Names (as defined by RFC 3490), or the possibility of inserting (almost arbitrary) Unicode characters in Internet domain names—that is, one can now buy not only domains with names such as myname.com but also those like мояфамилия.com; the way it works, really, is that when any IDN-compliant program encounters a domain name like мояфамилия.com, it transforms it into something cryptic like xn--80aqalcbm2c2fg.com (the encoding is an extremely complicated one, known as Punycode, which is described in RFC 3492) and then handles it as if the user had typed exactly that. So basically we could say that the Internet domain name registrars have found they could sell such absurd domain names as xn--80aqalcbm2c2fg.com by telling you that it really means мояфамилия.com and by persuading the authors of Web browsers and whatnots to perform the conversion. Ingenious.

All this means, of course, that people will abuse the system in every possible way. One question is whether character normalization prescribed by RFC 3454 (another unmanageably complicated specification) will actually be performed or whether it will turn out to be possible to register domain names such as goo<zero-width unbreakable space>gle.com or other idiotic things. Someone has already pointed out that it is possible to register paypal.com with a cyrillic ‘а’ instead of the second ‘a’, in other words paypаl.com, which really means xn--paypl-7ve.com (here, Mozilla is being overzealous: I actually write this as a link to http://www.xn--paypl-7ve.com/ and it displays it as a link to http://www.paypаl.com/; this would be acceptable behavior if I had written http://www.payp&#x430;l.com/—in HTML—or http://www.payp%D0%B0l.com/, but this is really going too far). IE, as usual, is saved by not adhering to standards. Ha, ha, ha.

Conversely, there may be rules about not registering domains of a single character, but what if someone wishes to register xn--2sx.com, literally? Well, it's been done already, it seems.

(mardi)

Avec quoi je perds mon temps…

Quand je ne regarde pas les immeubles se construire, j'ai d'autres façons de perdre mon temps. J'ai encore fait joujou avec Unicode en rassemblant un certain nombre de grandes traductions classiques des versets 7 et 8 du chapitre 11 de la Genèse[#] — d'aucuns s'amuseront sans doute à relever la fascination, bizarre pour un athée, que j'ai pour la Bible.

Dans un tout autre registre, j'ai programmé un jeu de Testris. Si vous ne connaissez pas Testris, il s'agit d'une variante de Tétris où l'ordinateur, plutôt que de tirer aléatoirement la pièce qui va tomber, essaie d'emmerder exprès le joueur en lui fournissant la pièce (ou une des pièces) qui l'arrange le moins. Comme ça, le sentiment paranoïaque qu'on a tous en jouant à Tétris (mais quand est-ce qu'il va me donner une barre ?) est enfin justifié. J'ai aussi écrit un jeu de Pentris, c'est-à-dire comme Tétris mais avec des pièces qui font cinq petits carrés au lieu de quatre, et c'est encore pire que Testris, en fait : toutes les pièces ont une forme À La Con® qui est gênante dans à peu près toutes les circonstances possibles. Enfin voilà, ceux qui ont un système Unix avec Gtk+2 installé peuvent essayer ces petits joujoux, les explications sont dans le source lui-même, et, comme c'est dit, c'est dans le Domaine Public si vous voulez en faire quelque chose.

Pendant tout ce temps, évidemment, je ne fais pas les choses que je devrais faire. J'ai plein de petites questions de maths sur lesquelles il faut que je réfléchisse, je vais bientôt avoir un sujet d'agreg blanc à corriger, j'ai des courses et du ménage à faire… Vive la procrastination ! Tiens, un de mes rapporteurs de thèse s'est réveillé, il m'a envoyé quelques pages de commentaires, mais ce ne sont pratiquement que des fautes d'orthographe ou de style à corriger : j'ose espérer que ça veut dire qu'il n'a pas trouvé d'erreur plus profonde que ça ! Si on en est à me dire que j'aurais dû écrire non-trivialité et pas non trivialité, c'est sans doute que le fond est parfait. ☺

[#] J'ai d'ailleurs commis un péché (véniel) : l'utilisation (pour écrire le passage dans l'ancien alphabet hébreu, c'est-à-dire essentiellement l'alphabet phénicien) de caractères Unicode qui ont été approuvés par le Working Group mais qui ne sont pas encore officiellement partie du Standard. Il faudra donc encore un petit moment avant qu'on puisse espérer commencer à pouvoir lire (sur un browser quelconque) le premier passage de la page en question. Ça me donne envie, d'ailleurs, d'écrire un texte qui s'appellerait State of the Unicode Address où je dresserais le bilan de là où en est pour un certain nombre de problèmes ou de décisions politiques, ainsi que l'état des scripts que tout le monde attend (qui a dit hiéroglyphes ?). Récemment, par exemple, quelqu'un m'a demandé si les caractères elfiques (de Tolkien) étaient dans Unicode : la réponse est, comme trop souvent hélas : non, pas pour l'instant.

(lundi)

Vieux slavon, alphabet cyrillique, et Unicode

Un de mes amis (que je ne dénoncerai pas — appelons-le mystérieusement R… — mais que tous ceux qui le connaissent auront reconnu), qui est au moins autant que moi passionné par Unicode et par les langages bizarres ou confidentiels, s'est pointé avant-hier soir (lors de la petite soirée où nous célébrions le nouvel an) avec une grammaire du slavon liturgique. Le slavon est la langue d'où le russe moderne dérive ; il a été fixé par écrit (ainsi que les alphabets cyrillique et glagolitique à cet effet — on ne sait pas quel est le rapport précis entre eux) dans la traduction de la bible des fameux moines (frères) Cyrille et Méthode qui ont évangélisé la Russie à la fin du IXe siècle. Du « vieux » slavon est dérivé à la fois le slavon liturgique de l'église orthodoxe et le russe moderne ainsi que, essentiellement, les autres langues slaves.

Le russe moderne est déjà une langue fort difficile (pour les non-Russes) à cause de la complexité de son système morphologique (par exemple, des huit cas de l'indo-européen primitif, six sont en usage vivant : nominatif, accusatif, génitif, datif, instrumental et locatif — seuls l'ablatif et le vocatif ont été perdus). Le slavon, il est à craindre, est encore plus compliqué (mais pas démesurément non plus : à titre d'exemple, il n'y a qu'un cas de plus qu'en russe moderne, le vocatif, qui n'est pas terriblement dur à former ; la conjugaison des verbes, cependant, est plus délicate car il existe de vrais temps du passé alors que le russe moderne n'a gardé qu'une sorte de participe utilisé comme passé ; et l'existence en slavon d'un duel à côté du singulier et du pluriel complique aussi la morphologie). Cependant, il n'est pas complètement incompréhensible par quelqu'un qui connaît le russe (à titre d'exemple, de même qu'avec mes vagues rudiments d'italien et ce que je sais de latin j'arrive à déchiffrer quelques mots de Dante, de même, en ayant fait un peu de russe et en ayant des notions de grec ancien — notamment de quoi lire l'original du nouveau testament — je repère bien des formes claires dans le texte slavon de la bible). Et on peut espérer qu'en retrouvant l'origine étymologique de certaines bizarreries du russe le langage apparaîtra comme plus clair et pas moins. Quoi qu'il en soit, si j'ai le temps, je regarderai d'un peu plus près à quoi tout cela ressemble. Il existe un cours de vieux slavon en ligne.

Une chose qui frappe en premier abord, en tout cas, est la multiplicité des signes. L'alphabet cyrillique moderne a trente-trois lettres (si on distingue le ‘Ё’ du ‘Е’, comme je tiens à le faire, même si quasiment tous les textes russes imprimés ou manuscrits de nos jours omettent les deux points sur la lettre quand elle est prononcée ‘o’[#]) ; avant la réforme d'orthographe de 1917, il en avait quelques-unes de plus, notamment ‘І’ (remplacé partout par ‘И’ — causant notamment la fusion[#2] des mots міръ, le monde, et миръ, la paix, ceci dit ces mots sont de toute façon de même origine) et ‘Ѣ’ (remplacé partout par ‘Е’ — causant notamment la fusion des mots ѣсть, manger, et есть, il y a), et il y avait nettement plus de ‘Ъ’ (signes durs) que maintenant. Cet alphabet russe provenait lui-même d'une réforme (ou, en fait, plusieurs réformes successives) effectuée(s) par Pierre le Grand pour transformer l'alphabet du slavon liturgique en un véritable alphabet à usage civil. Car le slavon a un nombre assez considérable de lettres : R et moi n'avons pas réussi à en savoir le nombre précis car les grammaires se contredisent assez quant à la question de savoir ce qui est ou n'est pas la même lettre, et d'ailleurs la langue elle-même est parfois un peu floue (même si l'orthographe en slavon liturgique est rigoureusement fixée, il n'est pas toujours clair ce qui est une lettre différente et ce qui est une simple variante de position, et il n'est pas non plus clair ce qui est une ligature entre deux lettres et ce qui est une lettre à part entière), et il y a eu des changements au passage entre le vieux slavon (écrit en glagolitique ou dans la forme la plus ancienne de l'alphabet cyrillique) et le slavon liturgique figé (disons, vers le XVIIe siècle). Toute cette histoire est racontée de façon très claire (au moins autant que possible vue la complexité de l'affaire) et très intéressante dans ce texte sur l'encodage de l'ancien alphabet cyrillique en TeX et en Unicode. Les relations entre les lettres (surtout les voyelles) sont très compliquées. Par exemple, le ‘Я’ du russe moderne dérive, à l'époque de Pierre, à la fois du petit yus (‘Ѧ’, qui lui a à peu près donné sa forme) et du a yodifié (environ ‘ІА’) ligaturé (malheureusement non codé séparément dans Unicode) — et même du petit yus yodifié (‘Ѩ’) ligaturé — ces signes étant distincts mais très fortement liés dans l'écriture du slavon. De même, le nombre de lettres du slavon prononcées approximativement ‘(i)é’, entre le ‘Є’ (à ne pas confondre avec le ‘Э’ récent, qui est une invention de l'époque de Pierre), le ‘Е’ (en slavon liturgique — peut-être une simple variante d'écriture de la lettre précédente, mais peut-être pas), le ‘Ѥ’ (version yodifiée-ligaturée de ‘Є’), le ‘Ѣ’ (qui a survécu jusqu'en 1917) et même le ‘Ь’ (qui est maintenant un signe mou, mais qui à l'époque du vieux slavon était une véritable voyelle), cela fait beaucoup. J'aimerais bien arriver à me faire une idée un peu plus précise de toutes ces évolutions (notamment concernant les yus petit et grand, les yer dur et doux, et le yat, qui sont vraiment les signes distinctifs du cyrillique).

Je me demande si, dans le catalogue des objets inutiles et bizarres que je possède, je ne vais pas rajouter une édition de la bible en slavon. En attendant, pour ceux qui veulent voir à quoi ça ressemble, voici un échantillon (la première ligne, par exemple, accents omis, donne : И вѣ всѧ зємлѧ ѹстнѣ єдинѣ, и гласъ єдинъ всѣмъ.).

[#] Cela donne des choses assez cocasses. Par exemple, le dirigeant de l'URSS de 1953 à 1964, (Никита Сергеевич) Хрущёв, est appelé Khrouchtchev en français (Khrushchev en anglais) et la manière dont on lit ce nom n'a à peu près aucun rapport avec la prononciation russe d'origine, à commencer par le fait que la voyelle finale, transcrite en ‘e’, est un ‘o’ (et il porte l'accent tonique alors que les Anglais le mettent sur la première syllabe).

[#2] Autre chose cocasse : il paraît que le titre d'un célèbre roman de Tolstoï s'écrit Война и Міръ, c'est-à-dire La Guerre et le Monde et pas Guerre et Paix comme ce serait si ça s'écrivait avec un ‘И’, même si, évidemment, le jeu de mot est volontaire. Rectification (2005-05-20) : c'est probablement faux.

(Saturday)

All human beings… in Babel

More Unicode fun: here is the first article of the Universal Declaration of Human Rights, probably one of the most translated pieces of text ever, in a number of languages. The High Commissioner's Web site, where I got the texts, has the full declaration in vastly more languages, but, unfortunately, in many cases—especially the most interesting cases as far as Unicode is concerned—, we are given either a PDF file or an image scan of a printed version. This site also displays the article in question (using Unicode) in a great number of languages, but somtimes differs from the High Commissioner's text (for example for Thai or Vietnamese).

The Thai language gave me some trouble, because the source text is badly printed and badly scanned and the Thai script is pretty complex. I solved the problem by typing not the article itself, but the declaration's title (it's shorter and printed bigger, so that was much easier), and then searching for that in Google until I found a page which contained the text I was looking for (a secondary problem is that Thai doesn't seem too keen on word breaks).

The Yi syllables were even worse: at first I thought I could do the typing myself, but even for a mere thirty-six characters, the effort of visually pattern matching each tiny symbol from the source text against Unicode's array of over one thousand syllables was too much for me. And to make matters worse, Google refuses to search for Yi text—fortunately, though, AllTheWeb will do it. And I was lucky to find what is probably the only sample of Unicode-encoded Yi text fragment on the Web: the Yi version of Wikipedia, with a single page on it, and a single sentence on that page, namely, the sentence I was trying to encode! Still, doubt remains, because two of the glyphs do not match what I decipher on the text from the High Commissioner's Web site (the Wiki page says ꊿꂷꃅꃧꆘꐥ, ꌅꅍꀂꏽꐯꒈꃅꐥꌐ. ꊿꊇꉪꍆꌋꆀꁨꉌꑌꐥ, ꄷꀋꁨꂛꂰꅫꃀꃅꐥꄡꑟ. and I believe I read ꊿꂷꃅꃧꐨꐥ, ꌅꅍꀂꏽꐯꒈꃅꐥꌐ. ꊿꊇꉪꍆꌋꆀꁨꉌꑌꐥ, ꄷꀋꁨꂛꊨꅫꃀꃅꐥꄡꑟ. on the printed text—of course, it's all Yi to me); I have no idea whether the author of the Wiki page is fluent in Yi and obviously got it right, or is just another geek like me with a little more patience for matching glyphs against a table. Well, there's perhaps one chance out of two that I got the Yi text right. But I know at least of one potential reader of this blog who might be able to help me.

I'm disappointed that the High Commissioner did not provide a Cherokee version of the declaration. True, far fewer people speak Cherokee than Yi, but there's a much more developed Cherokee Wikipedia (ᏫᎩᏇᏗᏯ) than the Yi version: it has a whopping twenty-eight articles.

One last comment concerns the Armenian script. I find that alphabet amazing, not only for its intrinsic beauty, but also because it dazzles me in a strange way: it looks vaguely like the Latin script, except of course that I can't make heads or tails of it (to me it looks something like: fununu uwunnnh uqunulu wqwnu—and so on), so it's kind of tantalizing, much like the Voynich manuscript defies imagination.

הבה נרדה ונבלה שם שפתם אשר לא ישמעו איש שפת רעהו

Many thanks to Φ for pointing out to me the existence of the Code2000 font, which is remarkably complete (before this I didn't have any font to display Yi syllables or Cherokee). Even though I dislike shareware, I believe I'll send this guy (I mean, the font's author) a check. Combine with Yudit for best results.

(Friday)

A Unicode-obfuscated programming language proposal

I'm feeling geeky today, so here's a very geeky post.

People have invented vast repertoires of obfuscated programming languages (one of my favorite is Shakespeare), but none, so far, seems to make use of Unicode's great resources for obfuscation (except perhaps, with a remarkable amount of foresight, the infamous APL). So here are a few suggestions for a language that I think someone (but not me!) should have the patience to implement. Let's call it Юᓂ곧⎔ (U+042E CYRILLIC CAPITAL LETTER YU / U+14C2 CANADIAN SYLLABICS NI / U+ACE7 HANGUL SYLLABLE GOD / U+2394 SOFTWARE-FUNCTION SYMBOL) so (1) nobody will know how to pronounce it (except simply Unicode, which is confusing), (2) nobody will have the fonts to write it properly because nobody ever has a Canadian unified aboriginal syllabics font and a Hangul font and a font with this strange SOFTWARE-FUNCTION SYMBOL (even Microsoft's supposedly all-inclusive Arial Unicode font does not recognize that symbol), (3) it says NI and GOD at once, (4) it's another of these obnoxious names which includes symbols (like Divx;-)), and (5) I'm sure nobody has ever used that particular combination of Unicode characters before me (and Google agrees, of course).

Now most programming languages up to quite recently had the rule that only ASCII characters are allowed in source code (they will give you some stupid error like illegal character if you try). Юᓂ곧⎔, on the contrary, does not allow ASCII characters in source files (except for line feed). For example, instead of using the * (U+002A ASTERISK) character to denote multiplication as is done in C, one uses × (U+00D7 MULTIPLICATION SIGN). And of course, one does not write digits with the usual “European/Arabic” digits (they are in ASCII), rather, one uses Mongolian digits, so, for example, the Юᓂ곧⎔ code to store the product of 42 and 1729 in the temporary variable 無 would be: 無 ← ᠔᠒×᠑᠗᠒᠙।. More generally, here are the basic syntax rules of Юᓂ곧⎔:

We conclude with the example of the usual Hello, world! program written in Юᓂ곧⎔:

⌂ «»

  писать «“⁌☱☱☰⁍⁌☱☴☵⁍⁌☱☵☴⁍⁌☱☵☴⁍⁌☱☵☷⁍⁌☰☵☴⁍⁌☰☴☰⁍⁌☱☶☷⁍⁌☱☵☷⁍⁌☱☶☲⁍⁌☱☵☴⁍⁌☱☴☴⁍⁌☰☴☱⁍␊”»।

(Monday)

How many strokes on the dollar sign?

A very important question for all of us professional hair-splitters out here: how many vertical strokes are there on a dollar sign (‘$’)? Unfortunately, this question admits no definite answer, since apparently both the single-stroke and double-stroke variants are equally correct. Nobody knows for sure what the origin of the symbol is: the most common theories seem to be that it is initially a deformed handwritten version of a ‘p’ with a superscript ‘s’ used as an abreviation of the plural “pesos”, or else that it comes from an ‘S’ with a superimposed ‘U’ (as a kind of monogram of the United States); if we believe one or the other, the single-stroke or double-stroke variant may be more correct—but it could be that both these theories are wrong (perhaps the symbol simply originates from an accounting sign like there were many at some time). I have checked typographic specimens of various typefaces, and the single-stroke version seems more common, but the double-stroke one is used in (at least certain modern versions of) Baskerville (regular but not semibold), Bembo, Caslon and Plantin; all “modern” typefaces, from Times to Stone (through Futura, Optima, Perpetua and Frutiger) use a double stroke, so it is probably safe to say that typographers have made their choice in favor of the single stroke. Also, the Unicode's standard display sample uses a single stroke (but this isn't very significant: they just took a standard Times font for such characters).

One could also ask how many horizontal strokes the pound sign (‘£’) is supposed to have (I refer to the real “pound sign”, not to the number sign, ‘#’ which some Americans confusingly call the pound sign, and which undoubtedly has two horizontal strokes and two vertical ones). I have no answer as to that, but the symbol of the yen (‘¥’) typically has two strokes, even though Unicode says: glyph may have one or two crossbars. There are always two bars on the symbol of the euro (‘€’)—however, the latter is not properly speaking a symbol, it is a logotype (in the sense that its design is fixed and defined by the European Union, it should not depend on the font). Speaking of currency sumbols, there is in ISO Latin-1 a symbol, ‘¤’, which is “CURRENCY SYMBOL” in Unicode, and also known (still according to the Unicode standard) as Filzlaus or Ricardi-Sonne (“Ricardi sun”? what the hell is that?), and I have no idea what it stands for or how it got there; it is sometimes confused with the euro sign, because the ridiculous Latin-9 encoding (which looks confusedly much like Latin-1) replaced the one with the other, and some fonts or systems fsck up between the two. I tend to use that strange ¤ sign as the symbol of the zorkmid which has gone into hacker jargon in phrases such as do not pass go, do not collect two hundred zorkmids.

Maybe some other time I'll speak about the ampersand (‘&’), which is originally a handwritten form of “et”, or the at sign (‘@’), which comes from “ad”, or again the slash sign (‘/’), which is properly called a solidus (that's what Unicode calls it) or virgule (another confusing name, because in French it refers to a comma). Or about that number sign (‘#’) which goes by so many different names (the most ridiculous being “shibboleth”). Read more about all this in the Jargon file.

(vendredi)

L'arnaque des SMS

L'envoi d'un SMS depuis mon mobile, d'après la brochure officielle des prix de mon opérateur, coûte 0.15€. Sachant qu'un SMS peut comporter jusqu'à 160 caractères (limitation complètement ridicule s'il en est), cela nous donne un prix de 1006633€ pour un giga-octet. Un million d'euros le giga-octet ! Comparez ça au prix au giga-octet d'à peu près n'importe quel autre canal de communication ou support de stockage : c'est une arnaque absolument monstrueuse.

Je ne sais pas comment est comprimé le son sur les téléphones mobiles, mais je doute très fortement qu'on soit en-dessous de 1kbps (ce qui représenterait déjà un rapport de compression de plus de 50 par rapport au son échantillonné à 8kHz en mono, 8 bits par échantillon). Autrement dit, une minute de communication, facturée 0.48€ par le même opérateur, échange au minimum l'équivalent d'une cinquantaine de SMS, quasiment un par seconde. Mais les prix sont loin d'être dans le même rapport, la minute ne coûtant que le triple du prix du SMS. Comme je doute que le service vocal soit vendu à prix coûtant, cela signifie qu'au moins 90% du prix du SMS (et ceci est une borne inférieure très large) est du pur profit pour l'opérateur. Pas surprenant, ensuite, qu'on cherche à promouvoir le SMS comme un mode de communication djeunz et branchouille. Hallucinante arnaque.

Question subsidiaire : le manuel de mon téléphone parle de caractères Unicode pour désigner les caractères accentués qu'on peut mettre dans les SMS. Il s'agit cependant d'un jeu très restreint de caractères, ne couvrant même pas tout iso-latin-1 et assurément pas une proportion non ridicule d'Unicode. Cependant, il n'est pas clair si c'est parce que le téléphone juste ne permet de saisir qu'un ensemble très limité de caractères (et peut-être ne sait afficher qu'eux) ou si le « standard » SMS est intrinsèquement limité. La mention d'Unicode me laisserait espérer qu'ils ont pris la bonne décision, à savoir encoder les SMS en Unicode (disons utf-8 ou utf-16 — dans ce dernier cas il faudrait diviser par deux mon estimation du prix au giga-octet, d'ailleurs ; mais je crois que c'est bien 160 octets d'utf-8, en fait). Est-ce le cas ? J'aimerais bien pouvoir tester la réception d'un SMS contenant des caractères un peu exotiques pour savoir ce que mon téléphone en fait. Comment ces choses-là se passent-elles au Japon, d'ailleurs, par exemple ?

(dimanche) · Premier Quartier

Yudit

[English translation follows.] J'avais déjà essayé ce petit éditeur, mais c'était il y a longtemps, et j'avais complètement oublié son existence. Un ami vient de me le rappeler à l'esprit. En tant qu'éditeur proprement dit, Yudit est assez minable, mais il a quelque chose qu'à peu près aucun autre n'a : un support considérable pour Unicode, et là je n'en connais pas d'aussi bon, donc je tiens à propager l'information.

[Traduction anglaise de ci-dessus.] I had aleady tried this little editor, but it was a long time ago, and I had completely forgotten its existence. A friend just reminded it to me. As an editor proper, Yudit is rather bad, but it has something that almost no other editor has: extensive Unicode support, and since I know nothing better, I wish to pass on the information.

(Tuesday) · Autumnal Equinox (2003-09-23T10:46:44.54Z)

The Unicode standard, version 4.0

I have just received from Amazon.com my copy of the Unicode standard, version 4.0. For those who do not know what this is, the Unicode standard is, in a nutshell, a computer standard that seeks to provide a uniform encoding (computer representation) for all human scripts, past and present—an infinite job, of course, that will never be complete, but which is nevertheless proceeding at its own pace. Unicode is what permits any well-conceived computer file format, for example any HTML page, to contain characters, even mixed, from an incredible variety of alphabets and scripts; you can test your system's Unicode conformance (browser and scripts) by viewing this Unicode test page, which gives a small sample of Unicode from a few different scripts, together with images of what they should look like. Before Unicode, it was certainly possible to write an HTML page, say, in Japanese, or in Hindi, but it was impossible to write one that contained both Japanese and Hindi (in the same file).

But this Standard, and, beyond the standard itself, the 1500-pages printed form of the standard—the book I just bought—is truly amazing. This is a book about Writing (with a capital ‘W’), a beautiful one, and, turning its pages, one discovers many an elegant and artistic script, whose very existence had sometimes gone unsuspected (I had certainly never heard of Shavian until I learned about it from Unicode; actually, I hadn't even heard of Yi either, which is less forgivable). Have you ever beheld the strange serpent-like signs of Syriac? The graceful curves of Gujarati? The strange loops of Georgian? The treelike glyphs of Ethiopic? The deceptively simple Cherokee? The mysterious pictures of Linear B ? If not, you should have a look at the Standard (all of whose pages can be found in PDF format on the Unicode Web site).

The Unicode standard is one of Man's dreams: one standard to rule all scripts. It is also an endless pursuit: version 3.0 of the Standard (which I had also bought in printed form) already contained 27496 Chinese ideograms (simplified and unsimplified alike), and version 3.1 added another 42711 to these, making a total of 70207—probably the single largest collection of Chinese ideograms ever compiled, more than any dictionary ever published, or any collection of printer's glyphs; and rest assured that more ideograms will yet be found and added to the Standard.

But there are also important omissions in Unicode. The largest and most remarkable one is probably that of Egyptian hieroglyphic: it will certainly take years of work before a decent repertoire of glyphs for Egyptian can be added to the standard, even as a start. (I look forward to the day when I can quote the Book of the Dead in the original in my Web pages—and have it display correctly everywhere!) Unicode guru Michael Everson has written a very interesting note, Leaks in the Unicode Pipeline: Script, Script, Script…, on some of the scripts that remain to be encoded and how difficult it will be to include them someday. Well, good luck with this heroic task!

(Monday)

Adding a favicon

無Maybe you can now see a little icon appear somehow associated with my Web pages in your Web browser (Mozilla, for one, should display it next to the URL in the location bar, and on tab thumbnails): to the left is a slightly larger version of it. Since Asa Dotzler says he recommends Web sites to have some favicon, I decided I might as well try. I don't really like this thing, though: for one thing, sixteen-by-sixteen pixels is too small for any useful image, and besides I'm supposed to use some obscure Microsoft-invented image format that apparently doesn't even support full alpha channels (only all-or-nothing transparency, so I'm not putting any transparency, because the alias effect would be awful). Not having any idea what I could use as icon, I decided to take this Chinese ideogram (U+7121 in Unicode: 無; this is actually the unsimplified, or Taiwanese, form), pronounced “wu” in Mandarin Chinese and “mu” in Japanese, which has an important association with Zen buddhism. It just means something like “no” or “nothing”, which is probably appropriate since I couldn't think of anything else to put up there.

(Sunday)

Smileys

I find that I really can't live without these lil' guys 😉. But while I use them all the time in plain text, on an HTML file it doesn't do to write something like “:-)” for a happy smiley. Up to now I used the great and mighty Unicode, but Unicode only has U+2639 WHITE FROWNING FACE and U+363A WHITE SMILING FACE as smileys go, which is a bit meager ☹ (anyone care to submit to the Unicode/ISO-10646 Joint Technical Committee a repertoire of a couple thousand smileys that they might insert in Unicode plane 3 or 4? after all, with all the useless junk that goes in Unicode, a couple thousand smileys won't matter much, and they put all the 易經 hexagrams, which may be only 64 in number, but it's a kind of precedent). Besides, not everyone has the font to display even those characters, and some may just see a box instead (here is a WHITE SMILING FACE between quotes: “☺”).

So I did what everyone does, I got a bunch of smiley images (from PHPbb) and I'll be using them. ☺

And, yes, I'll be really careful not to overuse them. I hate smiley excess just as much as the next man: they can get really distracting. But this entry is an exception, because it's precisely the point. 😁

Since I found them with PHPbb, these smileys (which are Copyright © their legitimate Copyright owner) are covered, as far as I know, free: you can redistribute them and/or modify them under the terms of the GNU General Public License; they are distributed in the hope that they will be useful, but without any warranty, without even the implied warranty of representing my emotions at the time of writing. 😝