Pestañas

domingo, mayo 05, 2013

Un poco de software libre para cosas cientificoides

Pues nada, voy a resumir unas cuantas cosas útiles para aquellos que quieran hacer analizar datos o escribir cosas cientificoides usando software libre.

Dos de los programas más útiles a la hora de hacer cálculos y analizar datos usando software libre son R y Octave. R es especialmente útil para cálculos estadísticos. Ni experiencia con R es muy limitada, apenas lo he utilizado en serio nunca, pero sí que me he peleado para instalarlo.

Un tutorial rápido de R es este y un libro de estadística online que puede ayudar bastante este. Para instalar R en Ubuntu se puede hacer esto. Un poco de detalle sobre la instalación, porque no es del todo trivial.




Hay que añadir la siguiente línea a archivo /etc/apt/sources.list:

deb http://cran.case.edu/bin/linux/ubuntu precise/

Añadir la key:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9


Después instalar:

sudo apt-get update sudo apt-get install r-base

Casi al final del proceso debería verse un mensaje tal que así:

Setting up r-base-dev (2.15.1-1precise2) ...

Si no se ve eso, hacer lo siguiente:

sudo apt-get install r-base-dev

Para instalar paquetes dentro de R, hay que iniciar con sudo: sudo R Y entonces pueden hacerse, por ejemplo: install.packages("psych")

Una GUI para R puede ser Rkward

sudo apt-get install rkward


*******************

El otro programa del que quiero hablar es Octave, que es la versión libre de Matlab y que algunos recomiendan encarecidamente usar en lugar de este último. A mí no me gusta usar ninguna GUI con Octave, prefiero trabajar con texto. Lo primero es desinstalar QtOcatve, si es que está instalado. Luego, crear un archivo llamado .octaverc en el home y luego editarlo de y que contenga la siguiente línea: edit editor "gedit %s" Hecho esto, puede usarse gedit como editor por defecto para Octave. Hay plugins para gedit para lenguajes de programación, entre ellos Octave.

Problemas para instalar: Ubuntu 11.10 solo tiene acceso a octave 3.2, que está muy desactualizado. Esta version da errores con algunos paquetes importantes como el que se usa para filtrado de señales (ver esto y esto). Si se tiene una versión antigua de Ubuntu hay que actualizar entonces a la version de octave que se quiera (3.6) a mano, o por repositorios si se está en la version 12.04 de Ubuntu.

Los programas de análisis de señales no me funcionan en ningún caso. He probado tanto a instalar octave 1.6 a mano en un Ubuntu 11.10 como a través de repositorios en 12.04 y luego añadir los paquetes necesarios descargando y añadiendo directamente en octave:

pkg install general-1.3.2.tar.gz
pkg install miscellaneous-1.2.0.tar.gz
pkg install struct-1.0.10.tar.gz
pkg install optim-1.2.2.tar.gz
pkg install data-smoothing-1.3.0.tar.gz

y aparece siempre el mismo error:

error: `regdatasmooth' undefined near line 23 column 24


Habría que probar con una instalación limpia de Octave en el último Ubuntu, y a ver qué pasa. Esto no lo he hecho, tengo los Ubuntus totalmente desactualizados.

Una limitación importante de Octave es que no se pueden leer archivos de datos de más de 2 Gb a menos que se use Linux 64 bits (ver esto, esto, esto y esto). Para comprobar esto hay que escribir:

a = zeros(1024,1024,1024);

Debería dar error salvo en una versión de Linux 64 bits. Si funciona, es que se puede leer el archivo y se puede hacer tal que así (como en C) si es codigo en binario:

p = fopen("XXX.xyz"); p2 = fread(p); 

**************

Ahora, después de analizar, analizar y analizar, habrá que escribir algo, digo yo.

Podemos usar LibreOffice junto con un corrector gramatical y una base de datos para incluir referencias (Zotero). Para escribir fórmulas matemáticas podemos usar este plugin de Latex en Libreoffice. A mí este plugin me da bastante problemas, la ventana donde se ponen las fórmulas a veces sale de un tamaño y a veces de otro.

Cosas de LaTeX: este aplicación para usarlo con GMail y aquí se pueden descargar distintas plantillas. Una aplicación interesante, pero comercial, es este servicio para escribir en LaTeX de forma colaborativa. Lo malo es que es de pago siu se quiere mantener un poco de privacidad (documentos protegidos por contraseña, etc)

Miscelánea: una cosa que es útil es tener una terminal dentro del propio explorador, para ¿publicar resultados negativos? Y una camiseta friqui. Hala, a otra cosa.