Pachucho

Llevo unos cuantos dí­as pachucho. En el curro la mitad de la plantilla se ha puesto malo, un virus de esos raros. Yo llevo unos dí­as con fiebre. Para colmo en el trabajo hay un «pelí­n» de saturación, así­ que no tengo tiempo para mucho.

Tengo un montón de cosas de BolsaPHP pendientes de solucionar, de las que me han ido avisando en distintos comentarios (Gracias a todos). No me olvido, en cuanto mi cabeza sea capaz de pensar con algo más de lucidez me pongo con ello.

Ayer por la mañana se me veí­a cara de fantasma, hasta una compañera de trabajo me regaló unas frutas para ver si me sentí­a mejor (Gracias Birgit), por la tarde ya no me quedó más remedio que meterme una pastilla de esas efervescentes que tanto odio (no me gustan para nada los medicamentos).

Espero que Natacha Talleux no se contagie de nada, que la pobre está embarazada y nos está sufriendo a todos con las quejas. :P

Me voy a meter otra pastilla de estas, que tengo la cabeza como si un montón de enanos de Moria me golpeasen con sus martillos de guerra.

Script para tunel SSH inverso

Muchos de los equipos a los que tengo que hacer pequeñas intervenciones o mantenimientos en el trabajo van rodando por el mundo, es decir, o son portátiles o son equipos tras routers/firewalls no controlados por mi. Así­ que tengo el problema de no poderme conectar por SSH a (supongamos) un portátil de un gerente que anda en algún hotel del mundo usando a saber que conexión a internet.

La opción más rápida era montar un script que hiciese un tunel ssh inverso hacia «mi máquina» y a partir de ahí­ tener acceso completo a cualquier equipo fuera de mis dominios de BOFH.

Pero para entenderlo mejor, voy a poner un caso práctico. Tenemos un amigo que se ha puesto una KUBUNTU. Nos llama para decirnos que no sabe como instalarse un programa, como es normal, no tenemos acceso SSH al equipo de nuestro amigo, por que no tiene ni idea de configurarse un NAT en su router, así­ que le enviamos el siguiente script por mail:


#!/bin/bash
# Script para hacer tunel ssh inverso
# Por David Martí­n :: Suki_ ::
# http://sukiweb.net

USUARIO_TUNEL="remoto"
PUERTO_TUNEL="22222"

SERVIDOR_REMOTO="servidor.remoto.com"
PUERTO_SERVIDOR_REMOTO="22"

TEXTO="echo ' ADMINISTRACIí“N REMOTA';
echo 'Se va a proceder a la conexión remota de este equipo con el servidor:';
echo $SERVIDOR_REMOTO;
echo;
echo 'Mantenga esta ventana abierta mientras desee mantener la conexión.';
echo;
echo 'Teclee a continuación la clave del usuario $USUARIO_TUNEL.';
echo;
echo"

TUNEL="ssh -l $USUARIO_TUNEL -R $PUERTO_TUNEL:localhost:$PUERTO_SERVIDOR_REMOTO -N $SERVIDOR_REMOTO"

xterm -title "Administración Remota" -e "$TEXTO;$TUNEL"

En nuestra máquina, creamos un usuario llamado «remoto» con una clave que luego le daremos a nuestro amigo. Vamos a suponer que nuestra máquina es accesible desde internet a través del dominio servidor.remoto.com (aunque también puedes usar tu IP pública) y que tienes el servidor SSH a la escucha en el puerto 22.

Bien, le dices a nuestro amigo que ejecute ese script (recuerda explicarle como darle permisos de ejecución) y le aparecerá una ventana como esta en su escritorio:

tunel_SSH_inverso

Le decimos que teclee el password que hemos asignado al usuario remoto y que mantenga esa ventana abierta. En este momento, nosotros nos vamos a nuestra consola y hacemos un ssh al puerto 22222 de nuestra máquina, con el usuario de nuestro amigo, algo como:

:~$ ssh -p 22222 amigo@localhost

Nuestro amigo nos da su password (o el de otro usuario de su máquina) y ya estamos dentro. De esta forma, podemos instalarle la aplicación que querí­a o lo que sea necesario.

El script se puede mejorar mucho, aunque es lo suficientemente funcional como para utilizarlo en estos casos. Yo de momento lo voy a ir utilizando con todas esas máquinas GNU/Linux que andan sueltas por el mundo fuera de mis dominios de BOFH. :P

Mapas de Google Maps sencillos.

Hoy he visto en los RSS que anieto2k comentaba algo sobre Phoogle. Me ha dado por bajarme el pequeño código de la web de Phoogle y he visto que estaba bien la cosa, era sencillito de manejar.

Lo que pasa es que, como ahora estoy con el GPS bluetooth nuevo muy entretenido, he pensado que le faltaba una herramienta para poder usar los paseos que me doy con el GPS en marcha y pasarlos de forma sencilla a un mapa en la web.

Pues bien, me he puesto a programar un poco (que ultimamente programo poco en el curro y me apetece) y he implementado un sistema bastante sencillo para mostrar rutas, obtener posiciones geográficas y alguna cosilla más.

He tenido que modificar bastante el código de Phoogle, así­ que publico directamente aquí­ mi versión, ya que no creo que el autor quiera implementar según que cosas.

Vamos a por los ejemplos, que es lo que interesa.

Enlaces simples:

En estos enlaces simples, podemos pasarle en la url la latitud y la longitud de lo que queremos ver. Si arrastramos el mapa en cualquier momento, obtendremos la información de la latitud y la longitud que estamos viendo en ese momento. Además, tenemos un «Enlaza este sitio» muy cómo para usar el «copiar / pegar».

Enlaces con puntos marcados
Se pueden marcar puntos en el mapa de una forma muy sencilla, el código serí­a algo como esto:

$myPhoogleMap->addGeoPoint("39.836","3.169","Texto HTML de ejemplo");

Por ejemplo:

Metiendo rutas
Vamos a lo interesante. Esto es una de las cosas que más me apetecí­a. Meter de forma sencilla las coordenadas que me da el GPS (cuando he guardado un paseo) y poder mostrarlas de forma sencilla en pantalla.

Un paseo corto serí­a algo como:

$myPhoogleMap->addTrack("0000CC");
$myPhoogleMap->addPolyline("39.839172093", "3.164405822753");
$myPhoogleMap->addPolyline("39.8392050453", "3.16515684127");
$myPhoogleMap->addPolyline("39.839172093", "3.16586494445");
$myPhoogleMap->addPolyline("39.840803215", "3.16816091537");
$myPhoogleMap->addPolyline("39.84108330349", "3.167967796325");

Pero además, como este paseo es cerca de la playa, queda más bonito usar las imágenes de satélite y con el zoom al máximo, así­ que añadimos:

$myPhoogleMap->zoomLevel=1;
$myPhoogleMap->MapType ="G_HYBRID_TYPE";

La cosa quedarí­a más o menos así­ (con una foto incluida).

Y bueno, algo que también me parecí­a bastante interesante era poder tener varias rutas en pantalla, así­ que me puse manos a la obra y queda igual de sencillo. Además, se le elige el color que quieres a cada trazada.

Pues bien, para ponerlo en marcha en tu web, personalizandolo a tu gusto, te lo he puesto muy fácil. Simplemente descargate estos dos ficheros:

Añade tu API KEY de google maps y ya puedes empezar a meter tus apuntes, fotos, rutas o paseos. :)

P.D.: Con un poco de imaginación es sencillo enlazarlo con una base de datos o ficheros XML para poder tener una cantidad considerable de excursiones que mostrar. Pero eso lo haré otro dí­a, que ya es algo tarde y deberí­a dormir un poco. ;)

GPS Bluetooth

GPS Bluetooth Cuando ha llegado hoy mi jefe a la oficina va y me suelta «Tengo un regalito para ti». Ostras, cuando tu jefe te suelta algo así­, te puedes esperar cualquier cosa.

Pues nada más lejos de lo esperado. El tio va y me saca un receptor de GPS Bluetooth para que pueda jugar con mi nuevo treo.

El caso es que durante los últimos viajes hemos llevado su PDA, una Palm con receptor GPS y software de navegación. Yo me habí­a bajado algún que otro software (libre) para gestión de GPS en el treo, así­ que quise probarlo. Y funcionaba perfectamente.

Es más, llegue a comprobar el radio de error de su receptor GPS gracias a uno de los programitas llamado cotogps (y recomiendo para su uso en Palm). La forma que utilicé fué de lo más simple. Estando totalmente quieto y dejando un rato para que el GPS se posicione, pongo el marcha el sistema de trazado, que guarda cada segundo un punto con las coordenadas geográficas. Un par de minutos más tarde podí­a observar como la lí­nea de ruta hací­a una serie de elipses de un diámetro aproximado de 6 metros (ya que el software que utilizo no hace medias para posicionar).

No está nada mal. Un receptor GPS normalito con un error de unos 6 metros es bastante preciso. La sorpresa me ha llegado cuando hoy me he puesto a probar el mio. La misma operación para obtener las supuestas elipses en la gráfica, pero «sorpresa», resulta que este GPS es bastante más preciso todaví­a y apenas me ha dado margen de error. Es decir, que como mucho dirí­a que el margen de error es de un metro, aproximadamente. Sorprendente. :)

Pues nada, que ya tengo otro juguetito más a la colección de gadgets.

¿Alguno me puede recomendar algo de software para el treo 680 (Palm)? ¿Que software (libre) utilizas para el GPS?

Maldito Murphy

Es curioso. En el trabajo todo va como la seda. Pasan un par de dí­as de una oficina a otra poniendo un poco de orden y haciendo algunas cosillas, pero todo perfecto.

De pronto, una máquina (con ese maldito sistema operativo que tanto odio) empieza a complicar las cosas. Rompe la agenda, nos hace perder todo un dí­a. Al dí­a siguiente, cuando parece que lo tenemos todo controlado y podemos por fin coger el avión de regreso a casa tranquilos, aparece un nuevo problema, un servidor caí­do.

Maldito Murphy. Si no fuese por que tenemos planes de contingencia preparados para este tipo de cosas, no se que harí­amos. Ya sólo faltarí­a que el vuelo de vuelta lo tengamos contratado con Air Madrid. :(