Foobnix un reproductor de música sencillo

Cuando usaba Windows uno de mis programas favoritos para escuchar música era foobar2000, es un reproductor excelente porque no consume muchos recursos, es sencillo de usar, bastante personalizable, reproduce una gran cantidad de formatos y tiene una apariencia limpia, sin detalles pesados que le quiten estabilidad al programa y casi sin restricciones; personalmente me gusta la gran cantidad de opciones que tiene para configurarlo, por ejemplo el manejo con el teclado. Es casi perfecto para mi excepto que no se instala en linux de manera nativa.

Así que buscando por la red por alguna opción para linux de mi reproductor de música favorito, sin usar emulación o virtualización, encontré Foobnix. Foobnix tiene un entorno parecido al foobar2000 pero nada que ver, son completamente diferentes Foobnix está programado en Python y wxPython por lo que se requiere tenerlos instalados para que funcione.

Instalación en Slackware:

Hay que descargar las fuentes de su sitio oficial y ejecutar los siguientes comandos, primero para extraer el archivo comprimido hacer:

$ tar -xvzf foobnix_2.5.23o.tar.gz

Luego entrar al directorio creado y ejecutar el instalador de Python:

$ cd foobnix_2.5.23
# python setup.py install

Las dependencias que hay que tener instaladas son:

chardet la cual después de descargar las fuentes hay que ejecutar los siguientes comandos para su instalación:

$ tar -xvzf python2-chardet-2.0.1.tgz
$ cd python2-chardet-2.0.1
# python setup.py install

simplejson, también se instala ejecutando los siguientes comandos después de realizar la extracción:

# cd simplejson-2.1.6
# python setup.py install

gst, esta dependencia se descarga de SlackBuilds del sitio http://slackbuilds.org/repository/13.37/python/gst-python/ y se instala de la manera tradicional en Slackware:

$ cd gst-python/
# ./gst-python.SlackBuild
# installpkg /tmp/gst-python-0.10.21-i486-1_SBo.tgz

Finalmente se tiene instalado en Slackware:

foobnix

Foobnix instalado en Slackware

La instalación en Slackware la realicé hace tiempo por lo que la versión probablemente no es la más reciente.

Instalación en Arch Linux

En Arch Linux se encuentra disponible en AUR, por lo que su instalación es con yaourt tal y como sigue:

$ yaourt -S foobnix

El Foobnix no tiene tantas opciones como el foobar2000 pero tiene una interfaz sencilla y puede descargar canciones directamente de Internet con su opción de búsqueda. Es agradable que maneje las canciones por directorio directamente sin ordenar por artista y álbum, lo cual crea un desastre en colecciones tan desordenadas como la mía. En cuanto a su rendimiento no noté mucha diferencia en el consumo de recursos comparado con otros como el Amarok, yo creía que consumiría menos recursos y sería más rápido, sin embargo creo que por las características de mi computadora la diferencia no se notó mucho. A pesar de ello yo personalmente recomiendo Foobnix para aquellos que deseen probar algo nuevo.

Delimitar una cuenca hidrológica con herramientas OpenSource en Linux

Hace ya unas semanas me propuse encontrar la forma de hacer mis trabajos que regularmente hago con software privativo como ArcGIS, con herramientas Open Source y hacer una pequeña demostración de las capacidades que tienen tales aplicaciones y de la facilidad de su uso. En esta entrada presento un método para delimitar una cuenca hidrológica (Cuenca de Metztitlán en el estado de Hidalgo, México) usando la distribución ArchLinux, con la potencia de análisis que tiene el software GRASS mediante la facilidad que proporciona QuantumGIS.

Instalando las herramientas

La instalación de las herramientas necesarias para ArchLinux ya se explicó en un post anterior y realmente es muy sencilla, así que solo me limitaré a decir que las herramientas usadas son:

  • ArchLinux
  • GRASS 6.4
  • QGIS 1.7 (con el plugin para usar GRASS)
  • Además se necesita el Modelo Digital de Elevaciones de INEGI

Descargando el Modelo Digital de Elevaciones (MDE)

El modelo digital de elevaciones que se utilizó se descargó del sitio de INEGI siguiendo la ruta Geografía > Datos de relieve > Continental > Continuo de elevaciones mexicano CEM (2.0) – descarga > Descargar donde se abrirá una página en la que se tienen que introducir las coordenadas geográficas de los límites del área de estudio donde se encuentra la cuenca por delimitar. También es posible descargar la carta a escala 1:50,000 en la que se encuentra la cuenca, si se conoce el nombre de la carta (para saber la nomenclatura de las cartas visitar este sitio), y una tercera opción es descargar todo el estado en el que está la cuenca. Si se va a utilizar la segunda o tercera opción hay que asegurarse de que la cuenca se encuentre solo en una carta o en un estado, en caso de que la cuenca atraviese dos o mas cartas se pueden descargar todas ellas, lo mismo para cuando atraviesa dos o mas estados. Sin embargo es bueno descargar solo la porción que contiene la cuenca con la primera opción de descarga, la única complicación es saber las coordenadas extremas de la misma.

Descarga del MDE del sitio de INEGI

Descarga del MDE del sitio de INEGI

Cuando ya se hizo la selección de la descarga hay que dar clic en Procesar selección y se abrirá una página con información de la selección que se hizo anteriormente con un archivo comprimido en formato ZIP que contiene el MDE, hay que descargarlo dando clic derecho y seleccionando Guardar enlace como…. Se extrae el comprimido en un directorio y se encontrarán varios archivos:

  • bil
  • blw
  • hdr
  • prj

El archivo BIL es el que se puede abrir con QGIS y el programa lo reconocerá.

Crear una localización y conjunto de mapas

Para manejar la información y trabajar con GRASS es necesario crear una base de datos en donde se tenga el conjunto de capas deseadas. Una base de datos de GRASS es simplemente un directorio en el que se guardan locations (localizaciones) y mapsets (conjuntos de mapas). Se pueden tener todas las bases de datos que se deseen, para usar GRASS generalmente se crea una llamada grassdata en la carpeta personal: home/usuario.

En este caso se creará la base de datos con el plugin de QGIS-GRASS el cual permite usar los módulos de GRASS desde el ambiente amigable de QGIS. Para activar el plugin se abre QGIS y se va al menú Complementos > Administrar complementos… en donde se tiene que marcar el que se llama GRASS, yo personalmente activo todos.

Activando el plugin de GRASS en QGIS

Activando el plugin de GRASS en QGIS

Cuando se tenga activado el complemento se puede seguir con la creación de la base de datos. Dar clic en el icono Añadir capa ráster en la barra de menú de QGIS y buscar el ráster que se descargó de INEGI y seleccionar el archivo en formato BIL y abrirlo. Una vez cargado, para crear la base de datos selecciona el menú Complementos > GRASS > Nuevo directorio de mapas y se abrirá una ventana que pedirá crear o seleccionar una carpeta para la base de datos.

Creando una nueva base de datos

Creando una nueva base de datos

Se pide elegir el directorio para crear la base de datos, como se mencionó anteriormente se elige crear un directorio llamado grassdata en la carpeta de usuario.

Elegir directorio para la base de datos

Elegir directorio para la base de datos

Se crea una nueva location para ello simplemente se le da el nombre deseado, en este caso se le dió el nombre del estado en el que se encuentra la mayor parte de la cuenca.

Crear nueva localización

Crear nueva localización

Se elije el sistema de coordenadas de referencia,las cuales pueden ser coordenadas geográficas o elegir un sistema de proyección, en la imagen se muestra que el seleccionado es el sistema de proyección UTM con elipsoide y datum WGS84 y Zona 14N, la elección depende de los objetivos del usuario. Para ayudar a elegir la zona UTM se puede hacer uso de GoogleEarth, marcando el menú Ver > Cuadrícula y luego en Herramientas > Opciones y marcar Universal Transverse of Mercator y se mostrarán las zonas UTM en el globo. Elegir la que corresponda.

Selección de la proyección

Selección de la proyección

A continuación se elige la región predeterminada para trabajar, en este caso elegí la que corresponde para México de la lista.

Región predeterminada de GRASS

Región predeterminada de GRASS

Finalmente aparece una ventana en la que se pide el nombre del mapset o conjunto de mapas (layers) del usuario, introducir el nombre deseado (p. ej. el nombre del usuario) y luego se pide confirmación de los datos. Al aceptar se establecerá automáticamente la nueva localización y conjunto de datos por defecto para QGIS.

Con estos sencillos pasos se tiene una nueva base de datos creada, al principio parece difícil pero es cuestión de acostumbrarse a la manera en que GRASS organiza las cosas. Usando QGIS el proceso de creación de la base de datos ha resultado un poco más fácil que si se hubiera utilizado solo GRASS.

Importar ráster a la base de datos

Ya que se ha creado la base de datos, se puede notar que está vacía puesto que la capa ráster en formato BIL agregada al principio, está en otro directorio fuera de la nueva base de datos. Para importar esta capa o layer a la base de datos se utiliza la opción: Complementos > GRASS > Abrir herramientas de GRASS y en la ventana que aparece escribir y seleccionar el módulo r.in.gdal.

Importar ráster GDAL

Importar ráster GDAL

En la ventana del módulo que aparece seleccionar el ráster a importar y darle un nombre de salida. También puede consultarse el manual en inglés en la pestaña Manual. Para procesar la imagen dar clic en Ejecutar, y al terminar el proceso en Ver salida para que se agregue la capa al QGIS automáticamente. La capa importada se agrega al mapset de la base de datos por defecto, es decir la última creada.

Ráster importado y agregado de manera automática

Ráster importado y agregado de manera automática

Delimitación de la cuenca

Para la delimitación de la cuenca se utiliza el módulo r.watershed, abriéndolo desde Complementos > GRASS > Abrir herramientas de GRASS y seleccionándolo en la lista de módulos, aparecerá una ventana en la que se introducen los datos para necesarios.

Módulo r.watershed ejecutándose

Módulo r.watershed ejecutándose

Se elije como entrada el ráster de elevaciones importado llamado «mdemetztitlan» el cual aparece mientras esté marcada la casilla para ser visto en la sección Capas, todo el análisis se basará en este ráster. Un dato importante es el tamaño mínimo para cada cuenca el cual se tiene que introducir en número de celdas, para éste ejemplo se colocó un tamaño mínimo de 111 celdas, haciendo el cálculo como sigue:

Resolución del ráster de INEGI (una celda): 30m x 30m = 900 m2 entonces para una hectárea que equivale a 10,000 m2 entre 900 m2 = 11.11 celdas / ha. Entonces si se desean delimitar cuencas con un tamaño mínimo de 10 ha se tendrá que introducir un valor de 111.11 celdas.

Se pide introducir los nombres de las capas de salidas que para este ejemplo son:

acumulacion
Mapa de salida: El valor absoluto de cada elemento en esta capa de salida es la cantidad de flujo superficial que atraviesa la celda. Este valor será el número de celdas terreno arriba, más una, si no se especifica el mapa de flujo superficial. Si se da el mapa de flujo superficial, el valor estará en las mismas unidades que flujo superficial. Los números negativos indican que las celdas posiblemente tienen escurrimiento superficial desde fuera de la región geográfica actual. Por lo tanto, en celdas con valores negativos no se puede calcular con precisión el escurrimiento superficial y la producción de sedimentos.

drenaje
Mapa de salida: la dirección de drenaje. Proporciona el «aspecto» de cada celda medido en sentido contrario a las manecillas del reloj desde el Este. Multiplicando los valores positivos por 45 dará la dirección en grados que el escurrimiento superficial viajará desde la celda. El valor 0 (cero) indica que la celda es una zona de depresión (definida por el mapa de entrada de depresiones). Los valores negativos indican que el escurrimiento superficial se sale de los límites de la región geográfica actual. El valor absoluto de estas celdas negativas indica la dirección del flujo.

corrientes
Mapa de salida: segmentos de la corriente. Los valores corresponden a los valores de las cuencas hidrográficas. Pueden ser vectorizados después de un adelgazamiento (r.thin) con r.to.vect.

cuencas
Mapa de salida: da una etiqueta única para cada cuenca hidrográfica. A cada cuenca se le asignará un único número par entero y positivo. Áreas a lo largo de los bordes no pueden ser lo suficientemente grandes como para crear una cuenca hidrográfica exterior. Valores de 0 indican que la celda no es parte de una cuenca hidrográfica completa en la región geográfica actual.

Dar clic en Ejecutar y al terminar el proceso dar clic en el botón Ver salida para agregar automáticamente el resultado a QGIS. De manera adicional se muestra el comando que se ejecuta en el shell de GRASS, el cual se podría ejecutar si únicamente se usara ésta aplicación, en QGIS se pone con una finalidad informativa:

r.watershed elevation=mdemetztitlan@Eduardo threshold=111 accumulation=acumulacion drainage=drenaje stream=corrientes basin=cuencas

Resultando:


SECTION 1a (of 5): Initiating Memory.
SECTION 1b (of 5): Determining Offmap Flow.
SECTION 2: A * Search.
SECTION 3: Accumulating Surface Flow with SFD.
SECTION 4: Watershed determination.
SECTION 5: Closing Maps.
Finalizado correctamente

En la corrida anterior se usó un valor mínimo de cuencas muy pequeño y por ello como resultado se obtuvo una capa con muchas cuencas pequeñas, para delimitar la cuenca «principal» es conveniente entonces incrementar este valor y volver a ejecutar el módulo. Ahora para delimitar la cuenca general se usa un tamaño mínimo de cuencas de 10,000 ha ejecutando el módulo con un área de 111111 celdas se obtiene un resultado como el mostrado en la imagen:

Delimitación de la cuenca de Metztitlán

Delimitación de la cuenca de Metztitlán

Clic en el botón Ejecutar y cuando termine en el botón Ver salida para agregar automáticamente el resultado a QGIS. El código de la instrucción ejecutada en GRASS ahora es:

r.watershed elevation=mdemetztitlan@Eduardo threshold=111111 accumulation=acumulacion2 drainage=drenaje2 stream=corrientes2 basin=cuenca2

El resultado que se despliega es:

SECTION 1a (of 5): Initiating Memory.
SECTION 1b (of 5): Determining Offmap Flow.
SECTION 2: A * Search.
SECTION 3: Accumulating Surface Flow with SFD.
SECTION 4: Watershed determination.
SECTION 5: Closing Maps.

Finalizado correctamente

De esta forma se obtuvieron dos resultados, por una parte, al ejecutar el módulo con un tamaño mínimo de cuencas de 10 ha, se obtuvieron cuencas con una superficie pequeña y una red de corrientes detallada que más adelante servirá para generar una capa vectorial de escurrimientos superficiales, además de la capa de drenaje y acumulacion. Y por otra parte se obtuvo una delimitación general de la cuenca usando un tamaño mínimo de 10,000 ha, en este caso se nombraron las salidas con los mismos nombres que la anterior pero agregando un «2» al final quedando acumulacion2, corrientes2, cuenca2 y drenaje2.

Ahora para manejar de una forma más práctica la delimitación de la cuenca, se convierte la capa llamada cuenca2, de ráster a vectorial. Para hacer la conversión hay que abrir las herramientas de GRASS y hacer clic en la pestaña Lista de módulos en la que hay que seleccionar r.to.vect.area el cual sirve para convertir un archivo ráster a vectorial (polígonos).

Conversión de ráster a vectorial

Conversión de ráster a vectorial

El código de la instrucción es:

r.to.vect input=cuenca2@Eduardo output=cuencametztitlan feature=area -s

Se obtiene la siguiente información al ejecutar el módulo, notar que salen un par de advertencias pero nada de cuidado por lo pronto:

!Default driver / database set to:
!driver: dbf
!database: $GISDBASE/$LOCATION_NAME/$MAPSET/dbf/

Extracting areas...
Building topology for vector map ...
Registering primitives...
2 primitives registered
4192 vertices registered
Building areas...
1 areas built
1 isles built
Attaching islands...
Attaching centroids...
Number of nodes: 2
Number of primitives: 2
Number of points: 0
Number of lines: 0
Number of boundaries: 1
Number of centroids: 1
Number of areas: 1
Number of isles: 1
r.to.vect complete.
Finalizado correctamente

Al terminar la ejecución de la instrucción, se tiene la delimitación de la cuenca en vectorial. Resulta más práctico manejar áreas en formato vectorial como polígono que en vez de un ráster, además en mi opinión se le puede dar más presentación a un polígono.

Para terminar hay que hacer un sombreado de las elevaciones, conocido como hillshade que tiene fines estéticos. Para ello usar el módulo llamado r.shaded.relief que requiere lo siguiente: el modelo de elevaciones, en este caso mdemetztitlan; el nombre de la capa de salida, yo lo llamé sombreado; la altitud del sol en grados por arriba del horizonte, el azimut del sol en grados al Este del Norte y la exageración, los cuales dejé lo que pone por defecto. Dar en Ejecutar y al terminar en el botón Ver salida para agregar automáticamente la capa resultante a QGIS.

Creando el sombreado

Creando el sombreado

Listo ahora agregar un poco de transparencia para obtener el resultado final como se muestra en la imagen.

Delimitación de la Cuenca de Metztitlán

Delimitación de la Cuenca de Metztitlán

Generar corrientes

Para generar corrientes superficiales se utiliza la capa corrientes generada al principio del análisis puesto que la red es mucho más detallada que corrientes2, esta capa es ráster y hay que convertirla a vectorial. Antes de ejecutar la conversión es necesario procesarla por medio de la herramienta r.thin como se muestra en la imagen:

Adelgazando la capa ráster con r.thin

Adelgazando la capa ráster con r.thin

La capa de salida se llama rios misma que se convierte a vectorial con el módulo r.to.vect.line de GRASS. El procedimiento únicamente pide el nombre de la capa de salida que en este ejemplo de llama escurrimientos.

Generando escurrimientos superficiales

Generando escurrimientos superficiales

Cuando termine, se tendrán escurrimientos generados con un área de captación de 10 ha, para obtener menor o mayor detalle se puede repetir el proceso, cambiando el área mínima de la cuenca por generar.

Corrientes generadas

Corrientes generadas

Finalmente resta guardar el proyecto llendo al menú Archivo > Guardar proyecto como … y guardarlo en el directorio y con el nombre que se desee.

Conclusiones

Con este ejemplo pretendí hacer una pequeña demostración de la eficiencia y calidad que tienen las herramientas Open Source que existen para el manejo de sistemas de información geográfica, con las que se pueden obtener muy buenos resultados.

En mi opinión, en este pequeño «artículo» se pudo notar la potencia que tiene la aplicación GRASS por medio de sus módulos que hacen una gran cantidad de tareas y que además las hacen bien, sin embargo el uso de este paquete podría resultar complicado para usuarios principiantes que vienen de usar software privativo, por ello una buena opción es manejar los módulos de GRASS por medio de QGIS para facilitar la tarea.

Por último resta decir como profesionistas no podemos quejarnos de las herramientas libres que se ofrecen puesto que resultan bastante buenas, incluso algunas son mucho mejores que las soluciones de software privativo además, en mi opinión personal, académicamente es más conveniente usar aplicaciones en las que se pueda tener acceso al código fuente porque se puede saber exactamente que algoritmos de cálculo o modelación se usan, aparte de la ventaja de no tener que pagar costosas licencias por usar determinados paquetes de software.

Delimitación final de la Cuenca de Metztitlán

Delimitación final de la Cuenca de Metztitlán

¡Saludos y espero les sirva!

Fuentes:

http://earth.unibuc.ro/tutoriale/bazin-hidrografic-prin-QGIS-GRASS/
Manual de GRASS

NOTA: La cuenca no está completa pero sirve como ejemplo para la realización de la delimitación.

Configurar impresoras en ArchLinux

En mi trabajo utilizo dos impresoras, una HP LaserJet para los documentos sencillos y una XEROX Phaser para impresiones rápidas y planos en tamaño doble carta, y como los tiempos de hacer reportes finales estan por empezar decidí configurar las dos impresoras para usarlos con mi sistema ArchLinux. Ambas impresoras están conectadas en una red LAN y todas las computadoras de la red usan diferentes versiones de Windows. Antes usaba Slackware y no tenía ningún problema en agregar las impresoras de la red e imprimir, en el menú de KDE seleccionaba CUPS (Impresión) y se abría una interfaz gráfica en la que hacía toda la configuración de una forma muy simple. En Arch esta opción no la encontré disponible así que me dirigí a su Wiki en español y encontre la solución.

Primero instalé lo siguiente:

# pacman -S cups samba hplip cups-pdf

Y nada más, puesto que ya tenía instalado los paquetes de ghostscript y gsfonts. Instalé hplip por que una de las impresoras es de la marca HP y este controlador proporciona soporte para DeskJet, OfficeJet, Photosmart, Business Inkjet y algunos modelos de impresoras LaserJet. El otro controlador cups-pdf lo instalé por que permite configurar una impresora virtual que genera un PDF y eso es algo muy común en mi trabajo por lo que la opción me resulta bastante útil.

Además instalé lo siguiente:

# pacman -S foomatic-db foomatic-db-engine foomatic-db-nonfree

Foomatic es un sistema orientado a base de datos para integrar controladores de impresión de software libre con colas comunes en Unix.

Una vez que se han instalado los módulos inicié el demonio de cupsd:

# /etc/rc.d/cupsd start

Una vez hecho esto me dirigí al menú siguiente y se abrió la dirección http://localhost:631/ en mi explorador de internet (Firefox):

K > Sistema > Administrar impresión

En donde configuré mi impresora.

Adding Printers and Classes > Add Printer > Escribir "root" y contraseña

De la lista de impresoras que aparecen seleccioné la HP encontrada en la red. Al dar en Continue me apareció una página de configuración, escribí algo en Location y marqué la casilla de Share this printer y clic en Continue.

Lista de impresoras reconocidas en la red de la oficina es:

Lista de impresoras reconocidas

Lista de impresoras reconocidas

Como solo está disponible una impresora a la vez, aquí está la otra:

Otra lista de impresoras

Otra lista de impresoras

Ahora seleccionar la marca de la impresora, luego de la lista que aparece hay que seleccionar el nombre correcto de la que corresponda.

Seleccionar modelo de impresora

Seleccionar modelo de impresora

Finalmente hay que establecer las opciones estándar y listo se tiene la impresora instalada.

Opciones de la impresora

Opciones de la impresora

Para iniciar cupsd automáticamente lo agregué a la lista de demonios en el archivo /etc/rc.conf ejecutando el comando siguiente para abrirlo con el editor de texto kwrite:

$ kdesu kwrite /etc/rc.conf

Y agregué la opción cupsd la línea siguiente:

DAEMONS=(... otros demonios ... cupsd)

Bueno espero que a alguien le sirva esta información, de todas formas está se puede consultar la página que pongo al final de la entrada. Ambas impresoras me funcionan a la perfección, incluso mejor que cuando usaba Windows.

Saludos.

Fuente:

https://wiki.archlinux.org/index.php/CUPS_%28Espa%C3%B1ol%29

Instalando GRASS y QuantumGIS en Arch Linux

Bueno una de las razones por las que decidí dejar Slackware y usar una distribución que tuviera resolución de paquetes al momento de instalar aplicaciones fue por que frecuentemente tenía que estar instalando aplicaciones «robustas» atascadas de dependencias, muchas opcionales pero útiles al final, como GRASS y QuantumGIS (QGIS). Hace unas semanas instalé ambas aplicaciones en ArchLinux y el proceso fue sorprendentemente rápido para mi.

Primero hay que instalar GRASS puesto que yo lo utilizo como un complemento de QuantumGIS por medio del plugin grass-qgis. Para instalar GRASS solo hay que utilizar pacman de la manera siguiente:

# pacman -S grass

Lo cual instalará la versión 6.4 de GRASS.

GRASS instalado en GNU/Linux

GRASS instalado en GNU/Linux

Para QuantumGIS se utliza yaourt puesto que los repositorios están en AUR, pero antes hay que resolver el problema de una dependencia llamada qwt ya que QGIS funciona con la versión 5 y en mi sistema está la versión 6.
Primero eliminar la versión instalada:

# pacman -Rn qwt

Descargar el tarball de aquí dando clic en el link “tarball” y guardándolo, el archivo se llamará qwt5.tar.gz luego hay que descomprimirlo y se crea una carpeta llamada qwt5, esto creará dos archivos dentro de la carpeta y digamos que esos solo son archivos de configuración (ignoro su nombre correcto) lo que significa que no son las fuentes del programa. Entonces hay que descargar las fuentes del programa las cuales vienen en un archivo llamado qwt-5.2.2.tar.bz2, yo las encontré en este sitio, aunque puede que haya otros más convenientes.

Copiar el tarball con las fuentes (el archivo llamado qwt-5.2.2.tar.bz2) al directorio qtw5 creado y se tendrán tres archivos:

PKGBUILD
qwtconfigarchlinux.pri
qwt-5.2.2.tar.bz2

Abrir el terminal y llegar hasta ese directorio con el comando “cd”, en mi caso es así:

$ cd /home/eduardo/descargas/qwt5

Luego ejecutar:

$ makepkg -s

Lo cual creará un archivo con extensión pkg.tar.xz que hay que instalar:

$ sudo pacman -U qwt5-5.2.2-1-i686.pkg.tar.xz

Una vez hecho esto se procede con la instalación de qgis:

$ yaourt -S qgis

QuantumGIS instalado en ArchLinux

QuantumGIS instalado en ArchLinux

Listo ya se tiene instalado QuantumGIS en nuestro sistema.
Un saludo.

Desbloquear archivo PDF en Linux

Buscando por la red una forma de desbloquear archivos PDF que a veces no dejan que se copie texto o se imprima el documento, encontré esta página en donde encontré la solución a mi problema, la cual es la que describo a continuación.

Existe un programa llamado Freeware PDF Unlocker que como su nombre lo dice, sirve para desbloquear archivos en formato PDF que tengan protección contra copia. El programa originalmente funciona en Windows XP/Vista por lo que recuerdo, funciona mediante un ícono en el escritorio en el que hay que arrastrar y soltar con el ratón el archivo PDF protegido y genera uno sin la protección, lo que hace es ejecutar Ghostscript en un archivo de procesamiento por lotes.

Ghostscript es el programa intérprete por excelencia de documentos en formato PS (y también PDF). Permite presentar datos PS y PDF en la pantalla y además traducirlos de manera que puedan ser impresos en una impresora con capacidad gráfica mediante el uso del controlador de dicha impresora.

Aladdin Enterprises mantiene las nuevas versiones de Ghostscript hasta que alcanzan una cierta «edad», y luego las libera a la Fundación de Software Libre (FSF, Free Software Foundation) para que se distribuya como GNU Ghostscript. Estas versiones son las que se distribuyen «libres de cargo» en las distribuciones de Linux.

Dispone de una serie de dispositivos controladores para diversos tipos de impresora. Si en la línea de comandos del sistema operativo invocamos gs -h, nos aparecerá gran cantidad de información sobre la versión instalada de Ghostscript del ordenador que utilizamos, entre la que encontraremos los dispositivos controladores.

Dado que Ghostscript se encuentra disponible en linux, se puede modificar el script para que funcione en ésta plataforma, primero que nada hay que asegurarse de que se tiene Ghostscript instalado en el sistema, para ArchLinux se hace:

# pacman -Ss ghostscript

Y en mi caso obtengo:

extra/ghostscript 9.04-5 [instalado]
An interpreter for the PostScript language
extra/gsfonts 1.0.7pre44-2 [instalado]
Ghostscript standard Type1 fonts from URW

Como se puede ver ya lo tengo en mi sistema, si no se tiene pues hay que instalarlo:

# pacman -S ghostscript

Bueno ahora si hay que hacer el script, primero hay que crear un archivo para el script, yo lo hago con kwrite puesto que uso KDE:

$ kdesu kwrite /usr/local/bin/unlockpdf

NOTA: Hago esto con una cuenta de usuario normal (se puede ver el símbolo «$» en el comando) y usando el editor de texto kwrite, solo por la comodidad de trabajar en el ambiente X y no usar un editor en la terminal como vi o nano.

Colocar el siguiente código en el archivo:

#!/bin/sh
if [ "$1" = "" ]
then echo Comando: unlockpdf [archivo_pdf] && exit
fi
echo
echo Desprotegiend­o $1... Espere un momento.
echo
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile="$1_unlocked.pdf" "$1"
echo
echo Terminado. Compruebe que existe un archivo llamado "$1_unlocked.pdf".
echo

NOTA: checar los saltos de línea, sobretodo en la línea que empieza con «gs» es contínua y no hay saltos de línea.

Una vez hecho ésto se guardan los cambios en el archivo y se le dan permisos de ejecución (ahora si como root, véase el símbolo #):

# chmod +x /usr/local/bin/unlockpdf

Si se desea tener el script disponible para todos los usuarios hay que colocar la opción «a» del chmod como sigue (véase la página man para mas información):

# chmod a+x /usr/local/bin/unlockpdf

Ahora para usar el script tipo «comando» hay que escribir en el terminal:

# unlockpdf [archivoPDF]

Donde [archivoPDF] es el nombre del archivo PDF al que se desea quitar la protección, el cual debe de estar en el directorio actual, después de un rato dependiendo del tamaño del archivo se obtendrá un archivo llamado «[archivoPDF]_unlocked», que es el PDF desprotegido. A mí me ha servido mucho, espero les sirva.

¡Saludos!

Fuentes:

http://www.improvisa.com/index.php?name=News&file=article&sid=413
http://es.wikipedia.org/wiki/Ghostscript

Empezando con Arch Linux

Empiezo un nuevo camino en el mundo de GNU/Linux, ahora mis aventuras son con una nueva distribución: Arch Linux. Antes solía usar Slackware y todo iba muy bien, tenía estabilidad en mi computadora y configuraba todo a mi antojo. Aunque desde mi punto de vista, Slackware no está hecho para ser una distribución de escritorio fácil de usar en un sistema de producción, porque hay que invertirle su tiempo para tener el sistema funcionando bien y eso no era problema para mí hasta que empecé a ver mi falta de productividad debido al tiempo que pasaba configurando el sistema.

Mi único punto en contra de Slackware es el tiempo que hay que invertirle en la instalación de paquetes robustos que tienen una gran cantidad de dependencias y en la configuración del sistema en general, para tener un sistema de escritorio productivo. Para mí esto fue determinante, puesto que no podía permitirme estar horas descargando, compilando e instalando las dependencias de los paquetes que necesitaba, por lo menos no en mi trabajo. Intenté usar slapt-get y Swaret para solucionar mi problema con lo tardado de las dependencias, pero no tuve éxito. Así que decidí cambiar de distribución, necesitaba una que me hiciera más productivo y con ello me refiero principalmente a tener un manejador de paquetes que resuelva dependencias.

Al momento de decidir cambiar mi Slackware por alguna otra distro, me pasó por la mente Ubuntu. Alguna vez tuve instalado Ubuntu en una máquina virtual y la verdad no me gustó del todo, por que oculta muchas cosas y me pareció lento, además creo que es muy diferente a Slackware y no quería pasar tiempo acostumbrándome a algo nuevo y diferente, sorry.

Alguna vez leí este blog y me pareció que ArchLinux era una opción buena, de hecho empecé a buscar información en la red y encontré muy buenas referencias e información acerca de esta distribución. Algo que me pareció interesante es que ambas comparten la misma filosofía así que sentí que era de mis mejores opciones pues me facilitaría la resolución de dependencias, es veloz, minimalista y me dejaría configurar el sistema a mi antojo, aunque no tanto como Slackware pero definitivamente me incliné por Arch para mi próximo sistema.

Al día de hoy llevo algunas semanas con Arch y me va de maravilla. Lo uso tanto en el trabajo como en la casa, como sistema de producción y de entretenimiento, es un buen sistema por que tiene estabilidad, velocidad, fácilidad de configuración, un sistema manejador de paquetes que resuelve dependencias llamado pacman.

Arch es una distribución para usuarios con conocimientos intermedios y avanzados de Linux, ya que por default no instala un sistema gráfico, sino que únicamente se instala un sistema dal estilo linea de comandos (al principio) y se pueden ir instalando los paquetes que uno quiera, personalmente siento que mi experiencia con Slackware me fue bastante útil para esto.

Para obtener Arch se puede ir a su sitio oficial, en su página de descargas y la instalación se describe paso a paso en su Wiki en español donde se puede consultar una guía, hasta la fecha me pareció que está un poco desactualizada pero sirve como una buena guía.

Me llevó una noche instalar Arch en mi laptop, cuidando una partición de mi disco duro en la que tengo mis archivos del trabajo, música, videos, etc. Le instalé KDE y algunas aplicaciones básicas. Algo que me gustó es que pacman permite instalar las versiones más actuales de las aplicaciones, es algo así como tener Slackware-current, y mantener todo el sistema al día con un solo comando de slackpkg.

El primer día con ArchLinux le instalé los siguientes paquetes con pacman, a lo cual debo agregar que es bastante sencillo y rápido:

  • KDE (con VLC)
  • Wicd
  • Firefox
  • Thunderbird
  • Google Earth
  • Amarok
  • K3b
  • Adobe Reader
  • LibreOffice
  • Xpdf
  • Oracle VM VirtualBox
  • Play On Linux (instalé Office 2007 para la oficina)
  • Xhat IRC

Al día siguiente de instalarlo me lo llevé al trabajo y funcionó a la perfección. Claro que con el tiempo he ido instalándole más cosas.

Para mí ArchLinux ha sido una buena distribución, en en todo este tiempo que llevo usandola me ha hecho más productivo que mi antiguo y buen Slack ya que me da mas tiempo para trabajar en vez de pasarme la vida instalando paquetes, con sus respectivas dependencias, y configurando el sistema.

Saludos.