l'informatique libre par Philippe Voncken

Calendrier

« juillet 2008
lunmarmerjeuvensamdim
123456
78910111213
14151617181920
21222324252627
28293031

Syndication

dimanche 6 juillet 2008

Bug IE avec Selenium et Windows 2000 et XP

Si vous travaillez sous windows 2000 ou XP et que vos tests Selenium en local avec MSIE ne s'exécutent pas avec l'erreur : "No launcher found for sessionId null", c'est que le système s'est emmêlé les pédales et qu'il faut que vous supprimiez la clé de registre suivante:

HKEY_CURRENT_USER \\Software\\Microsoft\\Internet Explorer\\New Windows\\PopupMgr

Évidemment, vous ne tomberez jamais sur cette erreur si vous travaillez, comme moi, avec Linux.

samedi 5 juillet 2008

Amaya un bon debugger HTML

Hier j'ai passé du temps sur un script python qui générait du HTML. Je devais intégrer une CSS. "Facile", je me suis dit. Et bien non, le script python était bugger et il générait une fin de div en trop quelque part dans le source HTML. Du coup le design partait en vrille.

Amaya m'a été d'une aide précieuse pour comprendre la structure des balises afin de trouver quelle balise était en trop. Dans Amaya, une fois la page chargée, nous avons accès à une vue "Structure" qui permet de voir le HTML sous forme de DOM. Cette vue permet de cliquer sur un noeud et de voir quelle sont ses noeuds fils, parents.. enfin le DOM quoi.

On peut facilement passer de la vue HTML, la vue Strucure et la vue Source. Quand on clique sur un élément, des flèches permettent de se repérer dans chaque vue.

Sur du HTML qui n'est pas du XML il n'y a pas d'autres outils qui permettent de faire ce travail de visualisation du DOM à part peu être firebug mais la représentation n'est pas la même. Il est plus facile de debugger son HTML avec Amaya.

Petite astuce, pour ceux qui comme moi aiment avoir des structures propres et claires, pensez à ajouter un commentaire XML en face de chaque fin de div pour préciser quelle div elle ferme en précisant sa classe ou mieux son ID.

samedi 28 juin 2008

Récupéré une source XML avec Selenium

Si le content-type d'un document chargé par Selenium-RC est text/xml, application/xml ou application/xhtml+xml et que le navigateur utilisé est bien conforme aux normes du W3C, il est possible de récupérer, dans le langage de programmation utilisé pour piloter Selenium, le DOM sous forme de String. Libre à vous ensuite de le parser en activant la validation XHTML pour vérifier si vos pages sont correctes.

Votre serveur d'intégration continue pourra ainsi donner une nouvelle métrique, augmentant la qualité des pages générées par votre application Web.

Voici le code à utiliser avec le client Selenium:

                String xmlString = browser.getEval("if (!browserVersion.isIE) {"
				+ "if (this.browserbot.getCurrentWindow().document instanceof XMLDocument) {"
				+ "new XMLSerializer().serializeToString(this.browserbot.getCurrentWindow().document); }"
				+ "} else {"
				+ "var xmlDocument = this.browserbot.getCurrentWindow().document.XMLDocument;"
				+ "if (xmlDocument != null) { xmlDocument.xml; } }");
		System.out.println("test: " + xmlString);

Avoir des pages Web conformes à un standard, c'est la garantie de pouvoir être compris par un navigateur compatible avec ce standard. La bonne pratique sur le Web est de suivre un standard et de laisser les utilisateurs mettre à jour leur navigateur plutôt que de rendre compatible un site Web pour des versions de navigateurs spécifiques.

mercredi 25 juin 2008

Interview : Ce que pensent Stallman, Torvalds, Brown et Zemlin de Microsoft

Bruce Byfield a récemment interviewé quatre fortes personnalités du FOSS sur ce qu'elles pensent de Microsoft.

Les réponses sont très posées et rationnelles. C'est un article vraiment très intéressant qui montre que les communautés du libre et de l'open source sont vraiment entre de bonnes mains.

mardi 24 juin 2008

Tester l'aperçu de votre site

J'ai découvert récemment un site extra-ordinaire qui permet d'obtenir un aperçu d'une URL dans tous les navigateurs Web ET sur toutes les plateformes en même temps!

Indispensable pour tous web-master qui se respecte :)

lundi 23 juin 2008

ODF l'unique standard bureautique

Je viens d'apprendre que Microsoft a annoncé que la prochaine version de sa suite bureautique Microsoft Office supportera le format de fichier standardisé par l'ISO, j'ai nommé l'ODF. Le support d'ODF sera par défaut.

Voilà une sage décision qui nous permettra de simplifier nos projets de tous les jours en nous permettant de choisir le logiciel d'édition de documents.

Cette liberté va nous permettre de pérenniser nos documents et d'oublier les temps où un fichier word97 n'était plus lisible par wordXP et qu'il fallait passer par openOffice pour convertir le fichier de 97 vers XP sinon le fichier était perdu. C'est du vécu :)

On en parle sur:

dimanche 22 juin 2008

Google doctype

Google met à disposition pleins de tutoriaux et d'articles sur le Web dans son espace Google Doctype.

Les articles vont des bases du DOM, HTML et CSS aux aspects sécuritaires et autres trucs et astuces en tous genres du Web. Je n'ai pas eu le temps de tout lire en détails mais je suis déjà tombé sur des articles intéressants. C'est donc un lien à garder dans un coin pour y retourner de temps en temps.

lundi 16 juin 2008

Analyseur de threads

Pour ceux qui ont des problèmes complexes de gestion multi-threads en Java, "Coverity Thread Analyzer for Java" est peut-être LA solution. D'après son éditeur, c'est le premier outil qui soit capable de détecter les erreurs de programmation concurentielle susceptible d'entrainer une incohérence des données ou un dysfonctionnement de l'application.

On en parle sur toolinux.

Si vous testez, ou avez déjà testé cet outil, n'hésitez pas à donner vos impressions en commentaire de ce billet.

mercredi 11 juin 2008

Petite astuce pour activer des traces en Java

Vous avez des petits problèmes avec un bout de code qui manipule le réseau via une interface appartenant au package javax.net. Pour activer les logs sur la partie javax.net il est possible d'appeler ce bout de code:

System.setProperty("javax.net.debug", "all");

Ca peut être pratique pendant un test.

mardi 10 juin 2008

Récupérer le host name d'une machine en Java

Dans un précédent billet j'ai donné une astuce pour récupérer le hostname d'une machine en demandant au système d'exploitation. Cette astuce était plutôt destinée à montrer la manière de récupérer en Java la sortie standard d'une commande système.

Pour récupérer le hostname d'une machine en Java, il y a un moyen plus simple et plus portable:

InetAddress.getLocalHost().getHostName()

C'est quand même plus propre, surtout que l'on peut gérer les erreurs du type "hostname non trouvé".

lundi 9 juin 2008

Une console d'administration pour Tomcat

Je viens de découvrir la console d'administration lambda probe. Je l'ai testée, elle s'installe en deux minutes et propose une interface accessible via l'uri /probe et le login d'administrateur de tomcat. L'interface est agréable et les informations claires et précises.

C'est pratique à utiliser sur le Tomcat de développement que l'on a en local et c'est envisageable de l'utiliser sur des Tomcat de production.

Merci a Samy pour cette info.

jeudi 5 juin 2008

Happy Hours GWT à La Cantine

Hier soir j'étais à la soirée GWT généreusement offerte par Sfeir en collaboration avec la cantine. L'ambiance était sympathique, j'y ai retrouvé deux collègues de Valtech. Au total nous étions quarante invités, sans compter les organisateurs, les salles étaient pleines.

Read next

mardi 3 juin 2008

Ubuntu GWT - Exception lors du lancement du debugger

Moi qui voulais me mettre à GWT je suis servis, ce soir c'est cours du soir chez Valtech sur GWT et demain je suis invité à la formation de SFEIR sur GWT qui se déroulera à la cantine.

Bon, GWT ça a l'air sympa, mais c'est mieux quand ça marche. Je me suis retrouvé bloqué dès le début du TP en me coltinant une erreur:

** Unable to load Mozilla for hosted mode ** java.lang.UnsatisfiedLinkError: /home/xxx/mozilla-1.7.12/libxpcom.so: Can't load IA 32-bit .so on a IA 32-bit platform

Après avoir loupé une bonne partie du TP, j'ai trouvé la solution sur le billet de guymage qui est d'installer la librairie stdc++ en version 5.

apt-get install libstdc++5

Ubuntu étant un dérivé de Debian, je confirme pour l'avoir testé que cette solution fonctionne. L'exercice 1 du TP fonctionne bien maintenant, je peux enfin me mettre à coder du GWT :)

dimanche 1 juin 2008

Aller plus loin avec Selenium grâce aux standards

Je répète souvent que le langage HTML ne devrait plus être utilisé et qu'aujourd'hui il est bien plus intéressant d'utiliser XHTML, et plus particulièrement XHTML1.1 qui est la dernière version stable de ce langage. Voici un exemple pour illustrer ce conseil.

Read next

mercredi 21 mai 2008

l'Orthographe, est-ce important ?

On parle beaucoup de l'orthographe ces temps-ci. Trop d'enfants arriveraient au collège avec de grosses lacunes, des ingénieurs qui se seraient trop concentrés sur les matières scientifiques en délaissant l'orthographe. Les dictées reviennent en force dans les écoles préparatoires. Au journal télévisé on en parle beaucoup.

Pourquoi ?

Parce que l'orthographe est une norme qui permet de nous comprendre par écrit.

L'HTML est l'orthographe des ordinateurs sur le Web, qui leur permet de nous raconter cette belle histoire qui se trouve sur le Web. Si l'on publie des pages sur Internet avec des erreurs HTML, comment voulez-vous que l'on y comprenne quelque chose ?

J'espère que cette analogie vous fera prendre conscience de l'importance du respect du standard du Web. Je suis étonné de voir autant de sites internet ou de blogs ne respectant pas les normes. Un coup de validateur W3C pour voir plusieurs centaines d'erreurs HTML autant sur des sites grand public que sur des sites ou des blogs de professionnels de l'informatique.

Alors ok personne n'est parfait, l'erreur est humaine. Quelques erreurs de temps en temps peuvent arriver et cela m'arrive d'ailleurs. Mais lorsque je m'en rends compte je les corrige. Et comme c'est un sujet qui me tient à cœur je ne fais pas beaucoup d'erreurs à la base et donc ça va vite à corriger quand il y en a.

Pour mon blog j'utilise Dotclear dans lequel il y a un validateur (X)HTML intégré, c'est tellement facile à utiliser, il suffit de cliquer dessus lorsqu'on termine un billet et il nous montre toutes les erreurs qu'il ne nous reste plus qu'à corriger. Ça ne prend vraiment pas beaucoup de temps de faire les choses bien, alors ne nous gênons pas!

En espérant que les choses changent, @+

samedi 17 mai 2008

Google App Engine

Google app engine est une très bonne initiative de la part de Google. Cette plate-forme va permettre aux développeurs et aux étudiants de pouvoir se faire les dents sur Python dans un contexte Web pour leurs projets personnels. Python c'est bien mais s'ils pouvaient rajouter le support Java/Groovy ce serait super.

N'hésitez pas à donner votre avis en laissant un commentaire dans la catégorie Issues sur le poste "please add Java or Groovy support" qui connait pour le moment 1545 demandes.

mercredi 14 mai 2008

Récupérer le hostname en Java

Certains cas de tests, dans des applications particulières, peuvent avoir besoin de connaitre le hostname d'une machine pour lancer des tests spécifiques ou effectuer des actions.

Le bout de code ci-dessous permet de récupérer le hostname de la machine sur laquelle le code est executé:

          StringBuffer buffer = new StringBuffer();
	   try {
	        // Execute command
	        String command = "hostname";
	        Process child = Runtime.getRuntime().exec(command);
	    
	        // Get the input stream and read from it
	        InputStream in = child.getInputStream();
	        int c;
	        while ((c = in.read()) != -1) {
	            buffer.append((char)c);
	        }
	        in.close();
	    } catch (IOException e) {
	    	System.out.println(e.getMessage());
	    }
	    System.out.println(buffer);

Plus généralement on peut lancer n'importe quelle commande système avec ce code en insérant votre commande dans le string "command", mais faites attention d'utiliser des commandes universelles. La commande hostname fonctionne sur tous les systèmes d'exploitations sur lesquels je travaille (windows, linux, unix)

vendredi 28 mars 2008

Actualités OOXML par Jean-Marie Gouarné

Jean-Marie Gouarné fait le point sur la dernière réunion BRM qui a eu lieu du 25 au 29 Février à Genève sur itrmanager.

Je partage tout à fait son point de vue et souligne les deux citations suivantes tirées de son article:

En s'acharnant prioritairement sur la normalisation d'OOXML, l'état-major de Redmond démontre en réalité les limites étroites dans lesquelles s'inscrivent ses promesses d'ouverture (récentes et anciennes).

Les responsables ultimes, ce sont les États qui réclament l'interopérabilité sans la définir, et qui exigent des formats normalisés sans imposer de pré-requis sur la qualité des normes. Cette politique pavée de bonnes intentions ne peut provoquer, de la part des éditeurs de logiciels qui se sentent visés, que des promesses sur une certaine conception de l'interopérabilité et une course aux normes de complaisance. Elle ne suffit pas pour rétablir la concurrence entre les éditeurs, et elle complique le maquis des formats.

Le format ODF est déjà une norme ISO et est largement suffisant pour répondre aux besoins de l'entreprise.

J'ai également appris aujourd'hui par linuxfr.org que selon les echos la France devrait se joindre au Brésil, à l'Inde et à Cuba pour dire « non » à Microsoft afin que OOXML ne soit pas normalisé par l'ISO. Ça c'est une bonne nouvelle pour notre avenir numérique.

jeudi 27 mars 2008

OUI à XHTML2, NON à HTML5

Les débuts de HTML ont été difficiles. La guerre des navigateurs et les diverses implémentations ont semées une grande pagaille sur le Web, et nous en récoltons toujours de nombreux problèmes. Ces problèmes sont bien identifiés et il ne tient qu'à nous d'opter pour un standard qui les abolira définitivement.

Aujourd'hui nous connaissons l'ingrédient principale du succès de HTML et nous avons le recule suffisant pour mettre en place des technologies qui vont permettre de pérenniser les qualités du Web et supprimer ses défauts. XHTML2 est un standard qui permettra cette pérennité alors que HTML5 la met en danger, voyons ça de plus près.

Read next

vendredi 21 mars 2008

Stop à l'utilisation de  

Le caractère HTML de l'espace insécable est utilisé à tort et à travers. Je vois des développeurs qui l'utilisent pour aligner des données au lieu d'utiliser le padding ou le margin CSS.

Alors voilà un petit billet pour rappeler l'utilité du caractère  .

(source wikipedia) Une espace insécable est un caractère typographique que l’on intercale entre deux mots (ou un mot et une ponctuation) qui ne doivent pas être séparés par un éventuel retour à la ligne automatique. L’espace insécable permet d’éviter qu’un mot ou une ponctuation soit rejeté et isolé en début de ligne lorsque cela nuirait à la fluidité de la lecture.

Toute autre utilisation de ce caractère est donc une erreur qui entraine souvent des problèmes d'affichage et qui dégrade le niveau de maintenance des applications.

A bon entendeur :)

Theme original par Stephane Sulikowski modifie par Shinoli