miércoles, 22 de septiembre de 2010

Llevaba bastante tiempo sin abrir Google Earth, casi tanto como sin usar el GPS (que es al fin y cabo para lo que lo quiero). Ayer al ir a importar la ruta desde el GPS como hacía habitualmente GoogleEarth se negaba en importar bien el KML producido por gpsbabel y me representaba una línea recta en medio del mediterraneo.
Pruebas:

  • importar ruta desde la web de GoogleMaps. Resultado: correcto.
  • crear una ruta en GoogleEarth (GE), guardarla a archivo, abrir archivo en GE. Resultado erroneo.

Problemas:

  • GE no lee sus propios archivos.
  • GE se hace la picha un lio con la codificación de caracteres y usa como separador decimal una coma (,) en lugar del punto (.) con resultados caóticos

Actualicé a la última versión 5.2, pero el problema se mantiene. Tras dar un par de vueltas dí con la solucion en los foros de GoogleEarth.

Perfil del recorrido, en la nueva versión 5.2Perfil del recorrido, en la nueva versión 5.2

La solución es sencilla. Basta con editar el script de inicio de GoogleEarth (en OpenSuse vi /opt/google-earth/googleearth) y añadir la tercera de estas líneas para forzar al programa a usar puntuación inglesa:
LD_LIBRARY_PATH=.:${GOOGLEEARTH_DATA_PATH}:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
export LC_NUMERIC=en_US.UTF-8

jueves, 16 de septiembre de 2010

Acuerdense, no hagan como yo: si personalizan los nombres de los archivos log de apache (ó cualquier otro programa que genere registros a un archivo) ó si simplemente quieren periódicamente rotar un documento personal cuando llegue a XX megas tienen que actualizar la configuración de logrotate. Este programa, cada dia, examina los archivos indicados y cuando cumplen unas condiciones dadas (edad ó tamaño) los elimina (rota), los enviar por correo, los guarda ó los borra definitivamente.

En Opensuse, en el directorio /etc/logrotate.d teneis una lista de archivos con el nombre de aplicaciones que habitualmente se instalan un GNU/Linux y que generan archivos que deben ser rotados. Cada uno de estos archivos incluye en su interior uno ó más archivos que deben ser rotados y las condiciones que esta rotación, algo como:
/ruta/completa/mi_archivo.txt {
compress
dateext
maxage 365
rotate 12
size=+4096k
notifempty
missingok
create 644 root root
postrotate
/etc/init.d/apache2 reload
endscript
}

Las opciones más habituales que puedes incluir:
compress, la copia de seguridad generada debe ser una archivo comprimido (gzip)
dataext, añadir al archivo comprimido la fecha actual (por defecto YYYYMMDD)
maxage 365, tiempo máximo que se debe conservar un archivo rotado. Mas antiguos se eliminarán.
rotate 12, número máximo de archivos rotados a conservar
size=+4096k, tamaño que debe tener un archivo para rotarlo
notifempty, si está vacio lo ignoras
missingok, si no existe el archivo no pasa nada
create 644 root root, crea un archivo rotado con estos permisos de lectura+escritura
postrotate /etc/init.d/apache2 reload, despues de rotar un archivo ejecuta esto (recargar apache).
endscript, fin de las opciones

miércoles, 8 de septiembre de 2010

Se lo leí el otro día a Rinzewind, de alguién en Reddit que se había hecho un script que genera una nueva imagen combinando un PNG de Calvin&Hobbs con la imagen de temática astronómica que a diario la NASA publica en su sitio.

El script original estaba hecho en Ruby, alguien lo rehizo despues en bash y recientemente he hecho una versión en PHP que permite insertalo facilmente en la web. Para ello he incorporado algunas opciones más que podeis leer más abajo.

La idea original era hacer el script PHP para subirlo al hosting gratuito que tengo en Tripod.es (Lycos) y así poder linkarlo todo el que quiera usarlo en su web, fondo de escritorio, etc… si que la descarga de imágenes de gran tamaño le diera a este servidor más trabajo del que tiene. El problema es que parece que dichos hosting tiene capadas muchas funciones que impiden que funcione correctamente. Asi es que, de forma temporal, lo cuelgo en este dominio y en versión de imagen pequeña, ya que como digo, las imágenes que es capaz de producir a partir de las gigantes que se publican en esa web (+3000 pixels) producirian un trabajo extra a este servidor que no tengo ganas de asumir.

Si alguien se anima a subirlo a su propio dominio solo necesita soporte PHP5 y disponer de las librerias gráficas (GD, bastante habitual en servidores web «normales»).
Del mismo modo, si alguien quiere utilizarlo para otra funcion similar que le interesa, pues aqui debajo cuento como funciona, como se descarga y como se instala. Sigue leyendo…

lunes, 30 de agosto de 2010

Nota: Observa que después de este apunte escribí otro sobre operaciones con decimales en Bash utilizando otro método mucho más «elegante». Puedes leerlo aquí.

Necesitaba realizar unas comparaciones de números con decimales, positivos y negativos para unos pequeños scripts que informan sobre el estado del clima (posa el ratón un segundo sobre la imagen de «cielo sobre Cartagena» para leerlo. En la columna de la derecha).

Problema

Si en un script hacemosecho "scale=2; 12.5 - 12.2 | bc -l" nos dará como resultado .3 (sin cero delante).
Para producir un número «entero» (con el cero delante), podemos hacer lo siguientea=12.5; b=12.2;\
echo "scale=6; resta = $a -$b; if (resta < 1 && 0 <= resta ) { print "0" }; print resta" |\
bc -l

Que imprimiría 0.3, PERO si la resta es negativa nos mostrará 0-.3 (cero menos coma tres)

Además ninguna de las formas anteriores es admitida por IF que solo compara números enteros:a=0.3; if [ $a -gt 0.1 ]; then echo "A es mayor que B"; else echo "A es menor que B"; fi
DICE que -->bash: [: 0.3: se esperaba una expresión entera

Solución

Al final una solución de casa de mi abuela: multiplicar todo por 1000 (o cualquier otro factor suficientemente grande como para convertir tus operaciones en números enteros) y a tomar viento. Algo así:#hacemos la operacion que nos producía un decimal negativo
resta=`factor=1000; a=12.2; b=12.5; \
echo "( $a*$factor ) - ( $b*$factor )" | bc`
#$resta es -300.0
#quitamos los decimales
resta=`${resta/.*/}
#$resta es -300
#hacemos comparacion
comparador=`factor=1000; \
echo "$factor * 0.1" | bc`
#$comparador=100.0
#quitamos los decimales
comparador=${comparador/.*/}
#hacemos la comparacion
if [ $resta -gt $comparador ]; then echo "A es mayor que B"; else echo "A es menor que B"; fi
A es menor que B

jueves, 26 de agosto de 2010

Añadiendo esta linea al final del wp-config.php (justo antes de la orden require_once(ABSPATH . ‘wp-settings.php’); )
define('WP_POST_REVISIONS', false);

Desactivas la creación de revisiones de tus apuntes en tu WordPress, es decir, no se genera un nuevo registro cada 5 minutos de edición ó cada vez que pulsas «Guardar borrador» y que había llevado mi tabla de apuntes a pesar 26Mg.. cuando una vez limpia de revisiones pesa 5Mg.

martes, 24 de agosto de 2010

La tipica chorrada que te pone nervioso: entras al panel de WordPress y venga cartelitos de «Nueva version de ..» , «Actualiza ahora«, «Atención…» … y eso que tengo cuatro plugins instalados, pero es que como cada vez más soy del club de «Si-funciona-para-que-lo-quieres-actualizar-?«, pues me he dedicido a hacer desaparecer dichos mensajitos, y para hacerlo lo mas sencillo es editar el archivo PHP del plugins en cuestión y en las primera lineas, donde pone:
/*
...
Version: 1.2.1 <-- antes
Version: 100.2.1 <-- ahora
Author: Michael Zehrer
Author URI: http://zepan.org
*/

Ale, avisame cuando llegues a la version 100.2.2

Cuaderno de campo es un blog desarrollado y mantenido por Trebol-a y en el que escriben Trebol-a, Miguel, Merche y Mónica
Si quieres saber algo más sobre los autores acude a la página acerca-de, si quieres contactar con alguno de nosotros hazlo a través de contactar ó de Google+

Creative Commons: Todo el contenido de la web (imágenes, textos, vídeos, a excepción de aquellas obras de otros autores enlazados por Cuaderno de Campo) se acoge a los términos expresados en la licencia Creative Commons