Otra idea para conocer el estado del tiempo

El programa Prognos, liberado por Ozkar, viene a llenar un espacio vacío en las barras de estado de los que no tenemos salida al mar, y bien merece una felicitación por ello.

Ahora bien, mirando los requerimientos, me encuentro con que mi Debian 6 no tiene python 2.7, ni otra biblioteca de las necesarias, que no recuerdo ahora. Vaya, me fastidié, fue lo primero que pensé.

Cambiar la distribución, ni pensarlo: esta es la máquina de trabajo, y no puedo ponerme a inventar. Fin de la historia.

Sin embargo, la idea me siguió rondando la cabeza (¿cómo extraer la información de allí?) y me puse a parsear la página de www.insmet.cu.

Entre las partes interesantes está una variable de arreglo, pdia, que al parecer guarda las temperaturas por provincia y una descripción concisa del estado del tiempo en un pronóstico de 5 días. Por ejemplo:

PINAR DEL RIO’,’29 18 Parcialmente Nublado’,’29 18 Parcialmente Nublado’,’29 19 Lluvias Ocasionales’,’28 19 Lluvias Ocasionales’,’28 19 Parcialmente Nublado’.

Por tanto, podría pensar en alguna solución que parseara la página, leyera este dato y luego lo presentara convenientemente en la barra de estado. No soy bueno en programación, así que seguí mirando a ver qué más aparecía, y me encuentro con que los datos de los pronósticos se guardan en ficheros de texto:

  • pttn.txt = pronóstico del tiempo para la tarde y noche
  • ptrd.txt = pronóstico del tiempo para el resto del día
  • Marady.txt = mares adyacentes
  • DC.txt = Depresiones y ciclones

etc.

Habituado a que cuando enciendo la máquina se me abran ventanas que he preparado con fortune, las efemérides (una ventana despliega la información del programa Calendar) y el santoral (fichero de Calendar preparado especialmente), se me ocurrió que podría descargar el fichero ptrd.txt, por ejemplo, y mostrarlo por las mañanas al encender el equipo. El tal fichero es muy liviano, y se descarga en nada mediante wget.

Así que en principio sería algo como descargar con wget y luego mostrar el contenido del fichero con alguna aplicación sencilla de ventanas, como xmessage o Zenity. Zenity hubiera sido mi primera elección, pues lo uso en un script para Evolution que me avisa si encontró virus. Pero a Zenity parece que no le gusta el código en UTF-8, así que escogí xmessage. De paso, veo que el texto descargado contiene ^M, así que conviene correrle dos2unix antes de mostrarlo.

Ya en ese plan, se me ocurrió: que me lo lea en voz alta también; así me da tiempo a organizar las cosas mientras la máquina abre sesión y yo estoy mirando papeles y atendiendo a los primeros que me han pescado en la puerta y me están consultando algo. Me leería el parte en voz alta y me abriría después una ventana con el texto para reconsultarlo si lo necesito. Esto se pone interesante…

Sintetizadores de voz hay varios en Debian. Flite, por ejemplo, es muy liviano, pero hasta donde veo, no habla español. Festival o Mbrola parecen tener opciones de buena calidad y en varios idiomas, con posibilidades también de escoger voces masculinas o femeninas. Es curioso: no veo voz femenina española en Festival; hubiera sido un toque agradable aquí. Pero me piden descargar cosas de Internet, así que están descartados. Por otra parte, si tuviera acceso, quizá no estuviera haciendo estas piruetas.

Me queda espeak. La voz es aceptablemente clara, y puedo usar la biblioteca es-la, que maneja español latinoamericano (aceptable).

Bien, armando el muñeco esto queda más o menos así.

#!/bin/sh
#leeparte.sh
rm -f $1
#/Pronostico/pttn.txt
#/Pronostico/Ptm.txt
#/Pronostico/Aviso/DC.txt
#/Pronostico/Marady.txt
#/Pronostico/ptrd.txt
wget http://www.insmet.cu/Pronostico/$1
dos2unix $1
espeak -f $1 -v es-la

xmessage -center -buttons OK -file "$1"

Dejo indicados los caminos de los distintos ficheros.
Lo invocamos así:

./leeparte.sh ptrd.txt

Estoy seguro de que si Lázaro me coge, escribe algo en Ruby que lo hace todo con una sola línea… 😉

Habiendo comprobado que funciona, busco en mi XFCE dónde le pongo que esto se ejecute al iniciar sesión.
Voy al botón XFCE, busco configuración, Sesión e inicio, Autoarranque de aplicaciones/Añadir. Entro la información, y listo.

Espero que les sirva de algo.

¿Te resultó interesante? Compártelo ...



alberto

Publicado por alberto

Forma parte de GUTL desde el 6 diciembre, 2011.

Este artículo tiene 16 comentarios

  1. Muy interesante…
    Es muy común este problema de copiar un software y no tener lo necesario instalado. Por ello una vez puse un comentario donde decía que en nuestro querido GNU/Linux hace falta un estándar gráfico que se sepa que ya viene con cualquier distribución y así evitamos este problema de dependencias en gran medida además de que las aplicaciones ganan en calidad puesto que los desarrolladores se concentran más en su producto en vez de preocuparse si su programa funcionará o no en otros lugares como me ha pasado, pensando sobre esto me vino a la mente QT pero este necesita ser instalado también, luego y actualmente estudiando sobre ello estoy trasteando con GTK, el cual se acerca más a la idea puesto que en cualquier lado está gtk instalado, incluso en KDE, LXDE,XFCE….
    O sea, que si hago un programa en GTK este de seguro funcionará con solo copiar el ejecutable. Gtkmm es un frontend para C++ pero no estoy seguro que esté instalado en la mayoría de sistemas Linux. Debe ser por eso que muchos desarrolladores prefieren Gtk+ que QT y otros toolkits o frameworks, porque quieren facilitarle la vida a los usuarios finales que muchas veces no tienen internet o no conocen el concepto de repo. Al parecer systemd facilita la tarea a los desarrolladores en este sentido, según vi en algún lugar de internet que decían que podría incluir un apartado gráfico(no hablo de X11) de manera que al hacer una app systemd se comporta como un framework estándar. Lo mismo hacen otros sistemas como Android, Mac y Windows, en este último está la API de windows que siempre ha existido, de manera que si cojo una app del 98 me funcionará en Win7(Ejemplo COC). En el caso de Android ya existen en todos los móviles unas librerías que lo unico que se necesita instalar es un apk que solo contiene el ejecutable y los datos del programa, por eso la calidad de estas apps es muy grande, por que los programadores no necesitan meter las librerías y concentrarse en cómo distribuirlas. Espero que dentro de poco en el ámbito de GNU/linux se estabilice esta parte, estoy seguro que ayudará a todos y nos facilitará la vida.

  2. Ozkar:

    Por favor, envía a mi cuenta la última versión de tu app con los datos que incluimos en REPOGUTL para ponerla en el repositorio; y tu Lázaro, empínate y crea un script en Ruby o en lo que mejor te plazca para incluir también la solución de nuestro cofrade Alberto en el mismo lugar.

    Un saludo cordial y agradezco de antemano la contribución de todos a REPOGUTL.

Los comentarios están cerrados.