viernes 18 de diciembre de 2009

El falso proxy

A primera vista, un proxy falso (o mal configurado), lo único que puede provocar es que no naveguemos en absoluto por la red. Sin embargo, bien configurado, puede ser un sustituto casero para permitir el acceso a determinados sitios, y restringir el resto. Efectivamente, sería mejor montar una solución con Squid, pero ya he dicho que es un remedio casero, siempre y cuando, la lista de sitios permitidos no sea muy grande.

Un ejemplo válido sería un ordenador de consulta público, en modo quiosco, en el que sólo queremos que se pueda visitar la web de nuestra empresa.

El truco radica, básicamente, en configurar un proxy inexistente en el navegador web y poner como excepciones de ese proxy, la lista de sitios a los que se quiere dar acceso exclusivo. La gracia del truco está en que esta configuración no pueda ser cambiada por el usuario que tiene acceso al navegador.

A continuación, vamos a configurar adecuadamente el navegador Firefox para que sirva a nuestros propósitos. Los parámetros a configurar son:

  • network.proxy.type: Deberá tener valor 1 para hacer la configuración manual del proxy.

  • network.proxy.http: Este es el lugar donde indicaremos el nombre del falso proxy.

  • network.proxy.http_port: Indica el puerto de escucha del proxy. Como en nuestro caso no existe, pondremos un valor comprendido entre 1024 y 65535.

  • network.proxy.share_proxy_settings: Al poner a true esta clave, la configuración para el protocolo HTTP valdrá también para el resto de protocolos (SSL, FTP, ...).

  • network.proxy.no_proxies_on: Como valor, separados por comas, pondremos la lista de sitios a los que sí se quiere tener acceso.


Ahora, lo que interesa es poner en el sitio adecuado los parámetros anteriores. Deberán estar en la configuración global del navegador (para que afecte a todos los usuarios de la máquina) y estarán bloqueados para que nadie los pueda modificar en su configuración local.

¿Cómo bloquear las preferencias? Para ello utilizaremos la directiva lockPref. El código resultante sería el siguiente:

// Opciones bloquedas
lockPref("network.proxy.type", 1);
lockPref("network.proxy.http", "falso.proxy.miempresa.com");
lockPref("network.proxy.http_port", 8888);
lockPref("network.proxy.share_proxy_settings", true);
lockPref("network.proxy.no_proxies_on", "miempresa.com,otrapagina.com");
lockPref("browser.startup.homepage", "http://miempresa.com");

Además, hemos incluido la opción browser.startup.homepage, para que la página de inicio del navegador sea una de la lista permitida (la principal). Aunque siempre es posible bloquear más opciones de configuración.

Para el final, hemos dejado la parte difícil: elegir el sitio donde poner el código. Como ya hemos dicho, no interesa poner esta configuración en el perfil del usuario de consulta, sino que es mejor que esté a nivel global y con permisos restringidos.

Llamaremos al archivo de configuración con los bloqueos lock.js. Este fichero lo tendremos que colocar dentro del directorio de instalación de Firefox. Para Windows sería %ProgramFiles%\Mozilla Firefox\ y para entornos Linux, algo parecido a esta ruta: /usr/lib/firefox/.

Por último, para que Firefox tenga en cuenta estos nuevos parámetros, habrá que añadir o modificar los siguientes parámetros:
  • pref("general.config.filename", "lock.js"); Así se indica un fichero adicional de configuración. No debe indicarse la ruta, sólo el nombre.

  • pref("general.config.obscure_value", 0); El valor 0 permite que el contenido del fichero lock.js vaya en texto claro. Por defecto, suele tener el valor 13, y eso significaría que el archivo debe estar codificado.


Dichos parámetros se encuentran dentro de los ficheros de configuración globales de la aplicación, y es en este punto donde hay alguna variación de la ruta, dependiendo de la versión de Firefox. Algunos ejemplos:
  • Para la versión 3.0 de Firefox para Windows, el fichero a modificar sería %ProgramFiles%\Mozilla Firefox\greprefs\all.js.

  • Para Fedora 12 y Firefox 3.5, el fichero sería /usr/lib/firefox-3.5.5/defaults/preferences/firefox.js.


Pero es conveniente avisar que, dependiendo de la distribución de Linux utilizada, estos parámetros pueden encontrarse en algún otro fichero que haya en ese directorio.

Etiquetas: , ,

lunes 12 de enero de 2009

Pidgin y el protocolo MSN

Hoy, como todos los días, he llegado a casa y he puesto en marcha mi cliente de mensajería instantánea multiplataforma, Pidgin. Pero hoy, una de las cuentas, la de MSN para más señas, no ha conectado al iniciar el programa. El mensaje que mostraba Pidgin era el siguiente:

Unable to retrieve MSN Address Book


Lo primero que he hecho, ha sido intentar entrar con mi cuenta passport en el sitio de Windows Live para verificar si estaba o no activa.

Como sí lo estaba, he empezado a buscar por Internet. Allí, he encontrado una noticia que señalaba que hoy (precisamente hoy), Microsoft había hecho un cambio en el protocolo y que era necesario instalar un nuevo plugin en Pidgin para solucionar el problema. O eso, o utilizar otro programa de mensajería.

De hecho, al probar con Kopete (el cliente por defecto del escritorio KDE), he entrado sin inconvenientes a la cuenta y he podido acceder a mis contactos. Otro programa que recomendaba la noticia era Empathy Instant Messenger. Aunque el programa es bastante más simple que Pidgin, también ha funcionado a la primera.

Pero el asunto es que quería solucionar el problema para Pidgin. Existe ya, desde hace unos meses, un paquete específico con el plugin para los usuarios de Ubuntu, que se puede descargar desde la web oficial del proyecto (msn-pecan, Alternative MSN protocol plugin for libpurple) y que también reside en los repositorios de la distribución.

En cambio, para Fedora, sólo parecían existir 2 opciones:
  • Compilar el fuente.
  • Esperar a que Pidgin (que ya comentan en su web el problema y que ya están trabajando en ello), sacara una actualización para el sistema.


Pero he encontrado una tercera opción. Edouard Bourguignon, ha compilado el código fuente y ha hecho un paquete específico para Fedora Core 10 y lo ha colgado en su página web. Gracias a él (otro héroe anónimo del software libre), el imprevisto con el protocolo MSN ha estado resuelto en menos de un día, preparado para miles de usuarios.

El último paso para volver a conectar con la red MSN en Pidgin, tras instalar el paquete, es reiniciarlo y cambiar el tipo de cuenta de MSN a WLM.

¿Qué sistema de pago hubiera hecho lo mismo, de forma gratuita, para sus clientes, en tan poco tiempo?

Etiquetas: , ,

lunes 5 de enero de 2009

Actualización de Fedora 7 a la versión 10

Un año y medio en informática es muchísimo tiempo y, más si cabe, si hablamos de la evolución de escritorio de las distribuciones Linux. Desde mediados del año 2007, en el que me instalé Fedora Core 7, tan sólo había renovado el sistema con las actualizaciones de seguridad de la versión. Por fin, estas navidades, aprovechando el tiempo libre, me decidí a hacer un upgrade de la distribución.

Primera desilusión

Fedora, que está basada en Red Hat, tiene yum como gestor de paquetes. Podríamos decir que yum es a Fedora como apt es a Debian: la herramienta que permite instalar lo que necesitas sin preocuparte por las (odiosas, en algunos casos) dependencias.

Una de las opciones que tiene yum, es actualizar el sistema entero a través del modificador upgrade. Al menos, eso era lo que creía. Siempre que ejecutaba el comando en cuestión, llegaba al mismo problema irresoluble de dependencias conflictivas. ¿No se suponía que esta herramienta era, precisamente, la indicada para no tratar nunca más con semejantes problemas? Pues no hubo manera, aún cuando, en un intento desesperado, le cambié las direcciones de los repositorios para apuntar a las versiones más modernas (e inestables) de dichos repositorios.

El único camino posible

La única alternativa viable era iniciar una instalación/actualización desde un CD de la nueva versión. Para ello, aprovechando la magnífica banda ancha de la que disponemos en España, me descargué la ISO más pequeña, que instala todos los componentes desde los repositorios de Internet.

Para que este método funcione, por precaución, siempre es conveniente seguir estas 2 normas:

  1. Tener los datos de los usuarios (/home) en una partición diferente a la del sistema. (Actualmente, casi todas las distribuciones Linux respetan esta norma y no hay que preocuparse por ello.)
  2. Hacer una copia de seguridad de los datos, en otro disco duro independiente al del sistema (o en un DVD, si cabe).


Primer arranque tras la instalación

Antes de comenzar con los problemillas que encontré tras la actualización de Fedora, un comentario sobre el proceso de instalación: el asistente de instalación a través de red es verdaderamente simple, pero casi demasiado escueto en información sobre el proceso (cada vez se parece más a la filosofía de Windows, ocultando el máximo de información...).

Ahora, empecemos con lo bueno. El proceso de arranque de esta versión 10 es muchísimo más simplista que el de la 7 (está visto que hay que parecerse al sistema de ventanas como sea...). Mi anterior sistema estaba preparado para entrar en modo gráfico tras el arranque, pero tras el upgrade... este último paso, falló. Al menos tenía acceso al sistema desde la consola de texto. También tenía acceso a Internet para buscar soluciones, pero... sin modo gráfico... ¿cómo continuar?

Había una alternativa de primeros auxilios, y otra un poco más... ¿cómo decirlo?, de chico con recursos. La primera consistía en instalar (en modo texto) un navegador en modo texto, como lynx o links. La segunda, por la que opté, era utilizar otro ordenador para conectarme a Internet en busca de información. Para ello, me agencié un Acer Aspire One con Linux preinstalado (una distro llamada Linpus que está basada en Fedora) y procedí a solventar mi contratiempo.

En uno de los foros donde recalé, indicaban que buscara más detalles sobre el problema en el fichero /var/log/Xorg.0.log. Editándolo, pude ver al final del mismo, estas líneas:

(EE) No devices detected
Fatal server error:
No screens found


Increible, pero cierto. Hasta hace unos minutos había tenido mi servidor X funcionando a la perfección, pero el proceso de actualización había sido incapaz de reconocer mi tarjeta gráfica (pese a que todo el procedimiento se había llevado a a cabo en modo gráfico).

Por suerte, existía una solución: ejecutar en modo root el siguiente comando (habiendo realizado antes una copia del fichero /etc/X11/xorg.conf, por si acaso):

# system-config-display


Tras reiniciar el equipo, la secuencia de arranque se completó hasta el final correctamente, pero... siguieron las sorpresas.

Nueva versión de KDE

Una especie de déjà vu recorrió mi mente la primera vez que vi arrancar el escritorio KDE. Parecía que estaba viendo el escritorio de XP: limpio como una patena, sin ningún icono ni documento a la vista. ¿Quién se había llevado mis lanzadores de aplicaciones y archivos?

Hasta entonces, KDE (versión 3.5), siempre me había parecido un entorno muy amigable (aunque tal vez, demasiado parecido al de Windows), pero la desaparición de iconos del escritorio (en esta versión 4.1) ya me parecía un toque de mimetismo demasiado... cruel. Así pues empecé a investigar por el nuevo sistema, por si era una opción de configuración (como en su alter ego). Después de un rato de no encontrar nada, pasé la búsqueda al ámbito de Internet. Tan sólo extraje como conclusiones que KDE reinventaba el escritorio y que la documentación oficial sobre Plasma (que así se llama ahora la aplicación que lo controla) está un poco verde todavía.

Lo que parecía claro, es que el directorio /home/mi_usuario/Escritorio no era lo que estaba viendo en pantalla y que, ahora, no se creaban lanzadores, sino applets (incluso se pueden utilizar los de Mac OS X), widgets y plasmoids.

¿Dónde estaba el explorador de archivos?

Eso es lo que me pregunté cuando intenté ver el contenido del disco duro. Ni rastro de Konqueror, ni de su sustituto en esta versión: Dolphin. Tampoco encontré el programa de terminal de KDE: Konsole. Ni siquiera estaba el editor de textos sencillo, el programa KWrite.

Una vez más, eché mano de Internet a través de mi flamante nueva versión de Firefox (¡por fin podía disfrutar de la versión 3!). Llegué a una página donde podía buscar programas de Fedora, y me devolvía información sobre el desarrollo (código fuente) de la herramienta. De esta forma, pude encontrar la clave de la cuestión: todos los programas que echaba en falta, estaban dentro de un paquete llamado kdebase. Cuando busqué ese paquete en mi sistema (rpm -qa | grep kdebase), comprobé que, efectivamente, no estaba... el de la versión 4. Sí que seguía estando el correspodiente paquete para la versión 3. Entonces, ¿por qué no se había actualizado?

La herramienta yum, cuando actualiza paquetes, se fija en el nombre de los mismos. El formato de los nombres de los paquetes es como sigue:

nombre-versión-release.arquitectura.rpm


Resumiendo, que si el nombre no coincide, yum no actualiza. Eso es lo que había pasado en mi caso. El paquete, para KDE 3.5, se llamaba kdebase3, y, para la versión 4, el nombre había cambiado a, simplemente, kdebase.

Instalando manualmente el paquete (yum install kdebase), tuve de nuevo todos mis programas.

Inconvenientes con las codificaciones de archivos

Ni la nueva versión de Konqueror, ni el nuevo Dolphin, entendían algunos de los nombres de mis antiguos archivos: aquellos que estaban en una codificación distinta a UTF-8. Ni siquiera me dejaban, ninguno de los 2 exploradores de archivos, renombrar los ficheros de la discordia. Solución: hacerlo manualmente desde la línea de comando.

Esto, en cuanto a nombres se refiere. Pero el contenido de mis archivos de texto (abiertos con KWrite), en codificación ISO-8859-1, tampoco se salvaba de la quema. Como ya he dicho, ahora todos los programas en Linux, trabajan con UTF-8 por defecto, y cada vez va siendo más complicado cambiar este comportamiento. En KWrite, versión para KDE 3.5, existía un menú de la aplicación, donde se podía cambiar fácilmente el modo de la codificación, pero en la nueva versión, está algo más escondido. Más exáctamente, está en: Settings, Configure editor..., Open/save, General, opción Encoding autodetection. Es necesario poner el valor western european para ver correctamente el contenido de los archivos generados en ISO Latin 1.

Los nombres de las opciones de la aplicación los pongo en inglés, porque el instalador no me puso el paquete de español para KDE. Tal vez pase algo parecido que en el caso del paquete kdebase, pero la verdad es que el cambio de idioma no me afecta tanto como el perder programas.

Conclusiones

Seguro que me dejo de comentar más pequeñas pegas pero, por el momento, tan sólo comentaré una más: el directorio /sbin ya no está en el PATH del usuario root. Aunque solucionarlo es sencillo (añadirlo en el archivo .bash_profile del usuario, por ejemplo), no dejó de resultarme curioso que antes estuviera y ahora no.

La pregunta que me hago es si los problemillas que me han surgido en la actualización, también hubieran ocurrido en una instalación limpia. Por lo demás, con la nueva versión, el ordenador ha mejorado en rendimiento y la respuesta al usuario de los programas es más ligera que antes. Así que, pese a todo, el cambio ha sido para mejor.

En todo cambio, mudanza, innovación... hay pérdidas. Unas veces reales y tangibles, otras veces en comodidad. Pero si hay una cosa que he aprendido en este año que termina es que si no te atreves a cambiar, no hay posibilidad de mejorar y de aprender cosas nuevas.

Actualización (2009-01-14):
Como me temía, que KDE 4 estuviera en inglés en lugar de en español, era debido al cambio de nombre del paquete de internacionalización. En la versión 3.5 se llama kde-i18n-Spanish y, en la versión 4.1, pasa a ser kde-l10n-Spanish. Instalando el nuevo paquete y configurando el idioma en las preferencias del sistema (Systems Settings, Country & Language), el tema queda solucionado.

Etiquetas: , ,

domingo 8 de junio de 2008

Si lo pago, lo uso

Soy linuxero de pro. Tengo actualmente una Debian testing en el sobremesa y una Arch linux en el portátil. Y me encanta. Lo que necesito, lo tiene. Navegar por internet, escuchar música, ver vídeos y dvd's, tareas ofimáticas, amuladores, juegos...

Pero he comprado un nuevo portátil. Un Sony VAIO VGN-FZ31E. Muy pero que muy bonito. Y claro, viene con un Windows Vista Home Premium. Así que me dije, vamos a ponerle un linux.

Pero para qué? Libertad, licencias, mejor seguridad... Si, me conozco todos los argumentos. Pero he pagado por un producto. Considero absurdo tirar algo que he pagado. Se actualiza solo, lleva software por un tubo ya instalado, bien propio de Sony o de terceros. Y si necesito de veras algo más, siempre puedo poner GIMP, OpenOffice, Pidgin, Firefox, Thunderbird. Y ahora con los futuros ports de kde podría incluso poner alguna de las utilidades que más me gustan. Como k3b, kopete, basket, amarok, kaffeine o dolphin. Aunque en este último caso creo que no hay nada mejor que Total Commander, aunque sea shareware ;)

Pero en general, para qué? El portátil viene ya con todo lo que necesito para mi trabajo habitual. Así que este portátil se va a quedar con su Windows Vista Home Premium y todas sus utilidades.

Al menos hasta que me harte de reinicios y de preguntas estúpidas. Preguntas, no llevo muchas la verdad, pero reinicios llevo ya 5 y no hace ni una hora que está en marcha.

No me lo quiero ni imaginar cuando le ponga la capturadora de DVB-T. Seguro que alcanzaré los 15 reinicios antes de que funcione del todo.

domingo 16 de diciembre de 2007

Cómo instalar WAPP (II)

Los tiempos avanzan que es una barbaridad y ya ha pasado casi año y medio desde que escribí la primera parte de este artículo. En él explicaba cómo instalar 2 versiones de PHP (PHP4 y PHP5), sobre un mismo servidor Apache, en un sistema operativo Microsoft Windows. En esta segunda parte voy a intentar dar un giro de tuerca al asunto, instalando ambas versiones de PHP como módulos del mismo servidor Apache, pero corriendo en procesos (servicios) separados.

Con este proceso, podremos aprovechar la misma potencia que nos ofrece Apache para un intérprete y para el otro. Además, de esta forma, iremos renovando nuestra infraestructura para el día en que la versión 4 de PHP no se soporte más. Podremos tener nuestro servidor preparado por defecto para PHP5 y, a la vez, seguir manteniendo algún viejo script de PHP4.

Este método sólo tiene un problema: necesita de más memoria RAM en el servidor porque se estarán lanzando 2 servicios en lugar de uno.

Requisitos previos

  • Tener una máquina con Microsoft Windows (recomendado XP, pero también sirve 2003 Server).
  • Haber leído la primera parte de este artículo para tener instaladas ambas versiones de PHP en el ordenador. Actualmente, recomiendo instalar las últimas versiones disponibles: la 4.4.7 y la 5.2.5.


Desinstalación de Apache

Este apartado es opcional, pero es recomendable seguirlo si en nuestra máquina ya estamos ejecutando el servidor de Apache y queremos partir de cero para continuar con el resto de instrucciones que se mencionan más adelante.

La idea es dejar la máquina lo más limpia posible, para que nada de lo que haya anteriormente instalado, cause complicaciones con lo que instalaremos a continuación. Estos son los pasos a seguir:


  1. Parar el servicio de Apache. Para ello hay varias opciones:

    • Ejecutar desde una consola de comandos la orden:
      c:\> net stop nombre_del_servicio_apache

    • Ir a la consola de servicios del sistema (services.msc) y parar desde allí el servicio.

    • Utilizar Apache Monitor (el programa que se instala en la bandeja del sistema cuando instalamos Apache).

  2. Parar la ejecución de Apache Monitor, abriéndo la aplicación y pulsando el botón Exit.

  3. Desinstalar Apache desde Agregar/Quitar programas (en el Panel de Control).

  4. Borrar la carpeta de instalación de Apache desde el explorador de archivos. Antes de hacer esto, podemos hacer una copia de seguridad por si acaso luego quisiéramos restaurar alguna configuración especial.


Un Apache, 2 procesos

Vamos a instalar la versión 2.0.61 de Apache. La razón de no utilizar una versión 2.2.x es la misma que daba hace ya un tiempo: la librería de PHP4 que se carga como módulo de Apache no funciona con la versión 2.2.

Si alguien quiere probar con Windows Vista, será mejor que lea estas instrucciones para instalar Apache.

Haremos una instalación normal, hasta que lleguemos al paso en que pregunta si queremos instalar como servicio (utilizando el puerto 80) o sólo para el usuario actual (en el puerto 8080). Elegiremos esta última opción porque, posteriormente, ya nos encargaremos de instalar manualmente los servicios que necesitemos. Para el resto del artículo, consideraré que Apache se ha instalado en el directorio c:\apache\.

Una vez acabado el asistente de instalación, iremos al directorio de configuración de Apache (c:\apache\conf\) y haremos 2 copias del fichero httpd.conf: una se llamará php5_httpd.conf y la otra php4_httpd.conf.

Nuestro servidor "principal" (el que operará en el puerto 80), cargará como módulo PHP5. El otro servidor, que estará en el puerto 8080 (pero puede elegirse otro puerto), llevará el módulo de PHP4.

Edición del fichero php5_httpd.conf

Partiendo de la configuración base de Apache, estas son las líneas que deberemos modificar:


ScoreBoardFile logs/php5_apache_runtime_status
PidFile logs/php5_httpd.pid
Listen 80
ServerName localhost:80
ErrorLog logs/php5_error.log
CustomLog logs/php5_access.log common


Y estas líneas, las deberemos añadir (se considera que PHP5 está instalado en c:\php5\, si no es así, habrá que modificar la ruta):


LoadModule php5_module "c:/php5/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php5"


Edición del fichero php4_httpd.conf

Líneas a modificar:


ScoreBoardFile logs/php4_apache_runtime_status
PidFile logs/php4_httpd.pid
Listen 8080
ServerName localhost:8080
ErrorLog logs/php4_error.log
CustomLog logs/php4_access.log common


Líneas a añadir (se considera que PHP4 está instalado en c:\php4\, si no es así, habrá que modificar la ruta):


LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"


Dos configuraciones, dos servicios

La idea es, viendo el contenido de ambos ficheros, mantener en archivos distintos la información de cada uno de los procesos que vamos a lanzar. Y como van a ser 2 los servicios ejecutados, tenemos que utilizar puertos de escucha diferentes.

El siguiente paso a seguir es instalar los 2 servicios. Desde una consola de comandos, iremos al directorio donde está el ejecutable de Apache y escribiremos:


c:\> cd c:\apache\bin
c:\apache\bin> apache -k install -n "Apache2PHP5" -f "c:\apache\conf\php5_httpd.conf"
c:\apache\bin> apache -k install -n "Apache2PHP4" -f "c:\apache\conf\php4_httpd.conf"


Y para lanzar los servicios:


c:\apache\bin> apache -k start -n "Apache2PHP5"
c:\apache\bin> apache -k start -n "Apache2PHP4"


Si todo ha ido bien, ya tenemos todo listo para invocar a ambos servicios por separado. Vamos a hacer una prueba rápida, escribiendo un script llamado prueba_php.php con este contenido:


<?php
/* fichero prueba_php.php */
phpinfo();
?>


El script lo colocaremos en el directorio DocumentRoot de ambos servidores (que debería ser c:\apache\htdocs\ si no hemos modificado la ruta por defecto). Ejecutando http://localhost/prueba_php.php y http://localhost:8080/prueba_php.php en el navegador, nos debería salir información diferente acerca de cada uno de los módulos de PHP.

Cómo testear la configuración de cada servicio

Por si necesitáramos añadir más prestaciones a alguno de los 2 servicios, voy a comentar como comprobar si el fichero de configuración tiene o no algún fallo. Desde una consola de comandos, tendríamos que escribir:


c:\> cd c:\apache\bin
c:\apache\bin> apache -t -f "c:\apache\conf\fichero_de_configuracion.conf"


Un puerto abierto, 2 servicios en puertos diferentes

Las siguientes instrucciones son totalmente opcionales pero pueden venir bien, en el caso de que queramos dejar solamente abierto un puerto en nuestro router para acceder a cualquiera de los 2 Apaches montados y tengamos acceso al DNS para montar más dominios.

Como último paso, podemos hacer que desde fuera del servidor, parezca que las todas las peticiones sean para un único servidor. Realmente, lo que ocurre es que las peticiones que no puede gestionar el primero, las redirige al segundo, sin que por ello cambie la URL que escribe el usuario. Para ello será necesario que podamos discriminar por nombre de dominio ambos servidores porque sólo disponemos de un puerto de salida para los dos.

Para el siguiente ejemplo, se considerará que el Apache con PHP5 es accesible a través de www.examplephp5.org y el otro Apache con PHP4, a través de www.examplephp4.org. Estas 2 entradas, en el DNS, apuntarán a la misma máquina física (serán 2 alias de esa máquina).

Podemos hacer las pruebas en la máquina local, añadiendo estas entradas en el fichero c:\windows\system32\drivers\etc\hosts:


127.0.0.1 www.examplephp5.org
127.0.0.1 www.examplephp4.org


¡Ojo!. Esta configuración del archivo hosts sólo sirve para la máquina local, no para un cliente exterior.

Una vez que ya tenemos nuestro entorno de prueba, veamos qué es lo que tenemos que configurar en el servicio principal (Apache2PHP5 que escucha en el puerto 80). En el fichero de configuración php5_httpd.conf debemos modificar estas líneas (descomentándolas):


NameVirtualHost *:80
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


Y añadiremos estas:


<VirtualHost *:80>
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
ServerName www.examplephp4.org
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>


Tras reiniciar el servicio, podemos hacer la prueba, poniendo las URLs a nuestro fichero de prueba en el navegador web: http://www.examplephp5.org/prueba_php.php y http://www.examplephp4.org/prueba_php.php. Si todo ha ido bien, la información mostrada debe ser diferente. En el primer caso, el módulo cargado es el de PHP5 y, en el segundo, el de PHP4.

Referencias

Etiquetas: ,

martes 6 de noviembre de 2007

Firefox & Proxy

A veces, cuando trabajas con un portátil lo tienes que enchufar a diferentes redes. Y estas a veces te proporcionan acceso a internet a través de un proxy. Y como cada red seguro que tiene su propio proxy definido, pues hay que hacer el cambio en las preferencias de firefox a mano.

Para evitarnos tener que hacer eso hay una extensión de firefox de lo más interesante. Se llama SwitchProxy y tiene un montón de características interesantes. Entre otras, la posibilidad de añadirle un listado de servidores proxy anónimos e ir pasando de uno a otro automáticamente cada x tiempo. Con lo que tu navegación será todo lo anónima que este sistema permite (para cosas más serias, mírese tor y téngase siempre en cuenta que todo pasa por la red del proveedor ;-) y que lo único verdaderamente seguro por ahora es el cifrado fuerte)

Como colofón a esta entrada, aquí van una serie de direcciones interesantes relacionadas con el tema.

Etiquetas: , , ,

sábado 20 de octubre de 2007

Jornadas sobre la web móvil

Dentro de los simposios del CEDI 2007, que se celebró en Zaragoza del 11 al 14 de septiembre, hubo uno dedicado a la web móvil, organizado por la oficina del W3C de España, la fundación CTIC y el Ayuntamiento de Zaragoza. Las conferencias de estas jornadas tuvieron lugar los días 12 y 13. El programa y las ponencias están disponibles en la página del W3C.

El resumen que se presenta a continuación está basado en el contenido de las ponencias y en apuntes personales que tomé como asistente a las mismas.

Introducción

Como ocurre en la web de escritorio (para PCs), es muy difícil desarrollar un diseño que sirva para todos los dispositivos y navegadores de los móviles. El hardware es muy diverso y tiene inconvenientes frente al mundo del PC:

  • Poca capacidad de proceso y memoria.
  • Limitado tamaño de pantalla (resolución, orientación).
  • Escasos colores.
  • Dificultad a la hora de introducir datos.
  • Poco ancho de banda.
  • Excesivo precio de las tarifas de conexión.

Los navegadores (como siempre), tampoco ayudan a mejorar el panorama pues cada uno implementa un lenguaje de marcado distinto:


Y sólo algunos tienen características avanzadas como el soporte de CSS y de JavaScript. Por si fuera poco, el abanico de navegadores disponibles es incluso mayor que en el caso de los PCs. Sin embargo, el parque de móviles se renueva mucho más rápidamente que el de ordenadores de escritorio.

El concepto de movilidad

Toda la información disponible para cualquier persona, en cualquier lugar y en cualquier instante de tiempo.


Por primera vez en la historia de la tecnología, se está más cerca de conseguir este sueño, gracias a la utilización de dispositivos móviles. Gracias a su pequeño tamaño, y cada vez más prestaciones, pueden acercarnos a la información que necesitemos en cualquier momento (como la información de proximidad). Siempre que contemos con la cobertura necesaria y si se empiezan a desarrollar servicios que cubran la gran demanda de información que puede surgir.

Aún así, Internet a través del móvil nunca será como la Internet que vemos en los ordenadores de sobremesa:
  • Por las limitaciones de los dispositivos y del medio de acceso.
  • Por las ventajas que le otorga la movilidad.
  • Por la diferencia en el tipo de uso y la necesidad del usuario.


La web móvil requiere que la información sea breve, concisa y que se pueda acceder ágil y rápidamente a ella. Para ello hay que recordar a los generadores de contenidos para los dispositivos móviles que, más que en ningún otro medio de comunicación, la palabra la tienen los usuarios. Si no hay buenos (y útiles) servicios, los usuarios no los consumirán.

Otro reto que queda, para las empresas que ofrecen la cobertura, es disminuir los costes para que más gente pueda acceder a los servicios creados.

Esto con respecto a Internet, pero también hay claras ventajas que aporta la movilización en aplicaciones:

  • Gestión en tiempo real
    • Capacidad de procesar incidentes en tiempo real
    • Mejor información al cliente

  • Mejora de productividad (evitar el envío posterior de datos)
  • Mejora de calidad (evitar la perdida de datos, detalles)


Desarrollo móvil

Pero para tener esas ventajas es necesario producir aplicaciones para los dispositivos móviles. En este apartado comentaremos algunas herramientas disponibles para llevar a cabo la difícil tarea del desarrollo.

Identificación de dispositivos
En primer lugar es crucial conocer las características técnicas de los dispositivos de los potenciales usuarios. Al conjunto de capacidades del dispositivo (hardware y software) y preferencias de usuario se le denomina perfil de dispositivo. Hay diversos sistemas que podemos consultar para acceder a estos perfiles:

  • CC/PP: Para almacenar la información usa notación RDF.

  • UAProf: Promovido por la Open Mobile Alliance. También se basa en RDF. Pero no están todos los que son (los grandes ausentes son dispositivos con Windows Mobile) ni son todos los que están (parte de la información puede no corresponder con datos reales).

  • WURFL: A diferencia de los otros sistemas, la base de datos se va completando con datos aportados por usuarios de los dispositivos móviles (es una de las ventajas por ser software libre). Esto tiene el problema de que contiene información no autentificada por los fabricante. Sin embargo, tiene la ventaja de que se puede recoger información sobre todo tipo de dispositivos (incluso de los que no tienen perfil UAProf). Además, este sistema se complementa con APIs de consulta para la base de datos (que es un fichero XML) en diversos lenguajes de programación (Java, PHP, Perl, Ruby, Python, dotNet, ...). Por todo esto, es un sistema mucho más usado y fiable que UAProf.

  • DDR: Con el objetivo de solucionar los problemas de UAProf, el W3C está desarrollando este nuevo sistema. El apoyo por parte de los fabricantes de dispositivos será crucial para que esta iniciativa fructifique.


Por su parte, para el desarrollo de aplicaciones en Java ME, están disponibles estas herramientas:



Buenas prácticas en el desarrollo de la web móvil
Reconocer las capacidades que permite el dispositivo de un usuario es sólo el inicio del camino en el desarrollo de contenidos web. Aparte de seleccionar el lenguaje de marcado adecuado a cada situación, es preciso hacer un buen diseño de arquitectura de la información para mostrar tan sólo los datos justos y precisos en cada página mostrada.

Para no dejarnos solos en esta ardua tarea, el W3C ha escrito un manual donde se recogen las buenas prácticas que nunca debemos olvidar en el desarrollo de contenidos para la web móvil: Mobile Web Best Practice 1.0 Basic Guidelines.

Como resumen de la presentación de estas normas, veamos cuáles han puesto en práctica el Ayuntamiento de Zaragoza para adaptar su web a los dispositivos móviles:



Herramientas de desarrollo
Cuando sale un nuevo dispositivo, no siempre podremos acceder a la compra del mismo. Una buena alternativa (aunque no sea fiable al 100%), es usar emuladores. Todos los fabricantes importantes ponen a disposición de los desarrolladores emuladores de sus modelos más significativos.

Durante el proceso de diseño e implantación de la solución son herramientas esenciales, para las pruebas finales siempre sería recomendable usar los dispositivos reales, porque no siempre las emulaciones se van a corresponder con la realidad.

La otra gran herramienta que debemos tener siempre a mano es un validador de código para dispositivos móviles. Hay uno disponible en la web de TAW. Además de verificar que el código esté bien escrito, al igual que hacen con los tests de accesibilidad, nos dirá si nuestras páginas son MobileOK. Es decir, si cumplimos las buenas prácticas o no.

dotMobi

Con el fin de proporcionar un servicio de calidad a los usuarios móviles, ha nacido la iniciativa dotMobi. Estas son algunas de sus características:


  • dotMobi es un dominio específico para el móvil.


  • Cualquiera puede conseguir un dominio dotMobi, pero se compromete a cumplir esta máxima y respetar las guías de estilo obligatorias. Por ejemplo, en el caso de un site:

    • Accesible como dominio de segundo nivel (bmw.mobi) (sin www.).

    • Desarrollado conforme a W3C MWI.

    • No frames: Muchos móviles no soportan frames.

  • Si un servicio dotMobi no cumple las guías de estilo, mTLD (el organismo que desarrolla esta iniciativa) iniciará un proceso de apercibimiento que podría terminar con su desconexión del DNS.

  • Es muy intuitivo, fácil de publicitar y de recordar.

  • Las páginas dotMobi son una garantía de que el contenido estará bien distribuido, no tendrá grandes fotos, no habrá texto que no se pueda ver ni información fuera de contexto o que no pueda mostrar la pantalla del móvil, ...

  • dotMobi Mobile Web Developer Guide ofrece información extremadamente útil con reglas para los profesionales.

  • Ready.mobi es un analizador de conformidad para las páginas y sites dotMobi que, además de una clasificación, ofrece recomendaciones específicas para mejorar el código empleado.



Opinión personal sobre las conferencias

El nivel de las ponencias fue grande y me ayudaron a asentar los pocos conocimientos que hasta entonces tenía sobre los fundamentos de la web móvil.

Como nota negativa, no para el simposio, pero sí para la organización del congreso, decir que la publicidad que se hizo de un evento de estas características fue bastante pobre y escasa (sobre todo en Zaragoza). Personalmente, me enteré del evento a través del blog de Torres Burriel. Si se hubiera dado la cobertura necesaria, el congreso habría tenido incluso más éxito en participación (sobre todo local) que el que no dudo que obtuvo.

Etiquetas: , ,