Le TwiBlog

The one with Twidi

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 24 novembre 2005

Fin prématurée de la grève à la SNCF ?

Il y a presque un an, je pestais ici-même contre la SNCF. Ce n'était bien sûr pas un événement isolé mais si je devais faire un billet à chaque problème, voir même à chaque train supprimé, je serais obligé de renommer ce blog....

Bref, donc, là, nous venons d'avoir deux jours de grève. Mais ce que nous avons tous noté, c'est que dès le premier jour, la direction de la SNCF a promi aux cheminots une substentielle prime de 120 Euros.

Jusque là je me suis toujours dis au fond de moi que leur grève visaient vraiment à la sauvegarde du service public (oui, je suis naïf, je sais)

Mais là ils viennent à mes yeux de perdre toute leur crédibilité. Il est maintenant clair que ce qu'ils cherchent avant tout à protéger ce sont leurs (nombreux) avantages (voir plus bas).

Pour nous prouver le contraire, la première chose qu'ils auraient du faire c'est refuser cette prime, et continuer sur le chemin de leurs revendications.

Bref. On a maintenant bien tous compris ce qu'il en était, la direction a bien joué sur ce coup là !

PS : j'ai retiré de ce billet une liste "d'avantages" car cela n'était absolument pas prouvé, loin de là ;) Ceci dit je pense toujours ce que je disais ci-dessus.

mardi 15 novembre 2005

Javascript et IE : document.createElement('input') et document.forms['the_form'].elements['the_input']

J'ai découvert un petit bug dans IE6 (celui qui dit "un de plus"... ben il le dit... ).

Sur un site développé pour un client (celui dont je parlais il y a peu), j'ai une partie en javascript. On peut, en cliquant sur un bouton, ajouter des lignes de formulaire.

Voici une partie du code :

var input_mail = document.createElement('input');
input_mail.setAttribute('name', 'mail2');
input_mail.setAttribute('id', 'step3_mail2');
input_mail.className = 'step3_mail_input';
...
a_div_in_the_form.appendChild(input_mail);

Donc ajout classique d'un élément via le DOM.

Plus tard, j'ai un onsubmit sur le formulaire dans lequel j'effectue une validation.

Je veux donc pouvoir accéder au nouveau champs pour tester son contenu

Je fais donc, très logiquement

var input = documents.forms['the_form'].elements['mail2'];

Et bien pour IE6, impossible, l'élément n'existe pas. Pourtant quand on parcoure le tableau avec des index numériques, on trouve bien l'élément avec name = 'mail2'. J'ai aussi essayé avec l'id plutôt que le name, mais rien à faire. La création de l'élément n'a pas correctement mis à jour le tableau elements.

Pour éviter de refaire tout mon code, j'ai créé une petite fonction qui renvoie une table de hashage qui, pour chaque nom du tableau, me donne son index.

function el_id_by_name(el) {
	var els = new Array();
	for (i=0;i<el.length;i++) {
		if (el[i].name) {
			els[el[i].name] = i;
		}
	}
	return els;
}

Et mon code précédent devient

var els = el_id_by_name(document.forms['the_form'].elements);
var input = document.forms['the_form'].elements[els['mail2']];

Notez le remplacement de elements['mail2'] par elements[els['mail2']]

Voilà ;)

lundi 14 novembre 2005

Apache et mod_perl sous debian : probleme avec Apache::Request (libapreq.so)

Entamant le développement d'un nouveau projet, j'ai passé le week-end à lire la doc de mod_perl (enfin plutôt le "guide"), et à expérimenter tout ça.

Bien sur, comme d'habitude, rien ne marche parfaitement du premier coup.

Le paquet debian (ou tout du moins ubuntu breezy) du module Apache::Request (qui permet notamment de récupérer les paramètres GET et POST à la manière du module CGI) ne marche pas.

Voici l'erreur obtenue quand on veut l'utiliser :

Can't load '/usr/lib/perl5/auto/Apache/Request/Request.so' for module Apache::Request: libapreq.so: cannot open shared object file: No such file or directory at /usr/lib/perl/5.8/DynaLoader.pm line 225. at /usr/lib/perl5/mod_perl.pm line 14

La solution est la suivante : désinstaller le paquet libapache-request-perl et installer via CPAN le module Apache::libapreq

Il est nécessaire d'avoir le paquet debian apache-dev d'installé sinon la compilation via CPAN ne fonctionnera pas.

gettext et php : choses à savoir

J'ai développé pour un client un site multi-langues. La bonne façon de faire est bien sûr d'utiliser gettext. Or, sans parler du fait que c'était pour moi la première fois que je touchais à cet utilitaire, j'ai du batailler pour arriver à un résultat correct avec PHP.

Donc au final j'ai noté deux points importants pour le bon fonctionnement de gettext+php

  • il faut que les locales de chaque langue utilisée soient installées (par exemple sous debian via dpkg-reconfigure locales
  • il faut redémarrer apache après chaque génération du fichier .mo

Ca n'a peut-être l'air de rien comme çà, mais j'ai passé des heures à comprendre pourquoi ça ne marchait pas...

Lien : un article facile d'accès (mais en anglais) pour commencer avec gettext et php