Archivo de la categoría: GNU/Linux

Installing scipy in a Python virtual environment

Using virtualenv to create different python environments is a common practice while working in multiple projects. In addition, it may happen that we don’t have root access (i.e. admin rights) in the machine that we are using. Virtual environments are also quite useful in such situations. However, some python packages require extra dependencies that are not straightforward to install.

Installing scipy in a virtual environment should be initially quite straightforward:

python virtualenv.py myVE
source myVE/bin/activate
pip install scipy

However, during the installation of scipy I found the following three problems that took me several hours to solve. Here I share the solutions that worked for me in case they can be useful for someone else (specially myself in the future).

ImportError: libatlas.so.3: cannot open shared object file: No such file or directory
This error appears even having Atlas library properly installed. Apparently, it’s an error that only happens with numpy 1.9.2 in a virtual environment as I found in a small comment in Stack Overflow. The solution is to install the previous version:

pip install numpy==1.9.1

error: library dfftpack has Fortran sources but no Fortran compiler found
Despite my system had 3 different versions of gfortran, none of them were found by the installer. The solution is to create a symbolic link and then include it in your PATH variable.

ln -s /usr/bin/gfortran-4.7 ~/bin/gfortran
export PATH=$PATH:~/bin

ImportError: libopenblas.so.0: cannot open shared object file: No such file or directory
In this case, OpenBLAS library was not installed in the system, so the solution was to compile and install it manually. You can get the sources in the OpenBLAS website and then follow the installation guide.

make
make PREFIX=~/openblas install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/openblas/lib
export PATH=$PATH:~/openblas/bin

Motorola Moto G: primeras impresiones

Tras más de 2 años con un ZTE Blade, he decidido cambiar de teléfono. El elegido ha sido el Motorola Moto G. Llevo utilizándolo más de 1 mes y no podría estar más contento. El terminal libre lo adquirí en la web de Phones4U por 129 libras (versión de 8GB) y en menos de 24 horas ya lo tenía en casa. En la caja sólo se incluye el teléfono y un cable micro USB. Si quieres un cargador y auriculares los tendrás que buscar por tu cuenta.

Las especificaciones hardware las podéis encontrar en la web oficial y en GSMArena. Lo primero que destacaría es la pantalla IPS de 4.5 pulgadas y una resolución de 326ppi (igual densidad de pixels que la del iPhone 5s por poner un ejemplo). La CPU es un quad-core 1.2 GHz Cortex-A7 y la GPU es Adreno 305, que junto con 1GB de memoria RAM hacen que el terminal vaya muy fluído. Algunos puntos débiles que mencionar son la cámara (la calidad deja algo que desear, pero suficiente para el día a día), la batería no extraíble y la falta de ranura para tarjetas SD.

En cuanto al software, viene por defecto Android 4.3 (Jelly Bean) sin modificaciones pero ya lo están actualizando a Android 4.4.2 (KitKat). Cabe destacar que Motorola ha liberado el kernel del teléfono y está disponible para descargar en Sourceforge. Todavía no hay una versión oficial de Cyanogen para Moto G, pero podéis encontrar la ROM no oficial en el foro de xda-developers junto con mucha más información.

En mi opinión, la relación calidad/precio es inmejorable y si buscas un teléfono por menos de 200€ sin duda recomendaría el Moto G.

Installing OpenLDAP in a Webfaction server

There are several forum threads regarding problems with the installation of OpenLDAP. The main issue that I faced has been the compatibility with Berkley DB libraries. I found in this site that the required version of Berkley DB for compiling OpenLDAP is 4.8. The steps for the installation are described below.

Once the Berkley DB library is installed, we can proceed to install OpenLDAP indicating the correct paths.

Finally, if we want to install also python-ldap library using pip we will find that the installation fails. For solving this issue, we have to indicate where OpenLDAP is located. If we are using a virtual environment (if not, you should!), we have to edit the following lines in the file $YOUR_VIRTUALENV_FOLDER/build/python-ldap/setup.cfg as explained by eikonomega.

I hope you find this post useful. Beware that installation steps may vary depending on your linux server and software versions.

Visor de archivos MDB en Linux

Hace unos años escribí un post sobre cómo convertir un archivo MDB a ODB, pero desafortunadamente no funciona con la última versión de LibreOffice.

Por suerte, existe un software para GNU/Linux llamado mdbtools, que contiene una serie de utilidades para consultar las bases de datos MDB (de Microsoft Access), así como exportación a CSV.

La instalación se puede hacer en Ubuntu/Debian y similares instalando el paquete mdbtools de los repositorios, que provee los siguientes ejecutables:

mdb-array     mdb-header    mdb-parsecsv  mdb-schema    mdb-tables
mdb-export    mdb-hexdump   mdb-prop      mdb-sql       mdb-ver

Si preferimos usar una interfaz gráfica, basta con instalar el paquete mdbtools-gmdb y luego ejecutar

gmdb2 fichero.mdb

winetricks: utilidad imprescindible para wine

Si habéis usado wine alguna vez para ejecutar alguna aplicación que sólo está disponible para Windows, es posible que no os haya funcionado a la primera. Esto es debido a que hay ciertas aplicaciones que necesitan otras librerías para ejecutarse correctamente.

Si bien en la web oficial de wine, describen a winetricks como “un script rápido y sucio”, es bastante útil y sencillo de utilizar.

Para descargarlo, abrir un terminal y ejecutar:

wget http://winetricks.org/winetricks 

Si tenéis Ubuntu, podéis descargarlo de un repositorio:

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo aptitude update
sudo aptitude install winetricks

Una vez, descargado, ejecutadlo y os aparecerá una interfaz gráfica donde permite escoger qué aplicaciones o librerías queréis instalar. No sé porqué, pero a través de esta interfaz no aparecen todas las opciones disponibles. Para ver un listado completo, ejecutad en la terminal:

sh winetricks list-download

Para instalar cualquier cosa, escribid simplemente el nombre de la aplicación. Por ejemplo, si queremos instalar Spotify y el framework .NET 3.5:

sh winetricks spotify dotnet35

.

Sigue leyendo

Configurar monitor Samsung SyncMaster 943NW en Ubuntu 10.10

Mi monitor de 19″ tiene una resolución un tanto peculiar, que no suele reconocer a priori el sistema operativo. Además, las instrucciones que he encontrado por internet se referían todas a usar el fichero xorg.conf y no he conseguido que ninguna me funcionase. Dejo aquí las instrucciones para futuras referencias.

Si ejecutamos:

$ cvt 1440 900 75

Nos debe dar una salida similar a:


# 1440x900 74.98 Hz (CVT 1.30MA) hsync: 70.64 kHz; pclk: 136.75 MHz
Modeline "1440x900_75.00"  136.75  1440 1536 1688 1936  900 903 909 942 -hsync +vsync

Ahora, usando lo que aparece a la derecha Modeline, ejecutamos:

$ xrandr --newmode "1440x900_75.00"  136.75  1440 1536 1688 1936  900 903 909 942 -hsync +vsync

A continuación, ejecuta xrandr para saber cómo está identificado tu monitor (puede ser VGA1, CRT1 o similar). Una vez localizado, ejecuta:

$ xrandr --addmode CRT2 "1440x900_75.00"

Para establecer esta resolución, accedemos a través del menú de Gnome: Sistema -> Preferencias -> Monitores (si no usas Gnome, debes ir a las propiedades del monitor). Elegimos la resolución 1440×900 (16:10) y tasa de refresco 75 Hz. Para guardar la configuración, pulsamos en “Hacer predeterminado”. Nos pedirá la contraseña de administrador y finalmente hacemos click en “Aplicar”.

Mostrar metadatos de música, imágenes y pdf en Nautilus

Intentando organizar un poco los artículos en PDF que tengo, me he dado cuenta que sería útil poder visualizar el autor y el título del mismo en el navegador de archivos de Gnome (Nautilus).

Buscando en Google he encontrado que ya existía algo similar, pero que solo servía para música e imágenes. Es una extensión que se llama nautilus-columns (hebra en Ubuntu Forums). Al ver que estaba hecha en python me he puesto a modificarla para añadirle soporte de PDFs. No ha resultado muy complicado gracias a la librería pyPdf.

Podéis descargar el script en http://pastebin.com/WxspTtvL

Son necesarias las siguientes dependencias:

# apt-get install python-nautilus python-mutagen python-pyexiv2 \
python-kaa-metadata libnautilus-extension1 python-pypdf

Una vez instalado, tenéis que activar los campos Title y Artist, para mostrar el título y el autor, respectivamente.

Editado: si usáis Ubuntu, podéis descargar la extensión con esta nueva modificación desde el repositorio oficial.


$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt-get update
$ sudo apt-get install nautilus-columns
$ nautilus -q

Uso del comando date en cron

Si queremos crear un fichero de log con el resultado de un script que vamos a lanzar periódicamente usando cron, conviene tener en cuenta un detalle de sintaxis.


$ crontab -e

# m h  dom mon dow   command
00 03  * * * /ruta/script.sh > /ruta/fichero_<code>date +\%y_\%m_\%d

.log

Esto sería un ejemplo de la lista de tareas de cron, si os fijáis en el detalle de

date +\%d_\%m_\%y

se han escapado los símbolos de %. Esto se explica perfectamente en el man 5 crontab, pero lo escribo aquí para no olvidarme y por si de paso le sirve a alguien más.

The ‘‘sixth’’ field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the crontab file. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input. There is no way to split a single command line onto multiple lines, like the shell’s trailing “\”.

Más información: cron y date.