lundi, septembre 25 2006

Un peu de javascript sur mailman

Mailman est un outil bien connu pour gérer les listes de discussion. Son interface web pour la modération des messages est un brin... simpliste, pas du tout accessible. Bref, ne pas tirer sur l'ambulance, ceci dit, ce n'est pas le pied quand vous avez une centaine de clics à faire pour supprimer les spams.

Neo avait déjà donné une astuce pour automatiquement sélectionner Discard pour tous les messages (il est préférable que cette case soit cochée car 99% de nos messages à modérer sont du spam). En fait, il s'agit d'un scriptlet. Enregistré en tant que bookmark, le code Javascript sera exécuté sur la page en cours. Voici le code proposé par Neo :

javascript:var el=document.forms[0].elements;for (var i=0; i<el.length;i++) if(el[i].type=='radio' && el[i].value==3) void(el[i].checked=true);

En gros, il va regarder tous les éléments du premier formulaire de la page. Il cochera automatiquement chaque bouton radio dont la valeur est 3... donc le bouton Discard.

Je viens d'installer spamassassin sur le serveur et je cherche à récupérer les spams qui ont passé au travers de son filet sur mon adresse pour éduquer spamassassin. Pour cela, je dois cliquer sur une case à cocher et remplir un champ texte avec mon adresse email... toujours chiant si j'ai cent fois à le saisir et à cliquer. L'informatique, c'est fait pour vous débarasser des tâches ingrates. Alors hop, un nouveau petit coup de javascript. Voici le HTML en question :

<tr>
  <td COLSPAN="2"><INPUT name="senderforward-rccqfl%40monspam.com" type="CHECKBOX" value="1" >&nbsp;Forward messages (individually) to:</td>
</tr>
<tr>
  <td COLSPAN="2"><INPUT name="senderforwardto-rccqfl%40monspam.com" type="TEXT" value="maliste@monorganisation.org" size="40" ></td>
</tr>

Il faut donc cliquer automatiquement sur la case à cocher dont le nom commence par sendforward et modifier la valeur du champ dont le nom commence par sendforwardto. Heureusement, JavaScript accepte les expressions rationnelles. Voici le code javascript qui fait tout le boulot (sur plusieurs lignes pour que ce soit lisible) :

javascript:var el=document.forms[0].elements;
var retx = new RegExp('@monorganisation.org');
var reck = new RegExp('senderforward');
for (var i=0; i<el.length;i++)
{
  if(el[i].type=='radio' && el[i].value==3)
    void(el[i].checked=true);
  if(el[i].type=='text' && el[i].value.match(retx))
    void(el[i].value='spam@monorganisation.org');
  if(el[i].type=='checkbox' && el[i].name.match(reck))
    void(el[i].checked=true)
};

C'est certainement un peu crade mais ça fonctionne tout bien... encore du temps de gagné :)

samedi, mai 20 2006

Une excellente astuce

Désolé, pas eu le temps de blogguer cette semaine. Rentré tard mardi soir, conseil d'administration pour traduc.org mercredi soir, tennis jeudi, rentré encore plus tard vendredi soir... dur. Et le planning du week-end va être chargé : fin de la trad pour le site pgadmin.org, test d'une JVM libre pour la génération du PDF de PostgreSQL, export calc pour phpPgAdmin, administration sur le serveur traduc.org... et au moins trois séances de ciné :)

Bref, je ne voulais pas parler de ceci ce soir mais d'une excellente astuce que je viens de trouver sur le blog de Chris Illas. Tous mes bookmarks importants sont sur une barre d'outils spéciale : la barre d'outils des marques-pages. Malheureusement, il arrive qu'elle soit pleine et que je doive encore en rajouter. Du coup, j'ai le mini-menu qui me permet d'aller repêcher les derniers. Une simple modification de votre userChrome.css vous permet de créer une barre d'outils multilignes. Arrêtez votre Firefox, ajoutez ceci :

#bookmarks-ptf {display:block !important;}
#bookmarks-ptf toolbarseparator {display:inline !important;}

Et redémarrez votre Firefox. Cool, non ? :)

mardi, décembre 21 2004

Format des onglets dans Firefox

Il y a des choses tout bêtes qui simplifient vraiment la vie. Par exemple, il est possible d'appeller un onglet par son numéro (touche Alt plus le numéro de l'onglet, sympa non ?). Seulement, arrivé au cinquième, j'ai un peu de mal à savoir son numéro sans devoir les compter. À ce niveau là, je vais plus vite à attraper ma souris et à cliquer sur l'onglet. Il faudrait que le numéro de l'onglet soit affiché. Heureusement, le site boxofchocolates.ca vient à notre secours avec quelques css et quelques images bien placées.

J'ai aussi un peu tendance à ouvrir quantité d'onglets, à un point que je finis par ne plus savoir sur lesquels je suis passé... Il faudrait donc un moyen de connaître l'état de l'onglet (un peu comme les liens visités ou non). Heureusement, Cheah Chu Yeow explique la solution dans ce billet. Il propose même une extension pour une installation plus simple.

Et comme un bonheur ne vient jamais seul, il commence à neiger ce matin :-D

vendredi, décembre 3 2004

Dernière chance pour tester Thunderbird avant sa sortie officielle

Thunderbird est sorti hier en version 1.0-RC1. Une version française est aussi disponible. Pas de nouveautés pour cette RC mais des corrections de bogues et une mise à jour des icônes (bien plus belles, au moins en ce qui concerne les flux RSS...).

De plus, Nvu est sorti en version 0.6.

J'en profite aussi pour donner une adresse pour les personnes souhaitant récupérer des extensions en français : http://smilissimo.free.fr/. Elles n'y sont évidemment pas toutes mais j'ai été impressionné par le nombre d'extensions traduites.

mercredi, décembre 1 2004

XMLRPC, XUL et développement web

Discussion passionnante ce soir avec KrysKool sur le canal IRC #postgresqlfr (serveur irc.freenode.net). KrysKool m'a expliqué rapidement ce qu'est XMLRPC et en quoi ce protocole est intéressant pour les applications écrites en XUL. Très, très intéressant. Il faut absolument que je trouve un peu de temps pour m'y mettre. Voici les quelques liens cités pendant la discussion :

  • Xul Runtime Environment ;
  • XMLRPC, toujours hébergé sur mozilla.org (vous trouverez notamment deux liens vers des pages générées par doxygen) ;
  • MozBlog, une extension représentant parfaitement l'utilisation de XMLRPC (car elle utilise l'API XMLRPC des blogs pour effectuer quelques opérations... consultation de billets, écriture, etc.).

Tant que j'en suis à discuter développement web, je tiens à signaler la sortie de la version 0.9 de l'extension Web Developper. Cette extension existe aussi en français. J'ai testé cette dernière, elle est très bien réalisée même si la traduction ne m'a pas aidé à trouver les nouvelles fonctionnalités. Parmi celles-ci, j'aime beaucoup la possibilité de désactiver les feuilles de style une par une, la possibilité de sélectionner une feuille de style par rapport à son média (affichage écran, impression, portable). J'aime aussi beaucoup la possibilité de sélectionner un élément sur une feuille pour connaître son style et son chemin dans le document : le curseur se transforme en croix et la barre de statut indique l'élément sur lequel se trouve le curseur. Simple mais efficace.

mardi, novembre 9 2004

Sortie de Firefox-1.0

Je l'attendais depuis longtemps. La version officielle est de plus disponible en français. Pour vous faciliter le travail, voici les trois liens de téléchargements de la version française :

Bon téléchargement ;-)

Quant à moi, le téléchargement vient de se terminer, je cours l'installer.

vendredi, octobre 22 2004

Bientôt votre nom dans le journal...

Enfin, surtout dans le New-York Times :)

lundi, octobre 11 2004

Bookmarklet pour mailman admin

neo nous a filé un petit code javascript pour passer tous les boutons d'options de cette interface sur « discard ». Donc, je propose quatre bookmarklets pour positionner tous les boutons radio sur :

Pour les installer, ajoutez un marque-page à partir du lien grâce au clic droit. Évidemment, le plus intéressant est malheureusement « Discard ». Je n'ai pas encire trouvé pour la validation mais je cherche :-)

jeudi, octobre 7 2004

Aide en ligne de Firefox, nouveautés sur les dernières « nightly builds »

Auparavant, l'aide en ligne de Firefox se trouvait sur texturizer.net. Elle fait maintenant officiellement partie du site mozilla.org : http://www.mozilla.org/products/firefox/support/. J'en ai profité pour y jeter de nouveau un oeil. Je ne connaissais pas le raccourci souris Alt+roulette. Si vous avez suivi différentes pages, vous pouvez revenir en arrière grâce à Alt+roulette en sens arrière. Si vous voulez retourner en avant, faites le contraire : Alt-roulette en sens avant. Simple mais efficace.

J'ai aussi regardé les nouvelles versions de Firebird et Thunderbird. Deux choses importantes :

  • depuis la version du 1er octobre de Firefox, toute application demandant l'ouverture d'un lien peut être obligé d'ouvrir un nouvel onglet ou une nouvelle fenêtre suivant les nouvelles préférences (bugzilla #172962) ;
  • depuis la version du 6 octobre de Thunderbird, il est enfin possible de grouper les messages par l'ordre de tri (date, expéditeur, etc)... je vais enfin pouvoir faire passer les détracteurs du boulot préférant Outlook 2003 simplement pour cette fonctionnalité (bugzilla #256688).

Pourquoi me demande-t'on toujours la raison de mon adoration du logiciel libre ? :-) Peut-être qu'elle est tout simplement dûe au fait que les fonctionnalités progressent en permanence et que malgré cela les produits gardent leur stabilité.

lundi, septembre 27 2004

Ce que j'aime dans Firefox

... et surtout dans cette dernière version :

  • Lors de la visite d'un site sécurisé (HTTPS), la barre d'adresse se dote d'un joli fond jaune avec l'habituel cadenas verrouillé à droite.
  • Certaines informations importantes apparaissent en dessous de la dernière barre d'outils. Par exemple, un popup bloqué est indiqué de cette façon. Un clic sur le bandeau affiche un menu contextuel permettant de débloquer le popup. Les plugins manquants apparaissent aussi dans ce bandeau. Cette fois, le clic sert à demander la recherche et, le cas échéant, l'installation du plugin. Testé avec Macromedia Flash sous Windows et Linux : un vrai bonheur. Ça nous permet en plus d'éviter les bêtes boîtes de dialogue.
  • Le « / » permettant une recherche (comme sous vim :-) ) est maintenant doté d'une interface : boutons « précédent », « suivant » et « surlignage ».
  • Les marques-page pouvaient déjà se doter d'un mot clé. Par exemple, le marque-page de google.com dispose par défaut du mot clé goo. Dans le cas d'une recherche, il est aussi possible d'indiquer qu'il faut remplacer les caractères « %s » par un mot supplémentaire. Par exemple, saisir « goo toto » dans la barre d'adresses cherchera toto dans google.com. Sympa mais pas très évident pour l"utilisateur lambda. Cette fonctionnalité dispose enfin d'une interface disponible avec un simple clic droit sur le champ texte.
  • les livemarks (pour lesquels l'équipe de traduction française se déchire à trouver un équivalent français). Ils permettent de disposer des flux RSS sur différents liens. Ils sont beaucoup décriés actuellement parce que les fonctionnalités proposées sont assez faibles. Et c'est vrai... mais, après tout, il existe des aggrégateurs plus puissants comme Sage et même Thunderbird. Non, son seul inconvénient est que le seul moyen d'en ajouter passe par l'icône en bas à droite de la fenêtre. S'il existe plusieurs flux sur une page ou si vous visitez un site composé de frames, vous ne pourrez pas ajouter ce livemark. Mais cette erreur est comblée avec cette petite extension... Cette fonctionnalité permet d'accéder facilement aux blogs, sites de nouvelles, à des listes de bogues (récupérer ainsi sa liste de bogues en cours de traitement), à la liste des derniers guides pratiques traduits (n'est-ce pas fevrier... un petit flux RSS à partir d'e107 ;-) ), etc. Je vais proposer rapidement un exemple de flux intéressant avec Firefox.

Bref, Firefox est un outil indispensable et que ce soit sous Windows (comme le montre les copies d'écrans... désolé...) ou sous Linux, je n'utilise plus que lui.

jeudi, septembre 23 2004

Comment ajouter une barre latérale dans Mozilla/Firefox

Notre outil interne de gestion de bogues utilise des cadres (frames pour les anglophones). Le premier permet de faire une sélection sur les bogues à afficher, le deuxième affiche une liste ou le bogue sélectionné. Ce n'est plus trop au goût du jour mais je n'ai pas trop de temps pour faire évoluer ça. Néanmoins, ça me gênait beaucoup. Par exemple, l'icône RSS affichée par Firefox n'apparaît que dans le cas d'une page ne faisant pas partie d'un groupe de cadres. En visitant bugzilla.mozilla.org, j'ai remarqué la gestion de la barre latérale (sidebar). J'ai regardé un peu le fichier source de cette page. En fait, c'est assez simple. La barre latérale n'est qu'une page HTML comme les autres. Il est d'ailleurs possible d'indiquer à Firefix lors de la création d'un marque-page que celui-ci doit être affiché dans la barre latérale. Pour une installation automatique, un simple script javascript suffit :

function addPanel() { 
  if  { 
   window.sidebar.addPanel ("Ma barre latérale", 
         "http://linuxfr.org",
         ""); 
  } else { 
    var rv = window.confirm ("Cette page dispose de plus de fonctionnalités avec Netscape/Mozilla/Firefox." 
     + "Voulez-vous installer un de ces logiciels maintenant ?"); 
     if (rv) document.location.href = "http://www.mozilla.org/";
 }

}

Simple, non ? Du coup, j'ai ajouté le code javascript dans une page et, en exécutant ce script, j'ajoute un marque-page contenant l'URL du cadre gauche et s'ouvrant dans la barre latérale. Ainsi, après une sélection, mes listes s'affichent dans une page sans cadre et mon lien RSS s'affiche bien en bas de page.

Un petit lien pour des explications plus détaillées : My Sidebar Developer's Guide. Notez surtout que la cible de vos liens doit être _content pour éviter d'ouvrir une nouvelle fenêtre.

Comment ajouter un outil de recherche dans Mozilla/Firefox

Un collègue m'a demandé d'ajouter un " search engine " sur son Firefox pour qu'il puisse faire des recherches sur notre outil interne de gestion de bogues. Le moyen d'y parvenir est assez simple. Il suffit de créer un fichier texte dont voici un exemple tiré de la recherche via Google :

<search 
  name="Google"
  description="Google Search"
  method="GET"
  action="http://www.google.com/search"
  update="http://www.google.com/mozilla/google.src"
  updateCheckDays=1   
  queryEncoding="utf-8"
  queryCharset="utf-8"
>

<input name="q" user>

Les champs sont facilement compréhensibles. A noter que, même si la présence du champ " method " laisse supposer le contraire, la méthode (GET ou POST) n'est pas modifiable.

L'installation est toute aussi simple. Il suffit de placer le fichier dans le bon répertoire pour une installation manuelle. Dans le cas d'une installation automatique à partir du serveur, il faut créer un script en javascript et insérer un moyen (lien, bouton ou autre) pour l'exécuter. Petite astuce en passant, j'avais mis ce script dans une sidebar dans un premier temps. Mauvaise idée car le script n'est pas exécuté. Une protection de la sidebar ?

Quelques liens pour finir :