Mar 13

Extraños errores de javascript con Firefox y OpenLayers

 Estamos (seguimos) haciendo un mapa con geoserver en el lado del servidor y OpenLayers en el lado del navegador. Todo va más o menos de perlas dentro de lo que cabe en cualquier proyecto software, hasta que un cliente nos lanza la incidencia de que no puede ver el mapa con Firefox. Revisando veo que el mapa se ve perfectamente con Chrome, con Internet Explorer y con las versiones viejas de Firefox, pero no con las nuevas (de la 7 hacia arriba).

Saco la consola de errores y encuentro errores tan extraños como estos OpenLayers.Class is not a function, OpenLayers.Geometry is undefined, …

Por supuesto, no es problema de carga de librerías javascript, con otros navegadores funciona bien y no aparecen errores 404 de ficheros .js no encontrados.

Aunque desconcertante inicialmente, la solución fue sencilla. Hay algún tipo de incompatibiidad entre la versión de Openlayers que estaba usando (una del año pasado) y la interpretación de javascript de los firefox nuevos. No me he metido a ver cual era exactamente el motivo, pero bastó con actualizar la versión de OpenLayers a la más moderna.

Jun 03

El maligno

CORREGIDO: Bueno, al final lo que comento aquí es cierto, me ha pasado, pero ha sido culpa mía. Los <form> que comento tienen un <select> con varias <option> y se me había olvidado cerrar los <select>. Corregido eso, todo funciona correctamente. Así que me castigaré a mi mismo a usar internet explorer durante un mes.

el maligno No recuerdo dónde leí a alguien que le daba este nombre, "el maligno" a internet explorer. Cualquiera que se haya peleado un poco con CSS y se haya preocupado de que su página web se vea bien en los distintos exploradores, estará de acuerdo en lo apropiado del nombre. De todos es conocida la manía de Microsoft de saltarse los estándares y de interpretarlos libremente, por decirlo de forma fina.

Pues no solo con CSS es el problema. Estoy haciendo una paginilla web para un amiguete y me he encontrado otro problema con los formularios <form>. No sé muy bien el motivo (aunque lo intuyo) y desde luego no funciona bien con internet explorer, pero sí con chrome y fifefox.

El problema es el siguiente. En una misma página index.php tengo varios formularios <form>, cada uno con campos distintos y cada uno con su propio botón de submit. Todos ellos hacen submit a la msma página index.php, menos el último de ellos que hace submit a otra página pedir.php

La primera diferencia de internet explorer ( versión 8 ) con los otros navegadores es que cuando pulso submit, la página receptora tiene acceso a todos los campos de todos los formularios en $_POST (uso method="post"), mientras que en firefox o chrome sólo tengo acceso a los datos del formulario sobre el que he pulsado el botón submit. Bueno, no me representa un especial problema porque como he comentado, todos los campos de los formularios son distintos, pero intuyo que puede ser un problema si hubiera campos con el mismo nombre en distintos formularios.

Y la segunda diferencia, esta sí más puñetera, es que el botón submit del último formulario, el que supuestamente reenvía a una página pedir.php, no lo hace. Ese submit en internet explorer envía a la misma página que todos los demás, index.php. En firefox y chrome funciona bien, cada submit envía a su página. Esto posiblemente está relacionado con el problema anterior. Es posible que si internet explorer considera los varios formularios <form> como un único mega-formulario, quizás no admita que varios <form> tengan atributos action distintos. No he probado a poner el action en cada submit concreto.

Este último problema lo he solucionarlo usando un poco de javascript

<input type="submit" onclick="this.form.action=’pedir.php’;this.form.submit()" …

que básicamente es decir cual es el action con javascript y no dejarle al internet explorer que lo interprete a su peculiar forma.

 

Mar 12

Personalizando MediaWiki

 

Hace tiempo comenté que tenía un problema con la página aleatoria de la Wiki y el amigo google. Buscando una palabra en google, este me mostraba un enlace a la Chuwiki. Casualmente, este enlace, en vez de ser al artículo original, era la página aleatoria de la Chuwiki, por lo que pulsando el enlace mostrado por google, me iba a una página aleatoria y no a la buscada.

Hace un par de días volví a tropezarme con el problema. Busqué no sé qué en google, apareció un artículo de la Chuwiki, pinché el enlace y acabé en una página aleatoria. Así que me he decidido a arreglarlo. Por supuesto, para variar y por culpa mía, el cambio ha sido una pequeña odisea.

Lo primero de todo, por supuesto, ponerme a urgar en los ficheros php de MediaWiki, a ver dónde demonios está ese enlace de página aleatoria para quitarlo. Después de un par de horas de revisar el código, ir de un lado a otro, dar mil vueltas y no llegar a ningún sitio (está oculto el dichoso enlace), me decidí a hacer lo que debería haber hecho desde el principio: consultar la ayuda de la MediaWiki.

Las cajas de menú de la izquierda de la MediaWiki son bastante fáciles de modificar. Con permisos de administrador basta desde la misma web, editar la página MediaWiki:Sidebar. En esa página aparece el menú y se puede modificar a gusto. Para editar esa página, que no está fácilmente accesible, hay que poner la url directamente en el navegador:

http://www.tuwiki.com/index.php?title=MediaWiki:Sidebar&action=edit

y listo, ahí ponemos lo que queramos, incluso más cajas de menús. Tienes los detalles en Manual:Interface/Sidebar de la MediaWiki.

De todas formas y como siempre tiene que haber algo que incordie, después de hacer los cambios no veia en absoluto modificado el menú. El dichoso firefox tenía guardada la página en memoria y no me cambiaba el menú. Me dí cuenta al visitar otra página de la Chuwiki y ver que ahí si estaban cambiados los menús. Así que cada vez que hacía un cambio, no me quedaba más remedio que vaciar la caché del firefox ("herramientas"->"limpiar datos privados").

Jun 06

Ubuntu + firefox + java

 

Bueno, por fin he conseguido el firefox con los Applets de java. Ni instalando, ni reinstalando, ni con apt-get ni leches similares. O sea, nada de pinchar aquí y allí con el ratón y que funcione. Lo conseguí con línea de comandos y algo de investigación.

Con apt-get, reinstalando e instalando no conseguí nada. Es cierto que lo que no hice fue desinstalar java y firefox a la vez y luego reinstalarlo en orden todo desde cero, pero no me parece de recibo que para instalar un plugin haya que desinstalar ambas aplicaciones y volver a instalarlas.

Buscando por internet encontré que la forma es poner un link simbólico dentro de ~/.mozilla/plugins a la librería .so que hace de plugin. Por supuesto, no sé cual es el motivo, pero en mi caso la librería .so de plugin no estaba donde indicaba la página, en /usr/java/jre1.5.0_01/plugin/i386/ns7/libjavaplugin_oji.so, (desde luego, a mi java me lo ha puesto en /etc/alternatives y no en /usr/java) sino en un sitio tan extraño como /usr/lib/xulrunner-addons/plugins/libjavaplugin.so, ¡¡ vaya !! que lo encontré de casualidad.

Así que simplemente con estos comandos

cd ~/.mozilla/plugins
ln -s /usr/lib/xulrunner-addons/plugins/libjavaplugin.so libjavaplugin.so

conseguí que funcionara.

Revisando, veo que si lo hubiera hecho al directorio de plugins donde está instalado firefox /usr/lib/firefox-2/plugins, posiblemente hubiera servido para todos los usuarios, pero bueno, soy el único usuario de mi ordenador y lo de "sudo" me da un poco de pereza (fíjate si es trabajoso que hasta hay que introducir la password, que por supuesto, es segura y tiene 512 caracteres con símbolos especiales, cifras y letras mayúsculas y minúsculas entremezcladas y sin sentido alguno).

Por cierto, ya que estuve instalando y desinstalando por culpa del plugin de java este, me quité la versión firefox-3 beta y me he puesto la 2. Pero por supuesto, tuve problemas, tontos esta vez, pero los tuve. Resulta que al instalar firefox-2, no me funciona el icono de firefox que me pone en el menú "aplicaciones"->"internet". ¿Motivo? Porque el ejecutable se llama firefox-2 y el menú intenta arrancar firefox a secas, sin numerito detrás. Nada que no se pueda arreglar.

¿Seré capaz ahora de instalar la barra de google?

 

May 11

Ubuntu Hardy Heron: Mi gozo en un pozo

 

Bueno, pues parece que canté victoria demasiado pronto. Aunque conseguí hacer funcionar bien mi Ubuntu Hardy Heron con la tarjeta gráfica ATI y Compiz, sólo fue un espejismo. No sé muy bien si se debe a que se fue la luz y se cayó de golpe el linux, o si símplemente al apagar y reiniciar. El caso es que al arrancar se queda la pantalla negra. Si arranco en recuperación de errores y reconfiguro el servidor de X, arranca, pero no puedo entrar en mi usuario de administración.

Investigando, descubro que el usuario normal sí entra, pero porque no tiene permisos para arrancar no sé qué (lo veo en el fichero de .xsesssion-errors, mientras que el usuario de administración sí los tiene, arranca lo que sea y se le cae la sesión, por lo que vuelta a carátula.

Si desinstalo compiz y desinstalo el driver específico de la ATI, entonces todo va de maravilla. Si instalo el driver de la ATI, linux símplemente no arranca, se queda la pantalla negra. Si pongo compiz, el administrador se sale o se le queda la pantalla blanca. En fin, no tengo ganas de seguir peleando con ello, al menos de momento. Fuera el driver de ATI y fuera Compiz. Tengo un escritorio normalito, pero al menos puedo trabajar.

Por cierto, Ubuntu Hardy Heron viene con Firefox 3.0 Beta. Pues ya le estoy viendo pegas, supongo que son de Firefox. El caso es que según escribo este post, cada vez que aprieto <INTRO> para cambiar de párrafo, se me mueve la barra de scroll vertical del navegador, por lo que mi caja de texto cada vez está más abajo o más arriba. Tras cuatro o cinco <INTROs>, tengo que tocar la barra de scroll para situar mi caja de texto en un sitio visible, ya que tiene a irse fuera de la pantalla.

No me pasa sólo con wordpress, sino también con otros editores de foros y demás. Así que ya me veo desinstalando este Firefox para poner el antiguo.

Otra pega más de este Firefox Beta es que de momento no admite la barra de google (o la barra de google no admite este Firefox, me da lo mismo). El caso es que no puedo ponerla y echo de menos algunas de sus funcionalidades, como ver el pagerank de la página que estoy visitando o ir directamente a las palabras que he buscado en google.  O el tooltip de traducción a español que sale cuando pones el cursor sobre una palabra inglesa.

Y todo esto me hace pensar un pequeño detalle. Hay mucha gente, entre los que me incluyo, (e incluyo por ejemplo al Dr Max Glaser), que dicen que Linux es mucho mejor que Windows y queremos pasarnos definitivamente a Linux y olvidarnos de Windows. Pero muchos no lo acabamos de hacer porque Linux sigue teniendo sus faltantes, sus problemas y sigue sin ser todo lo fácil que debiera. Ojo, no digo que si sabes un huevo, tienes mucha paciencia y te dedicas a ello no puedas afinarlo, pero de momento no es una cosa fácil al alcance de cualquiera.

¿Por qué queremos entonces pasarnos a linux? ¿Símplemente por odio a Microsoft? ¿Símplemente porque hemos oido que linux es mejor?. La experiencia de los usuarios normales no da la impresión de que linux sea mejor, desde luego. He tenido varias distribuciones de linux desde hace muchos años, más de diez: Mandrake, Red Hat, Suse, Ubuntu, y NUNCA, NUNCA he tenido un linux que no se me quedara colgado de vez en cuando o me diera problemas o en el que tuviera todo mi hardware bien instalado o en condiciones de uso (mi nuevo ubuntu Hardy Heron sigue sin dejarme montar cómodamente, ni de cualquier otra manera, los pen drive, problemas de permisos con los que tendré nuevamente que pelearme). Según mi experiencia, la realidad y el motivo por el que no nos pasamos totalmente a linux es

  • Queremos linux porque nos gusta el mundo del software libre y le tenemos algo de tirria a Microsoft. Es decir, ninguna razón práctica y real de peso, salvo que seas un extremista.
  • Linux da muchísimos más problemas que Windows y salvo que seas una persona con cierta experiencia en administración linux y tengas paciencia para afinarlo, no lo vas a tener 100%, salvo que suene la flauta y te hayas comprado un ordenador 100% compatible linux.

Posiblemente, linux sí sea mucho mejor y más fiable como servidor para una red (servidor web, de disco o lo que sea), pero es algo que un usuario normal como yo no tiene en su casa. No veo ningún motivo real y práctico para tener ubuntu instalado… y sin embargo ¡¡lo tengo!!. No quiero quitarlo.

En fin, supongo que es cuestión de tiempo. Supongo que Ubuntu ira bien con las tarjetas ATI cuando salga la distribución Ubuntu Super ATI y mi tarjeta esté obsoleta y justo esa distribución no la soporte.