June 2009

Logo
Chaque semaine, je publie une liste de liens vers des billets de blog, des articles et des annonces qui me semblent intéressants et en rapport avec l’activité d’AF83. N’hésitez pas à proposez vos liens. Voici la sélection de cette semaine :
Annonces

    Logo atelier
    Dans la tradition des ateliers du lundi, nous avons fait une petite présentation de Google Wave. Vous pouvez en consulter les slides ci-après. Bien-sûr, il ne s'agit encore que d'une rapide présentation n'ayant pas encore eu accès à la beta de google Wave.

    Logo
    Chaque semaine, je publie une liste de liens vers des billets de blog, des articles et des annonces qui me semblent intéressants et en rapport avec l’activité d’AF83. N’hésitez pas à proposez vos liens. Voici la sélection de cette semaine :
    Campagne Microsoft

    Logo
    Chaque semaine, je publie une liste de liens vers des billets de blog, des articles et des annonces qui me semblent intéressants et en rapport avec l’activité d’AF83. N’hésitez pas à proposez vos liens. Voici la sélection de cette semaine :
    Navigateurs

      Si comme nous vous utilisez régulièrement trac, vous savez qu'il a un comportement un peu déroutant lorsqu'on insère des documents (PDFs, images, ...) en pièce jointe d'une page, ou encore d'un ticket : chaque fichier a ainsi sa propre page qui ne permet généralement que peu d'actions comme le supprimer, ou comme on s'y attend... le consulter.

      Nous utilisons régulièrement des doses conséquentes de javascript sur nos sites, et nous voyons souvent revenir les mêmes deux ou trois erreurs quand nous testons ce javascript avec Internet Explorer 6. Voici la liste des erreurs classiques qui méritent d'être vérifier systématiquement quand un javascript bloque sous IE6 :

      1. La virgule en trop en fin de liste
      Souvent, quand on écrit un objet javascript avec plusieurs attributs et que cela commence à prendre de la place, il est courant de le mettre sur plusieurs lignes, comme ceci :

      1. new Ajax.Updater(this.tabBar.area, t.action, {
      2. method: t.method,
      3. parameters: t.serialize(),
      4. onSuccess: this.onSuccessCallback,
      5. onComplete: this.onCompleteCallback,
      6. });

      En soi, écrire l'objet sur plusieurs n'est pas un problème, mais il est alors tentant de mettre une virgule à la fin de chaque ligne, notamment la dernière. Normalement, cela ne devrait pas poser de problème, c'est une syntaxe valide en javascript. Pourtant, cela provoque une erreur avec IE6. Il suffit de retirer la dernière virgule pour la corriger.

      2. Les annotations
      Nous commentons souvent notre code avec du JsDoc. Nous avons donc des mot-clés qui commencent par un @, comme @returns, @param ou @see. Quand le commentaire est court, nous le mettons en fin de ligne :

      1. document.observe("dom:change", this.onDomInserted.bind(this)); //@todo really efficient?

      Si par malheur, le mot clé est placé juste derrière // sans espace entre les deux, IE va provoquer une erreur assez difficile à debugger. En fait, cela active les commentaires conditionnels. Pour corriger, il suffit de rajouter une espace entre // et @.

      Enfin, je recommande de passer son code à JsLint pour vérifier toutes les sources d'erreurs potentielles. Cela encourage à écrire du code propre et diminue de façon notable les risques de bugs.

      Logo
      Chaque semaine, je publie une liste de liens vers des billets de blog, des articles et des annonces qui me semblent intéressants et en rapport avec l’activité d’AF83. N’hésitez pas à proposez vos liens. Voici la sélection de ces dernières semaines :
      Conditions d'utilisation

        Because the same expression can be translated in a lot of different ways, Drupal 7 now supports nice and shiny translation contexts.

        Based on the industrial standard GNU Gettext, those contexts will allow translation teams to make better translations, especially of the short strings that are so numerous in the Drupal code base. For example, it was not possible previously to translate differently the 'View' tab and a 'View' of the Views module.

        In Drupal 6 and below, translation contexts were already hacked in one place, the long month names:

        1. #: modules/locale/locale.module:0
        2. msgid "!long-month-name June"
        3. msgstr ""

        In Drupal 7, that '!long-month-name' is now a proper context:

        1. #: /drupal-core/admin/settings/regional-settings
        2. msgid "June"
        3. msgctxt "Long month name"
        4. msgstr ""

        Translation contexts will prove to be a power tool, as soon as we use it consistently across the code base. At this time, most strings are in the default context. We need your help to add proper contexts to every string that needs them. Those include menu links, menu tabs, module names, etc. For each of those, Drupal core will need to define a convention that contributed modules can follow.

        Combined with other recent changes, like the new Regional settings screen, translation context contributes to make Drupal 7, and its localized versions, even more awesome.