Instalar manualmente VMWare Tools

¿Por qué necesitamos VMWare Tools?

Algunos usuarios de Linux nos vemos obligados, en ocasiones, a usar software que no es posible correr en nuestras másquinas por la razón que sea. En mi caso, tiro de Windows únicamente para entenderme con bases de datos Access y para usar una funcionalidad de la base de datos institucional en la que se almacenan los datos que generamos en mi trabajo. VMWare se perfila como la solución, pero para la completa funcionalidad de la máquina virtual de Windows 7 que tengo instalada, me era preciso tener las VMWare Tools instaladas en la máquina virtual. Esta funcionalidad incluye copiar y pegar entre el sistema HOST y el GUEST, gráficos mejorados, acceso a carpetas compartidas…

Lamentablemente el proceso de instalación automático no funcionaba y era necesaria la instalación manual.

Cómo instalar manualmente VMWare Tools

El sistema se quejaba de un muy neutro “There was a problem updating a componenet […]” que no se veía reflejado en los logs. Después de pajarear un rato, encontré la solución en unos cuantos post del foro de VMWare Communities.

Básicamente lo que hay que hacer es descargarse el componente desde

http://softwareupdate.vmware.com/cds/vmw-desktop/player/

En ese directorio navegáis al directorio correspondiente a vuestra versión de WMPlayer, entráis en el directorio del build correspondiente (en mi caso, el 894247), luego escogéis el sistema operativo HOST (el de la máquina en la que corréis WMPlayer), seguís por el directorio packages y os descargáis el archivo correspondiente a vuestro sistema operativo GUEST (el que emuláis). En mi caso, que uso Windows7, el fichero sería:

vmware-tools-windows-9.2.2-894247.x86_64.component.tar

Ahora hay que instalar el componente. Para hacer esto, desde la carpeta en la que hayáis descomprimido el archivo (en otro caso deberís ejecutar el comando con la ruta correcta), ejecutáis:

Donde XXXX-YYYYY debe corresponder a la versión que os hayáis descargado.

Después de esto,  si todo ha ido bien, veréis algo así:

Ahora arrancáis la máquina virtual e instaláis las VMWare Tools desde el menú de la máquina virtual, que arrancará el proceso de instalación, indicándoos que si no arrancara el proceso automáticamente, podéis utilizar el archivo de instalación del CD-Rom virtual para instalar las WMWare Tools. Curiosamente, al instalar las WM-Ware Tools en el sistema HOST (nuestro Linux) se ha creado un CD-ROM de instalación en la máquina GUEST, que es el que utilizaremos para instalar. Os deberá salir una pantalla como esta:

Instalación de VM-Ware Tools

Primer paso de instalación de VM-Ware Tools

 

Después de indicarle al Windows que deseamos ejecutar ese archivo, iremos por un asistente de instalación normal y corriente y, si todo ha ido bien, nos recompensará con una pantalla de finalización:

Instalación de VMWare-Tools en Linux

Pantalla de finalización del asistente de instalación

 

Sólo queda reiniciar la máquina virtual y ya podrremos gozar de funcionalidad avanzada, como copiar/pegar entre HOST y GUEST, carpetas compartidas, etc.

Las instrucciones originales las podéis encontrar en:

http://communities.vmware.com/message/1769844#1769844

 

Funciones de fecha en Postgresql

Los que hayáis trabajado con PostgreSQl quizá os hayáis enfrentado al tedio que supone tener que utilizar las funciones de fecha que proporciona PostgreSQL cuando queréis emplear parte de una fecha en vuestras consultas.  Por ejemplo, cuando queremoshacer consultas sobre meses, no nos queda más remedio que usar la funcion extract, que funciona más o menos así:

De manera que para emplear en una consulta el mes y el año de una fecha, tendríamos que escribir algo como:

Por no contar si lo que queremos es seleccionar los datos por trimestre, la cosa se complica:

Lo cual es , obviamente, muy engorroso.  De manera que un día me puse con el manual de PostgreSQL y me saqué unas funciones mucho más sencillas de utilizar. Una función que me devuelve directamente el mes a partir de una fecha y otra que me devuelve el trimestre. Con el mismo esquema se podría hacer un juego completo para el año y el día.

Mis funciones de fecha

En primer lugar, os paso la función trimestre:

El funcionamiento es, como habreis podido ver, muy sencillo. Practicamente es la misma consulta a la que me he referido antes, pero convertida en funcion. De esta manera, nuestra pesada consulta anterior su transforma en:

De manera muy similar ocurre con la funcion mes:

En fin, espero que ambas funciones de fecha os resulten útiles. ¡¡Espero vuestros comentarios!!

 

 

Web scraping con Python y Raspberry Pi

¿Qué es el web scraping?

El web scraping es, básicamente, un conjunto de técnicas cuyo fin es obtener de manera más o menos automática datos de las páginas web. Por ejemplo, sería web scraping recopilar los horarios de salida de los trenes de una página de una compañía de ferrocarril.

Hace unas días me tuve que enfrentar en mi trabajo (del que prefiero no dar detalles exactos)  a una tarea un poco tediosa. Se trataba de contrastar una serie de datos de los que yo disponía contra una base de datos a la cual se pueden efectuar consultas individuales a través de internet. Fue un fastidio, porque si hubiera dispuesto del conjunto de datos a contrastar, hubiera tenido el resultado final en lo que se tarda en crear y ejecutar la consulta SQL, es decir, algunos segundos. Como tuve que hacer cerca de 300 consultas a la web (encima, en un día que no andaba muy fino el servidor) y contrastarlas a mano… me llevó casi seis horas. El web scraping parecía una solución.

De manera que me dije que con toda probabilidad sería posible automatizarlo con un script Python, o al menos, automatizar la recopilación de datos con el script, lo que como ventaja adicional resulta en tener los datos y apara siempre en mi poder. Es decir, hacer un poquito de web scraping.

El script de Python

El script es bastante sencillo, y el código que os pongo está bastante bien comentado, de manera que no creo que sea necesario daros más explicaciones. Ahora bien, el uso de urllib2 se puede complicar bastante, el uso que yo le doy es simple. Quizá lo único que tenéis que tener en cuenta es que es preciso, según el caso, proporcionarle un user-agent adecuado, pues hay muchos servidores que rechazan ciertos tipos de user-agent, precisamente para evitar el web scraping.

Ahora sólo queda correr el script y esperar.

¿Y la Raspberry Pi, para qué?

Bueno, llevo muchos días pensando qué utilidades darle a mi Raspberry Pi, y esta me parece una muy interesante, pues una de las grandes virtudes de la Raspberry es su reducidísimo consumo. No es lo mismo hacer web scraping con un ordenador portátil o uno de sobremesa, consumiendo entre 100 y 300 W, que con un cacharrito silencioso que consume  apenas 3 watios y medio, ¿no? podríamos llamarlo web scraping de baja huella de carbono, ecológico, o algo así.

Lo único que hacer es copiar nuestro script en la Raspberry Pi, por ejemplo con scp tal y como os comentaba en otro artículo y ejecutarlo y dejarlo tranquilito haciendo el web scraping por nosotros

Bueno, espero que os haya gustado. ¡¡Espero vuestros comentarios!!