Está en la página 1de 30

GRATIS Versin EE de

64 bits. Ms informacin en pgina 3.

AUTOMATIZACIN
TRUCOS Y HERRAMIENTA PARA ADMINS AGOBIA

NMERO 85 P.V.P 6,95


CANARIAS P.V.P 7,05

AUTOMATIZACIN
HERRAMIENTAS Y TRUCOS PARA ADMINS AGOBIADOS
I Recuperacin de fallos con Pacemaker I Distribucin de software simplificada I Monitorizacin de ficheros de logs

SCRIBUS
Diseo y edicin de folletos con Software Libre

HERRAMENTAS ANDROID
Las alternativas a Eclipse y al SDK oficial

Casa en Red
Conecta tu hogar a la red con el hardware libre de Arduino

IMAGEMAGICK
Aprende a procesar imgenes desde la lnea de comandos
00085

PARKING
Utiliza Perl y OpenStreetMap para encontrar aparcamiento
WWW.LINUX- MAGAZINE.ES

8 413042 594505

4.95
Euros

DVD

D est sticarlo DVD tu DVD diagno s para es que


e.e Si cre agazin nux-m li o. @ d u v d o n ev mos un te envie

a O? stado, escrbenosue S O U T q e l o para EFEC en ma

ROSA
2012 MARATHON
n el DVD de este nmero de Linux Magazine traemos ROSA, la distro rusa derivada de Mandriva que quiere empezar su particular Revolucin de Octubre en tu ordenador. Por un lado, el objetivo de ROSA es convertirse en un sistema operativo estticamente atractivo, con un escritorio moderno y usable, compatible con el Linux Standard Base y con aplicaciones con soporte de larga duracin, ideal para entornos corporativos. Pero lo ms revolucionario de ROSA es su escritorio: derivado de KDE y con una esttica particular (pero muy agradable), viene con muchas funcionalidades aadidas, como RocketBar, que sustituye a la barra convencional de KDE. Tambin incluye SimpleWelcome, una especie de buscados/selector/lanzador de aplicaciones similar a lo que podemos encontrar en Gnome 3 o Unity y TimeFrame, un nuevo visualizador de contenidos que clasifica los medios y ficheros cronolgica o semnticamente, entre otros muchos cambios. La versin incluida en el DVD es la Extended Edition, que trae todos los codecs y plugins, incluyendo aquellos que pueden tener restricciones de distribucin en segn que pases. I

Arranque
Este DVD contiene una versin de ROSA 2012 Marathon de instalacin. Para empezar a usar tu Linux, inserta el DVD en el reproductor y reinicia el ordenador. Si no aparece el men del DVD, tienes que ajustar la BIOS para arrancar desde el disco. Para hacerlo, normalmente has de pulsar una tecla durante las primeras fases del arranque del ordenador (habitualmente F2 o Supr), buscar el men que permite cambiar la secuencia de arranque de dispositivos y colocar el lector de DVDs en el primer lugar de la secuencia. Despus, guarda los cambios y sal de la herramienta de configuracin para que se reinicie el arranque. Como cada BIOS es diferente, recomendamos consultar la documentacin del fabricante para realizar esta operacin.

RECURSOS
[1] ROSA: http://www.rosalab.com/

WWW.LINUX- MAGAZINE.ES

EDITORIAL

MUTACIONES
C
ada uno tiene sus ideas y sus convicciones de cmo debe ser el mundo. Pero conviene recordar que esas ideas y convicciones slo funcionan perfectamente en el teatro de tu propia cabeza. En cuanto las exteriorizas invariablemente topan con La RealidadTM. Lo cosa se complica si tenemos en cuenta que, s, el mundo es infinitamente complejo, pero no ayuda el que lo percibamos de manera imperfecta. Lo que llega a penetrar hasta nuestra conciencia es la sombra de algo tamizada por un velo y filtrada por una cortina. Y encima, el disco duro que ha de registrarlo todo, tiene serios problemas de corrupcin de datos. Inmediatamente tras recibir cualquier input, nuestro cerebro se pone a trabajar sobre l para que cuadre con nuestras convicciones y prejuicios, intentando reducir al mnimo el nivel de disonancia cognitiva. A pesar de que la evidencia es que nuestra mente es muy buena en esa tarea (es decir, que no conseguirs convencer a alguien de nada de lo que no quiera ser convencido por muchas pruebas que le presentes la gente oir lo que quiere or y ver lo que quiere ver), una vez tuve la idea de intentar paliar el problema. Pensaba que Internet slo haba agravado la situacin (recordad que soy lo suficientemente mayor como para haber pasado la mayor parte de mi vida sin conexin a la red a ninguna red) y sitios como Barrapunto, Mename, Digg y Reddit, sitios que se alimentaban de las contribuciones de los visitantes, se haban convertido en cmaras de ecos, dnde slo las tergiversaciones de las noticias que mejor se integraban con la mente-colmena dominante salan publicadas, alimentando as un crculo vicioso de voy a este sitio porque publican cosas que coinciden con mi percepcin del mundo y este sitio coincide con mi percepcin del mundo porque voy a l. Para romperlo, como el problema lo haba exacerbado la tecnologa, pens que la solucin tambin podra ser tecnolgica. Tomando prestado conceptos de juegos de estrategia tipo SimCity, donde el programa juega un rol no slo mostrando los resultados de las acciones del jugador, sino de vez en cuando interviniendo de manera ms notoria con desastres naturales u otros cataclismos, pens que sera interesante crear un sitio de noticias alimentado por usuarios, pero que implementara en el backend un parseador de textos y una serie de agentes que buscaran textos de temticas similares a los sometidos. La palabra clave de lo anterior es similares, porque el backend buscara textos relacionados por temtica, pero con diferentes perspectivas, con el fin de matizar o incluso contradecir a lo posteado originalmente. El objetivo era que el motor enfrentara a los visitantes con textos que retaran sus prejuicios e ideas preconcebidas. El motor actuara como un fantasma en la mquina, como el de SimCity, soltando de vez en cuando un Godzilla en forma de texto discordante para destrozar aquello que antes hubiera sido un remanso de pacfico consenso ideolgico. Lo bamos a llamar Mut-Mut, por Mutatis Mutandis (se cambiar lo que se deba cambiar sobre todo la opinin del lector) y llegamos lo suficientemente lejos en el desarrollo como para saber que era factible crear un modelo funcional con la potencia de computacin que aporta un cluster mediano. Asimismo, imaginamos un montn de funcionalidades para dotar a Mut Mut de la inteligencia necesaria para participar de manera gil en la conversacin: transferencia en mesh entre diferentes muts, clasificacin de textos entre los ya almacenados para un acceso ms rpido, anlisis de los comentarios en busca de recursos, almacenamiento lquido de recursos fiables Llegamos al punto de darnos cuenta de que podramos crear un MM especializado en un tema concreto simplemente dndole de comer una serie de textos sobre el tema en cuestin y otorgndole un peso especial a esos textos, ya que todos los siguientes se interpretaran en funcin de ellos. Pero me desvo. La cuestin es que queramos tambin evitar la interpretacin de hechos en trminos de blanco o negro. Toda historia, pensamos, tiene al menos tres lados: la tuya, la suya y la de la cmara de seguridad. Y a menudo muchos ms. Queramos que el

Nos sentimos orgullosos de nuestros orgenes como publicacin, que se remonta a los primeros das de la revolucin Linux. Nuestra revista hermana, la publicacin alemana Linux Magazine, fundada en 1994, fue la primera revista dedicada a Linux en Europa. Desde aquellas tempranas fechas hasta hoy, nuestra red y experiencia han crecido y se han expandido a la par que la comunidad Linux a lo ancho y largo del mundo. Como lector de Linux Magazine, te unes a una red de informacin dedicada a la distribucin del conocimiento y experiencia tcnica. No nos limitamos a informar sobre el movimiento Linux y de Software Libre, sino que somos parte integral de l.

motor de Mut-Mut mostrara todos los lados que encontrara para dar al visitante una visin global de un evento, una visin que no le permitiera refugiarse en medias verdades que le reafirmaran en sus creencias. Pensamos que sera interesante que la cosa fuera sostenible para no tener que recurrir a donativos o subvenciones pero, cul era el potencial modelo de negocio? Jugueteamos con la idea de adaptar MMs como sistemas expertos para colectivos especializados, como abogados o mdicos. Tambin pensamos que, como un servidor Mut-Mut no podra funcionar muy bien en algo que no fuera un cluster, el alojamiento a lo Wordpress tambin sera una opcin. Pero lo principal era enfrentar a la gente a hechos que podran poner en cuestin sus creencias y ah se nos agotaron las ideas. Porque, quin quiere que le desengaen?, quin est dispuesto a admitir que sus principios no tienen base en la realidad? o quin quiere leer algo que le ofende? Hace falta tener un carcter especial para cambiar de opinin cuando tus convicciones se ponen en entredicho. I Y es que la realidad no vende.

Paul C. Brown Director

Nmero 85

WWW.LINUX- MAGAZINE.ES

CONTENIDOS Magazine sollte n 85 hier stehen COVER STORY Linux Schlagwort

PORTADA
10 Estar All
Cuando un nodo de un clster falla, el software de alta disponibilidad Pacemaker lanza los servicios en otro nodo. Una funcionalidad menos conocida de Pacemaker es la capacidad de poner los servicios fallidos de nuevo en pie en el gestor del clster.

DESARROLLO
22 Peinando Logs
Los archivos de log contienen todo lo que ocurre en un sistema Linux y los servicios que se ejecutan. Logcheck y Logsurfer filtran los eventos ms importantes para el administrador e, incluso, pueden disparar una reaccin adecuada de forma automtica.

39 Servicios en Oferta
Tastypie nos permite crear una API REST para que cualquiera pueda hacer uso de nuestros datos o servicios.

43 Asistente de Aparcamiento
Los voluntarios que mapean las calles de cada barrio para el proyecto OpenStreetMap prestan verdadera atencin a los detalles, tales como zonas de aparcamiento. Los scripts de Perl de este mes consultan estos datos.

28 Eureka!
Los autores de Linux Magazine comparten sus mejores trucos de automatizacin. Descubre cmo evitar que un script destruya tu mquina, distribuir paquetes en sistemas Gentoo y cmo sincronizar archivos de modo seguro.

PRCTICO
16 Entrega de Paquetes
Mantener todos los clientes de Linux en un entorno empresarial al da puede ser todo un reto logstico. Muchos administradores apreciarn un buen sistema de distribucin de software, especialmente si es una herramienta libre que no suponga un problema para el presupuesto del departamento IT.

31 Doblar y Volar
Un folleto con dibujos aburridos y con un diseo pobre puede estropear el marketing ms cuidado. Scribus te permite crear publicaciones informativas con un toque profesional.

ADMINISTRACIN
49 El Tiempo

DESARROLLO
35 Desarrollo Alternativo
Eclipse y el SDK de Android son una buena forma de comenzar a desarrollar aplicaciones para Android, pero pronto encontraremos que hay cosas que no se pueden hacer con el kit inicial. Vemos algunas libreras y herramientas que nos hacen la vida ms fcil.

LINUX MAGAZINE
03 04 81 81 82 DVD Linux Magazine Editorial Eventos Informacin de Contacto Prximo Nmero

Para averiguar qu tiempo hace, el administrador de sistemas y columnista de esta revista, Charly Khnast, no tiene que salir de casa y mojarse, que se lo lleve el viento, congelarse de fro o achicharrarse con el sol.

50 Un Asunto Pegajoso
Desarrollar aplicaciones multiplataforma puede ser difcil y conllevar errores. Ofrecemos algunos consejos para facilitar el trabajo.

Nmero 85

WWW.LINUX- MAGAZINE.ES

ADMINISTRACIN
52 El Bus Gratuito
Un Bus de Servicio Empresarial (ESB) es una autopista centralizada para los datos en entornos con arquitecturas orientadas al servicio. Un buen ESB se encarga de la orquestacin, del enrutamiento de los mensajes y del anlisis de los eventos. Vamos a presentar tres opciones libres de ESB.

LINUX USER
70 Ms All de Rotar
ImageMagick es conocido como la navaja suiza del procesamiento de imagen desde la lnea de comandos, aunque va ms all de las tpicas tareas de rotacin y re-escalado.

HARDWARE
58 Hogar en Red
El concepto de Internet de las cosas, a pesar de parecer algo del futuro, est vivo en nuestro entorno y creciendo cada da ms

LINUX USER
65 Clase Maestra
Con TuxGuitar y TiMidity podemos escribir y componer canciones sin que sea necesario saber leer msica. Tambin podemos practicar, reproducir nuestras propias composiciones y aadir ritmos de acompaamiento de instrumentos.

75 Total Recoll
Recoll es un front end amigable para el motor de bsqueda de texto completo Xapian, que usa filtros simples para indexar contenido y administrar ficheros.

COMUNIDAD
78 Konsultorio
Klaus Knopper, el creador de Knoppix, vuelve un mes ms dispuesto a ayudar a nuestros atribulados lectores. En este nmero: Pantalla Oscura, Problema de Red en Unity e Hipervisor de Mquina Virtual.

talles e d s para m 3 0 p r Ve

WWW.LINUX- MAGAZINE.ES

Nmero 85

NOTICIAS

NOTICIAS
RIP Andre Hedrick
Puede que no os suene el nombre de Andre Hedrick, pero ha jugado un rol fundamental en uno de los episodios oscuros de la historia de la informtica, consiguiendo impedir casi en solitario la aplicacin masiva de una tecnologa que habra quitado el control a los usuarios de sus propios discos duros. CPRM es un tecnologa que desarroll IBM en el ao 2000 y que crea una capa lgica encima del firmware del disco duro y que controla todos los aspectos del copiado, borrado y movimiento de los ficheros. De esta manera, se quita el control a los usuarios sobre sus discos duros, impidiendo, por ejemplo, copiar o modificar ciertos archivos, con el fin en teora de obstaculizar la piratera. Esto supona un serio problema para realizar copias de seguridad, tanto personales como corporativas y Hedrick, que por aquel entonces trabajaba en SuSE como mantenedor de los susbsistemas ATA, lo identific como lo que era: un atentado de la industria de medios contra la libertad de los usuarios. Para entender la dimensin del asunto, de adoptarse esta tecnologa como estndar, cosa que se estaba considerando, habra supuesto la conversin de todo PC en appliance, algo como un TiVo, TDT o consola de videojuegos, un aparato con capacidad de almacenamiento, pero en el cul el usuario tendra poco poder de decisin sobre lo que se almacenaba, durante cunto tiempo y qu se podra copiar a otra parte. En vez de un ataque frontal, como ingeniero, Hedrick se puso a trabajar en una alternativa que los fabricantes no pudieron rechazar. Como profundo conocedor de la industria de los discos duros, su propuesta exiga un PIN, que el usuario deba proporcionar para la activacin de CPRM y que impeda que una aplicacin no controlada, lo activara. A este respecto, dijo en un foro: Si Linux deshabilita CPRM y [descubro que] lo rehabilita JAVA-REALMENTE-DSCOLO o APLICACINLICENCIADO-EN-LA-RED le meter un pleito al fabricante del disco duro, al OEM y a cualquiera de los otros sucios y podridos !@#$% que daen a Linux y mi reputacin como desarrollador de sistemas operativos. [2] CPRM se utiliza hoy en da como tecnologa de cifrado en tarjetas SD que se usan en dispositivos que, a todo los efectos, son ordenadores (como los citados ms arriba), pero que se comportan ms como electrodomsticos. Sin embargo, el PC se libr de una tecnologa restrictiva gracias a Andre Hedrick, ingeniero, desarrollador de SuSE y colaborador del kernel de GNU/ Linux. Otros mritos de Hedrick incluyen haber descifrado el protocolo de control de cargadores APS para permitir que funcionaran con Linux y haber sido uno de los mayores expertos en recuperacin forense de datos del mundo. Andre Hedrick se suicid el pasado viernes 13 de julio y ha dejado esposa y I cuatro hijos.

Gabe Newell (VALVe): La falta de juegos frena a Linux


Gabe Newell, su empresa VALVe y sus productos estn mucho en los mentideros Linux (incluyendo los nuestros) ltimamente. Y es que no pasa un da sin que la empresa de Newell descubra una nueva filiacin con el sistema operativo libre. Hoy la noticia viene del propio Gaben, que durante una cena patrocinada por Covert & Co., Google Ventures y Perkins Coie, ofreci unas declaraciones muy cndidas sobre Linux y el nuevo sistema operativo de Microsoft. El gran problema que frena a Linux radica en los juegos. La gente no se da cuenta la importancia que tienen los juegos para impulsar la compra por parte de los consumidores dijo en un momento de la entrevista. Nos gustara que fuera an ms sencillo ejecutar los 2.500 juegos que hay en Steam en el sistema Linux. Se trata de una estrategia preventiva. Creo que Windows 8 va a ser una catstrofe para todos los implicados en el espacio del PC y destruir los mrgenes

de un montn de gente. Si eso ocurre, estara bien tener alternativas para paliar esa eventualidad. Naturalmente, Newell habla desde la perspectiva del PC de escritorio (ya que Linux no parece tener ningn problema en su adopcin en servidores y dispositivos mviles), ya que insiste una y otra vez que este espacio es el mejor para desarrollar sus juegos. El CEO de VALVe no es un extrao para Microsoft, ya que trabaj en la empresa redmondesa durante 13 aos. Sin embargo, por sus declaraciones, parece creer firmemente en la popularizacin de GNU/Linux como sistema operativo de escritorio. Ser el ao en que Steam llegue a Linux el ao del escritorio del que hablan las leyendas? I

RECURSOS RECURSOS
[1] Completa descripcin de la entrevista con Newell: http://allthingsd. [1] Necrolgica de Hedrick en The Reg-

ister: http://www.theregister.co.uk/ 2012/07/26/andre_hedrick/?2


[2] Hedrick expresa su opinin sobre el CPRM: http://www.linuxtoday.com/

com/20120725/valves-gabe- newellon-the-future-of-games-wearable-co mputers-windows-8-and-more/

developer/2001030400120NWHWKN

Nmero 85

WWW.LINUX- MAGAZINE.ES

PORTADA Monitorizacin de Ficheros Log

Monitorizacin de logs con Logcheck y Logsurfer

Peinando Logs
Los archivos de log contienen los registros de lo que ocurre en un sistema Linux y los servicios que se ejecutan. Herramientas como Logcheck y Logsurfer filtran los eventos ms importantes para el administrador e incluso, pueden desencadenar una reaccin adecuada de forma automtica. POR THILO UTTENDORFER Y VALENTIN HBEL

a mayor parte de los administradores de sistemas se basan en los archivos de log debido a que son una importante fuente de seguridad y de solucin de problemas. La informacin del sistema por lo general se encuentra en varios archivos de registro diferentes en cada equipo y un nico especialista en TI puede tener que controlar docenas o incluso, cientos de ordenadores. En este contexto, la antigua tcnica de peinar los archivos de registro de forma manual en busca de informacin sospechosa hace mucho tiempo que perdi sentido. Muchos administradores utilizan herramientas de filtrado de texto tales como grep, para

buscar advertencias o eventos especficos. Grep y sus homlogos buscadores de texto siguen desempeando un papel importante en la red, pero si estamos buscando un poco de alivio a la tediosa tarea de monitorizar archivos de log, es posible que deseemos probar una herramienta de anlisis de registros.

La sencilla herramienta de anlisis de logs, Logcheck [1], rene datos de varios registros en un nico archivo y filtra los datos relevantes a travs del uso de expresiones regulares. Por su parte, Logsurfer [2], un poco ms sofisticada, ofrece algunas caractersticas adicionales para organizar la informacin del log. Tanto Logcheck

Figura 1: Logcheck extrae mensajes crticos y los enva por correo al administrador.

22

Nmero 85

WWW.LINUX- MAGAZINE.ES

Monitorizacin de Ficheros Log PORTADA

como Logsurfer permiten pre-configurar una respuesta automtica a los avisos del sistema y otras entradas crticas del registro.

Presentacin de Logcheck
El archivo leme de Logcheck ofrece esta breve descripcin de esta sencilla pero verstil herramienta: Logcheck compara las entradas de log recientes con una serie de conjuntos de patrones de coincidencia de egrep que las etiquetan como urgentes o las filtran rutinariamente y enva por correo electrnico los resultados al administrador . Una vez que configuramos Logcheck, ste vigila constantemente nuestros archivos /var/ log/ syslog y /var/ log/ auth.log , filtrando los sucesos sin importancia y enviando por correo un resumen de los eventos ms importantes al administrador del sistema (vase la Figura 1). Con el cliente de correo adecuado y los filtros correspondientes, podemos almacenar los registros por hosts o grupos en carpetas. Esta tcnica nos da una visin general de todos nuestros sistemas de un slo vistazo, sin necesidad de acceder a ellos. Tras el escenario, Logcheck usa el programa Logtail para monitorizar y ensamblar las entradas del registro. (Logtail suele ser parte del paquete de Logcheck). Logtail recupera la informacin de log de varios registros y muestra solamente las lneas de un archivo que no se han mostrado con anterioridad. Para ello, Logtail crea un segundo archivo llamado filename.offset para cada registro y guarda la informacin del inodo del archivo, tomando nota de la posi-

cin que se ha ledo con anterioridad. Cada hora, en el cronjob bajo /etc/ cron.d/ logcheck del paquete de instalacin, se envan por correo los mensajes que Logcheck ha extrado de los registros desde la ltima llamada. Adems, la herramienta enva un correo electrnico similar al arrancar el sistema. El Listado 1 muestra el aspecto de un mensaje de Logcheck. El contenido de los archivos en /etc/ logcheck/ ignore* especifica qu mensajes filtra y elimina la herramienta de sus informes a enviar por correo. El Listado 1 contiene dos lneas sobre las que recibiramos correo desde Logcheck. La primera lnea contiene un mensaje del servidor de correo Qmail, que se queja de una conexin fallida con el servidor SMTP del receptor. La segunda entrada reporta que el usuario Logcheck ha utilizado con xito la herramienta su . Ambos mensajes son dignos de enviar por correo al administrador. Logcheck se centra en el filtrado de mensajes y el envo por correo electrnico de logs. En particular, los sistemas basados en Debian tienen paquetes de Logcheck con una configuracin por defecto muy til y filtros para muchos servicios (por ejemplo, para el servidor MySQL). Esto significa que podemos configurar un prctico sistema de filtrado de logs con poco esfuerzo extra. Algunos administradores recordarn una alternativa a Logcheck denominada Logdigest. Este programa funciona de manera similar a Logcheck, pero no ha tenido desarrollo activo desde noviembre de 2009. Los desa rrolladores han fracasado por el

momento en implementar la nueva versin de la herramienta en Python. Pero si an as todava quieres investigar Logdigest, podemos encontrar algo de material de lectura en su pgina de SourceForge [3].

Logtail
Cuando monitorizamos archivos de log y se nos notifican eventos, parece lgico reaccionar a estos acontecimientos con acciones definidas en un proceso automatizado. El asistente de Logcheck, Logtail, tambin se puede utilizar para reaccionar ante eventos especficos. Para ello, crea un cronjob que se comprueba peridicamente en un archivo de log. La salida puede ser filtrada con una herramienta como Grep o un script en Perl. Cuando el programa detecta un patrn especfico, puede desencadenar una accin, como un sencillo mensaje de correo electrnico al igual que en Logcheck. Sin embargo, adems de enviar correo electrnico, se pueden poner en marcha nuevos servicios o ejecutar otros comandos. El Listado 2 muestra un cronjob que reinicia el demonio de MySQL si este falla.

Veloces Logriders
Una gran desventaja de Logcheck y Logtail es que se necesita llamarlos regularmente a travs de cron, por lo que los programas no pueden reaccionar de inmediato. Si estamos buscando algo con ms respuesta, podemos probar Logsurfer [2]. El programa Logsurfer, que se basa en la herramienta de anlisis de logs Swatch, toma un archivo de registro y recupera las nuevas entradas en tiempo real. Debido a que Logsurfer est escrito en C, tambin ofrece ventajas de rendimiento en comparacin con el shell script de Logcheck. Mientras que Logcheck simplemente filtra los mensajes de registro conocidos con el uso de una expre-

Listado 1: Correo desde Logcheck


01 Feb 20 23:12:14 jupiter qmail: 1329775934.816939 delivery 19626: deferral: 02 Sorry,_I_wasnt_able_to_establish_an_SMTP_connection._(#4.4.1)/ 03 Feb 20 23:16:23 jupiter su[15621]: Successful su for logcheck by root

Listado 2: Cronjobs con Logtail


01 * * * * * root /usr/sbin/logtail /var/log/syslog | grep -q mysql exited unexpected && /etc/init.d/mysql restart

Listado 3: Reglas de Logsurfer


01 <I>Match_regex Not_match_regex Stop_regex Not_stop_regex Timeout <I>[continue]<I> Action [...]<I>

WWW.LINUX- MAGAZINE.ES

Nmero 85

23

PORTADA Monitorizacin de Ficheros Log

sin regular, Logsurfer utiliza reglas muy potentes. La sintaxis bsica, como se muestra en el Listado 3, es la siguiente: Match_regex especifica la expresin regular que debe cumplir la lnea de registro en la que estamos buscando. El segundo campo, Not_match_regex , nos permite excluir patrones especficos. Si Stop_regex encuentra una coincidencia, Logsurfer elimina la regla de la lista actual de las reglas activas. El campo Not_stop_regex describe los criterios de exclusin. La entrada Timeout define cunto tiempo debera permanecer activa la regla. Si especificamos un 0 aqu, el perodo de validez es infinito. El parmetro opcional continue indica a la herramienta Logsurfer que debera analizar la lnea actual si se aplica una regla previamente definida. Por defecto, Logsurfer deja de leer una lnea despus de la primera

coincidencia. Se puede utilizar un guin ( - ) para marcar los campos no utilizados.

Tabla 1: Palabras clave de accin


Valor ignore Significado Ignora esta lnea Ejecuta el program a Ejecuta el programa y pasa la lnea a stdin Crea un contexto

exec pipe open delete

Acciones

Cierra un contexto La Tabla 1 report Ejecuta el programa y pasa la informacin de contexto a stdin muestra las palabras clave rule Crea una nueva regla potenciales de Action para el ltimo campo. Podemos El Listado 4 contiene un ejemplo asignar una accin distinta para cada sencillo de una regla que enva un regla que reaccione de manera difemensaje con la lnea de log corresrente ante diferentes eventos. Adems pondiente para un evento fuera de la de ejecutar programas arbitrarios con memoria. La primera expresin regulas acciones exec y pipe, la accin open lar coincide con las lneas que contiecrea reglas dirigidas por contexto. El nen la cadena kernel: Out of memory . programa almacena todas las lneas En este caso, la regla enva un correo que coincidan con una expresin regual usuario root. El asunto del correo lar. La accin report las genera ms utiliza variables del patrn de bstarde como un bloque completo de queda para aadir la ID del proceso entradas de registro contiguas. ( $2 ) y otro tipo de informacin ( $3 ). Adems, la regla entrega la lnea de log completa a la entrada estndar del Listado 4: Enviar Correo programa mailx . 01 kernel: Out of memory: Kill process ([0-9]*) (.*)- - - 0 Un ejemplo ms complejo se mues02 pipe /usr/bin/mailx -s \Warning! Out of memory! Process $2 killed: tra con las tres reglas del Listado 5. $3\ root Detectan sesiones SSH y muestran todos los datos de la sesin si el usuario introduce una contrasea Listado 5: Contexto de Logsurfer incorrecta. Si no sucede nada 01 ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]: extrao, dentro de la sesin SSH (es .* - - - 0 continue decir, si la contrasea es correcta), 02 open $2 - 5000 86400 3600 03 report /bin/cat $2 las normas descartan los mensajes de 04 log. 05 ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]: Failed password .* - - - 0 06 report /bin/cat $2 07 08 ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]: Connection closed.* - - - 0 09 delete $2

Contextos como un Buffer de Memoria Intermedia


Como mucho, la herramienta Logcheck podra filtrar Failed password en este escenario, pero no podra devolver los detalles acerca de la sesin de SSH. Como alternativa, podramos filtrar todas las lneas de log de SSH, pero esto nos dara demasiada informacin intil y hara des a parecer las lneas realmente importantes. Logsurfer resuelve este problema con el uso de contextos, que nos permiten almacenar temporalmente las lneas y volver a utilizarlas cuando sea necesario. Las tres reglas del Listado 5 slo tienen sentido en la combinacin dada. En un sistema basado en Debian, podemos aplicarlas al archivo de log /var/ log/ auth.log . Por razones

Figura 2: Con tan slo tres reglas con Logsurfer podemos monitorizar los intentos de inicio fallido de sesin en el puerto SSH.

26

Nmero 85

WWW.LINUX- MAGAZINE.ES

Monitorizacin de Ficheros Log PORTADA

de simplicidad, generan como salida toda la informacin directamente en lnea de comandos, pero sera posible realizar otras acciones, como el envo de un mensaje. La primera lnea identifica todas las lneas de log del demonio SSH. La accin open abre un nuevo contexto en el que la regla utiliza el PID (entre corchetes despus de sshd ) en la sesin actual de SSH para identificar las lneas pertenecientes a una sesin SSH. Tambin define los tiempos de espera: si vencen, las normas tambin generan como salida los datos de la sesin. Lo importante aqu es la palabra clave continue para asegurarnos de que las siguientes reglas tienen realmente efecto. Si una lnea de log contiene una entrada Failed password (lnea 5), este ejemplo genera como salida todo el contexto de la sesin SSH en la lnea de comandos. De nuevo, el PID de la sesin SSH se utiliza para identificar el contexto. La regla de la lnea 8 elimina el contexto de nuevo cuando se cierra la sesin SSH. La Figura 2 muestra la salida de estas reglas en una aplicacin prctica. Si usamos el modo tail , no debemos olvidarnos de enviar la seal SIGHUP al proceso de Logsurfer si utilizamos las herramientas de Logrotate u otras similares para crear un nuevo archivo de log. Desafortunadamente, Logsurfer slo est disponible como un paquete de cdigo fuente: no existen binarios listos para usar en las distribuciones de Linux ms populares, pero compilarla e instalarla deben estar dentro de las capacidades de cualquier administrador de sistemas. Uno de los autores ha preparado por su cuenta algunos paquetes para distribuciones basadas en Debian [4].

elaboradas o ejecutar comandos arbitrarios. La seguridad es un aspecto muy importante en herramientas como Logsurfer que analizan el registro del sistema en tiempo real y pueden ejecutar scripts o programas arbitrarios. Si partes del archivo de log se pasan a programas externos como parmetros o por medio de la salida estndar, como en el primer ejemplo de este artculo, un atacante potencialmente podra manipular el programa. Los usuarios de estas herramientas por tanto necesitan endurecer las medidas de seguridad con los parmetros que transfieren y la entrada estndar. Para ms informacin sobre cuestiones de seguridad, podemos revisar la pgina man de logsurfer.conf [5].

Sencillos o Sofisticados
Como muestran los ejemplos anteriores, los administradores de sistemas pueden ahorrarse una cantidad enorme de tiempo mediante la automatizacin del proceso de anlisis de archivos de log y si as se desea, de sen cadenar acciones. Adems de las herramientas descritas aqu, muchas otras piezas tiles de software pueden automatizar nuestra respuesta ante eventos especficos. En nuestro laboratorio, hemos descubierto que Logsurfer fue el ms flexible de estos programas y la solucin con ms opciones. La sintaxis puede parecer bastante complicada a primera vista, pero nos da una ventaja en escenarios complejos. Como siempre, si se estudia el material disponible y se est abierto a nuevas ideas, os podis ahorrar una gran cantidad de trabajo montono en la administracin de vuestros sistemas. I

No olvide la Seguridad
Sin importar cul sea la herramienta de anlisis de logs que utilice, debe recordar siempre que no son siempre el sistema y sus servicios los que crean los mensajes de log, sino tambin usuarios externos con sus acciones. Un atacante podra, por ejemplo, causar el desbordamiento del buzn del administrador, echar abajo sistemas con expresiones cuidadosamente

RECURSOS
[1] Logcheck y Logtail: http://alioth. debian.org/projects/logcheck/ [2] Logsurfer: http://www.crypt.gen.nz/ logsurfer/index.html [3] Logdigest: http://sourceforge.net/ projects/logdigest [4] Paquetes de Logsurfer para Debian y Ubuntu: http://devel.uttendorfer.net/ logsurfer [5] Pgina Man de logsurfer.conf: http:// www.crypt.gen.nz/logsurfer/ man_logsurfer_conf.html

WWW.LINUX- MAGAZINE.ES

Nmero 85

27

Ms del 30% de descuento respecto al precio de portada: Consigue 12 nmeros por 5490 Euros y todos los DVDs Gratis!

A diferencia de otras publicaciones, Linux Magazine no llenar tu buzn de recordatorios para que renueves tu subscripcin. sta se renovar automticamente cada ao. Recibirs una confirmacin aproximadamente 30 das antes del final de tu periodo de subscripcin, pero no se requiere que hagas nada para seguir suscrito.

No te pierdas Linux Magazine nunca ms! La subscripcin te asegura que recibas los conocimientos Linux de ms alta calidad en tu domicilio cada mes.

Si por cualquier motivo decides dejar de leer Linux Magazine, puedes cancelar tu subscripcin en cualquier momento. Te abonaremos el precio de todos los nmeros que no hayas recibido. Sin preguntas, sin fechas de cancelacin, sin problemas.

Linux Magazine es algo ms que una revista de Linux. Patrocinamos grupos, congresos, proyectos y eventos relacionados con el Software Libre. Suscribindote a Linux Magazine garantizas que podamos seguir apoyando al Software Libre all donde haga falta.

Android DESARROLLO

Ms all de Eclipse y del SDK de Android

Herramientas Android
Eclipse y el SDK de Android son una buena forma de comenzar a desarrollar aplicaciones para Android, pero una vez que hayamos empezado, encontraremos que hay cosas que no se pueden hacer con el kit inicial. Vamos a ver algunas libreras y herramientas que nos harn la vida ms fcil. POR DAVE MACLEAN

supuesto, de vez en cuando compruebas si hay actualizaciones) al menos tienes un buen libro de desarrollo con Android adems de esta revista y te encuentras muy ocupado programando aplicaciones por diversin o por trabajo. Es eso todo lo que necesitas? La respuesta depender de si deseas que tu vida sea ms fcil o no. Aunque el SDK de Android [2] y las ADT [3] tienen bastante que ofrecer, no lo hacen todo y antes o despus, querrs realizar algo que no podrs hacer con lo que tienes. En este artculo mostraremos algunas herramientas y libreras que puedes utilizar en el desarrollo de tus aplicaciones Android. En la mayora de los casos, los elementos que vamos a describir han sido creados especialmente para Android.

Guava
La primera librera que deberas conocer es de Google y se llama Guava [4]. De hecho, algunos programas de ejemplo de Android que han sido publicados por Google, se basan en Guava, que es una librera de clases que sirve para cubrir bastantes huecos. Digamos, por ejemplo, que quieres realizar alguna operacin sobre cadenas de caracteres y no puedes encontrarla en la clase estndar

String. O, quizs, quieras comprobar argumentos para validarlos. Guava es la respuesta que andas buscando. Es de cdigo abierto, robusta y estable. Para acceder a la librera, slo tienes que ir a la pgina de descarga, donde podrs encontrar un fichero ZIP que contiene el fichero JAR de Guava, la documentacin de referencia de la API junto con la documentacin de uso de Guava con ProGuard (el ofuscador de aplicaciones Android) y otros documentos de ayuda. Vamos a presentar algunos ejemplos tiles de clases: com.google.common.io.LineReader Proporciona un mtodo readLine() para cualquier objeto java.lang.Readable, tales como BufferedReader, FileReader o StringReader. Y muchas otras clases relacionadas con los flujos y los ficheros. com.google.common.base.Preconditions Proporciona mtodos tiles para crear asertos sobre un parmetro que deben ser ciertos y lanza excepciones del tipo IllegalArgumentExcept, conteniendo mensajes con sentido, en el caso de que no se cumpla el aserto. Por ejemplo, en vez de escribir
if (count <= 0) { throw new U IllegalArgumentException(U

Kirsty Pargeter, 123RF

s que ya has instalado el SDK de Android, ests utilizando Eclipse [1] con las herramientas de desarrollo de Android (ADT y por

WWW.LINUX- MAGAZINE.ES

Nmero 85

35

DESARROLLO Android

debe ser positivo: + count); }

podra escribir lo siguiente:


checkArgument(count > 0, U debe ser positivo: %s, count);

La clase Preconditions tambin tiene mtodos para comprobar valores null; comprobar posiciones en arrays, listas o cadenas; comprobar estados correctos y mucho ms. La operacin bsica consiste en evaluar una expresin y lanzar la excepcin apropiada con una cadena explicativa en el caso de que esa expresin se evale como falsa. Dicho de otro modo, valida el aserto y se queja si no es verdadero. Como muchos programadores no realizan una comprobacin adecuada de parmetros, esta funcionalidad al menos facilita la escritura de cdigo de modo que los programadores puedan realizar estas comprobaciones. com.google.common.base.Splitter Complementaria a la clase Joiner, la clase Splitter proporciona un mtodo para separar cadenas y similares que acta sobre Strings o sobre instancias de objetos CharSequence y que las puede separar haciendo uso de toda clase de separadores diferentes. El resultado es un Iterable de elementos. ste es un ejemplo en el que se separa una cadena en sus elementos, pero se desea que el resultado sea limpio y no devuelva cadenas vacas:
private static final Splitter U mySplitter = Splitter.on(,)U .trimResults()U .omitEmptyStrings(); Iterable<String> tokens = U mySplitter.split(U one, ,three, four,);

Guava en el ordenador y extraer el fichero JAR. Luego, en el proyecto de Eclipse, pulsas con el botn derecho del ratn en el nombre del proyecto y elige Build Path y luego Configure Build Path... En el cuadro de dilogo que aparece, pulsa en la pestaa Libraries y luego en el botn Add External JARs Navega hasta el fichero JAR de Guava, seleccinalo y pulsa Open. Por ltimo, haz clic en OK y listo.

API de Facebook
Facebook ofrece una API para permitir a los desarrolladores integrar sus programas con las funcionalidades de Facebook. Aunque siempre puede uno ponerse a estudiar detenida- Figura 1: Iconos para Android usando la imagen de mi perro. mente la documentacin blecer en Android para que la aplicacin hasta el mnimo detalle, es mejor utilizar funcione correctamente. Lo mejor que una librera especficamente creada para puedes hacer es comenzar con uno de los integrar las aplicaciones Android con Faceejemplos de aplicaciones de Facebook book. incluidos en la descarga. Uno de ellos es En el sitio web de la librera de Android muy simple y obtiene datos muy rudimenpara Facebook [5] se puede encontrar un tarios, el otro puede capturar flujos de fichero descargable con el cdigo fuente Facebook (tales como feeds de noticias). El que encapsula la API de Facebook por appID debe conectarse al fichero App.java. medio de una serie de clases. Adems, vieTngase en cuenta que estas aplicaciones nen ejemplos de aplicaciones y una copia de ejemplo tambin incluyen grficos de de la aplicacin Facebook que se puede Facebook para los iconos y los botones. cargar en un emulador. A pesar de que las instrucciones de FaceEn la pgina de los desarrolladores de book explican cmo crear un proyecto Facebook [6] hay disponible noticias e Eclipse separado para las clases corresponinformacin directa de Facebook. La docudientes y luego ligar la aplicacin con este mentacin de cmo funciona internaproyecto separadamente, en mi opinin mente es especialmente buena, ya que me resulta ms fcil importar las clases explica el modelo de datos y la forma de correspondientes dentro del proyecto que navegar a travs de los grafos sociales y he creado a partir de uno de los proyectos otras caractersticas propias del sitio social. de ejemplo. En mi nuevo proyecto, esta Para utilizar la librera se necesita una operacin produjo dos paquetes: uno para cuenta verificada de Facebook, lo que los ficheros del ejemplo y otro para los quiere decir que Facebook debe validar ya ficheros de la clase correspondiente. A parsea el nmero de telfono o una tarjeta de tir de aqu, hay que renombrar los paquecrdito asociada al nombre de usuario de tes de ejemplo con el nombre de los Facebook, ya que quiere tener algo tangipaquetes de la aplicacin. El nico proble que lo ligue a sus desarrolladores. Tamblema que tuve fue que una de las referenbin hay que registrar la aplicacin en el cias a los recursos en FbDialog.java, que sitio antes de poder integrarla. Facebook no se resolvi hasta que aad una sentencrear un ID interno para la aplicacin que cia import con el nombre del paquete de se necesitar para poder conectarse a la mi nueva aplicacin. API. Tambin hay que aceptar los trminos Para que tu aplicacin pueda entenderse de servicio para poder definir la aplicacin. con Facebook, an debers realizar alguUna vez que se hayan completado estos nas tareas ms de integracin. Desde el pasos, podrs ver el perfil de la aplicacin, lado de Facebook, en el App Settings, bajo que incluye el appID que habr que esta-

El cdigo anterior asigna a tokens [one, three, four]. Se pueden utilizar otros trucos para crear un separador que pueda utilizar cualquier conjunto de caracteres como elemento separador o una cadena de multicaracteres como un separador. nicamente he mencionado unas pocas clases de las disponibles en la librera Guava, pero merece la pena echarle un vistazo a todas las dems. Si decides utilizar la librera Guava en tu aplicacin para Android, aadirla es realmente fcil. Primero hay que descargar el fichero ZIP de

36

Nmero 85

WWW.LINUX- MAGAZINE.ES

Mobile and Devices, hay un campo llamado Android Key Hash. Aqu tienes que introducir tu certificado de publicacin como un valor hash. Para obtener este valor, las instrucciones dicen que tienes que realizar la siguiente operacin desde la lnea de comandos:
keytool -exportcert U -alias androiddebugkey U -keystore ~/.android/U debug.keystore | openssl U sha1 -binary | openssl base64

Estas instrucciones son correctas si ests desarrollando tu aplicacin y probndola en el emulador o en tu propio dispositivo personal, pero no para cuando se distribuya la aplicacin. Hay que exportar el certificado utilizado para firmar la versin del producto de la aplicacin, que espero que sea en un almacn de claves diferente con un alias tambin diferente. Adems, a menos que no te encuentres en un Mac o en una mquina Linux, no tendrs todava los programas de OpenSSL. OpenSSL es relativamente fcil de instalar en Linux usando un comando como:
sudo apt-get install openssl

En el caso de Windows o de Mac, hay que buscar un instalable que proporcione el comando openssl. Deberas poder encontrar uno de forma gratuita, pero tendr varias posibilidades de eleccin dependiendo de su configuracin. Una vez que la aplicacin de ejemplo de Facebook se est ejecutando correctamente, podrs modificarla como desees. O, simplemente, puedes aprender de ella la forma de incorporar las funciones de Facebook en tu propia aplicacin.

Utilidades de Interfaz de Usuario de Android


Ahora, veamos cmo podras crear los grficos para tu aplicacin, incluyendo no slo tus iconos (uno para cada resolucin de pantalla soportada), sino los grficos de los mens, las notificaciones y las pestaas. Y no te olvides de los grficos de alta resolucin de Android Market. Aunque siempre puedes acudir a algn paquete comercial, como Photoshop o uno libre como GIMP [7], tambin puedes echarle un vistazo al Android Asset Studio, disponible en la pgina de los Android UI Utilities [8]. El Android Asset Studio est basado en web y proporciona numerosas funcionalidades para trabajar con colores, mrgenes, imgenes, textos y, en definitiva, hacer que las imgenes tengan un buen aspecto para poder utilizarlas en las aplicaciones para Android. Simplemente hay que pulsar un botn para descargar un fichero ZIP con el fichero grfico en las diversas resoluciones que requiere Android, lo que es mucho ms fcil que tener que estar cambiando las resoluciones de forma manual. El nico inconveniente es que Android Asset Studio est diseado para ejecutarse en el navegador Chrome, aunque puede que funcione en otros navegadores, aunque no hay ninguna garanta de ello. El Android Asset Studio est limitado, en el sentido de que no se pueden crear las imgenes directamente, de modo que habr que utilizar Photoshop o GIMP para crear el fichero inicial de la imagen. Android Asset

DESARROLLO Android DESARROL

Studio sirve para obtener los ficheros de las imgenes finales para la aplicacin. Para hacerse una idea de su fcil uso, la Figura 1 muestra el resultado de cargar una imagen de mi perro Max y simplemente pulsando algunos botones, se centra la imagen en el crculo. Despus, slo con pulsar el botn Download, tendremos disponibles las imgenes. Probablemente hayas visto que hay otros dos recursos en la pgina de Android UI Utilities: la herramienta Pencil y las plantillas de iconos para Photoshop. La herramienta Pencil es un plugin para Firefox, pero tambin puede ejecutarse de forma independiente. Esta herramienta permite crear dibujos y especialmente prototipos de GUI fcilmente. Si utilizas Photoshop para tus grficos, es posible que desees utilizar la herramienta de plantillas de iconos. Para obtenerla, hay que hacer clic en la pestaa Downloads en la parte superior de la pgina de Android UI Utilities y buscar los ficheros ZIP de las plantillas de iconos.

una lista de errores conocidos, la documentacin y el cdigo fuente. Habitualmente el cdigo fuente se puede ver directamente desde el navegador: utiliza la pestaa Browse que se encuentra en Source. Tambin se puede utilizar el sistema Subversion para descargar el cdigo fuente al ordenador de trabajo. Si an no tienes instalado Subversin, puedes descargarte una versin para tu sistema operativo [12]. Tngase en cuenta que tambin hay disponible un plugin para Eclipse.

ACRA
Como ya habrs visto, Android Market puede proporcionar algunos informes de errores a los desarrolladores, pero esa cantidad de informacin no est tan detallada como podra esperarse. Afortunadamente, la librera ACRA puede serte de gran ayuda [13]. ACRA enva informacin a un lugar central cada vez que tu aplicacin falle. Este lugar sola ser una hoja de clculo de Google Docs que ha debido crearse con anterioridad. Posteriormente se aadi el soporte para poder enviar la informacin a otros lugares, como a un script personalizado en Internet o incluso por correo electrnico. Para implementar la opcin de Google Docs, los pasos a seguir son bastante simples. Primero, debes crear una hoja de clculo en Google Docs en tu cuenta de Google a partir de la plantilla proporcionada fjate en la clave del formulario. Luego, tienes que aadir la librera a tu proyecto, usando la misma tcnica descrita para la librera Guava. A continuacin, en el Listado 1 se muestra cmo extender android.app.Application para aadir una anotacin a la definicin e inicializar la librera ACRA en onCreate(). Dicho de otro modo, se va a aadir una clase nueva al proyecto llamada MyApplication, cuya superclase es android.app.Application. Luego, hay que hacer que se parezca al Listado 1.

Ms Proyectos para Android


Hemos descrito un par de proyectos del sitio Project Hosting de Google, pero hay muchos ms proyectos disponibles aqu y todos son de cdigo abierto. Para buscar los relacionados con Android, se puede utilizar la URL proporcionada en los recursos [9] y siguientes. Esta bsqueda devolver miles de proyectos que estn de alguna manera ligados a Android, pudindose aadir palabras claves para refinar los resultados. El resultado es un gran tesoro repleto de aplicaciones y de cdigo fuente a partir de los que se puede mejorar los conocimientos sobre Android. Un ejemplo interesante es ZXing, la aplicacin para cdigos de barra [10] o csipsimple, una aplicacin SIP para realizar llamadas VoIP [11]. Cada proyecto tiene pestaas que nos muestran diferentes aspectos de los mismos. Normalmente, descargas, una wiki,

Como la mayora de las opciones de notificacin envan informacin a travs de Internet, habr que aadir un permiso para android.permission.INTERNET al fichero AndroidManifest.xml. Y, mientras se modifica el fichero del manifiesto, no debes olvidar cambiar el nombre de la aplicacin a MyApplication. Y eso es todo! Ahora, cada vez que la aplicacin falle en el dispositivo, aparecer una nueva entrada en la hoja de clculo, incluyendo multitud de detalles acerca de la configuracin del dispositivo, adems de los detalles de la excepcin. Como la aplicacin manda informacin por Internet, lo correcto es informar a los usuarios de ello para que sean conscientes antes de instalar la aplicacin. Hemos proporcionado algunos ejemplos de libreras y herramientas de inters para desarrollar aplicaciones para Android. Ahora es un momento excitante para ser programador de Android, de modo que espero que mi contribucin haya aumenI tado esa excitacin.

RECURSOS
[1] Eclipse: http://www.eclipse.org/ [2] Android SDK: http://developer. android.com/sdk/index.html [3] Herramientas de Desarrollo para Android: http://developer.android. com/sdk/eclipse-adt.html [4] Guava: http://code.google.com/p/ guava-libraries/wiki/Release08 [5] Libreras Guava: http://code.google. com/p/guava-libraries/ [6] Libreras Android para Facebook: http://developers.facebook.com/ docs/reference/android [7] Pgina para programadores de Facebook: http://developers.facebook.com [8] Android Asset Studio: http://code. google.com/p/android-ui-utils/ [9] Bsqueda de proyectos para Android: http://code.google.com/ hosting/search?q=label:Android [10] ZXing: http://code.google.com/p/zxing/ [11] csipsimple: http://code.google.com/ p/csipsimple/ [12] Descarga de Subversion: http://subversion.apache.org/ packages.html [13] Librera ACRA: http://code.google.com/p/acra/

Listado 1: Modificando su Aplicacin para ACRA


01 @ReportsCrashes(formKey = su clave del formulario) 02 public class MyApplication extends Application { 03 @Override 04 public void onCreate() { 05 // La siguientes lneas inicializan ACRA 06 ACRA.init(this); 07 super.onCreate(); 08 } 09 }

38

Nmero 85

WWW.LINUX- MAGAZINE.ES

Tux Guitar LINUX USER

Componer canciones con TuxGuitar

Clase Maestra
Con TuxGuitar y TiMidity podemos escribir y componer canciones sin que sea necesario saber leer msica. Tambin podemos practicar, reproducir nuestras propias composiciones y aadir ritmos de acompaamiento de instrumentos. POR VINCZE-ARON SZABO
omo la memoria de ninguno de nosotros es perfecta, necesitamos guardar una grabacin de nuestras ideas cuando las desarrollamos. En msica, cuando componemos nuevas melodas durante aos, es buena

idea escribirlas de tal modo que podamos recuperarlas de nuestro archivo personal cuando pase el tiempo. Antes para llevar esto a cabo necesitbamos comprar partituras en nuestra tienda de msica local. Hoy, sin embargo, gracias al software, las cosas resultan mucho ms fciles. El programa TuxGuitar [1] es una gran solucin para los usuarios de Linux que tocan la guitarra y que buscan una herramienta que les ayude a refrescar sus memorias. Este programa nos permite almacenar nuestras composiciones de guitarra bien como una partitura o como tablaturas una notacin alternativa para msica que representa un mstil de guitarra y para reproducir los resultados cuando hemos completado la entrada. De este

WWW.LINUX- MAGAZINE.ES

Nmero 85

65

LINUX USER Tux Guitar

Figura 1: TuxGuitar se centra en las acordes de la guitarra, aunque tambin podemos mostrar las notas correspondientes.

Figura 2: TuxGuitar tambin soporta temas de percusin. El presentador del tema nos ofrece una buena perspectiva de los temas existentes y de los instrumentos asignados a ellos.

modo, podemos crear composiciones y coger nuestra guitarra y acompaar mientras estn tocando. Un metrnomo nos ayuda a seguir el tempo. No necesitamos saber leer msica para usar TuxGuitar aunque, definitivamente, ayuda. De la misma manera que ayuda si somos msicos, si podemos reproducir un par de acordes con la guitarra y si podemos leer notaciones de tablaturas. Cuando iniciamos TuxGuitar por primera vez, no deben preocuparnos el excesivo nmero de botones del programa o la terminologa musical. Con un poco de paciencia, pronto lo dominaremos. Con sintetizadores de software como TiMidity [2] o Fluidsynth podremos reproducir nuestras composiciones y definir el nmero de instrumentos que se encuentran disponibles. TuxGuitar almacena nuestros ficheros en su propio

formato, aunque tambin soporta el uso de formatos de ficheros de programas similares como Guitar Pro o Power Tab.

Instalacin y Resolucin de Problemas


La mayora de las distribuciones poseen TuxGuitar en sus repositorios. No obstante, podemos visitar la seccin GNU/ Linux Releases del proyecto que se encuentra en la pgina Download para recoger los paquetes de descarga, incluyendo un instalador genrico y binarios para varias distribuciones. Adems, Windows y Macs tienen versiones aqu y una variante live nos permite probar TuxGuitar online. Si TuxGuitar no puede reproducir nuestras composiciones, probablemente necesitemos un secuenciador MIDI. Habitualmente, el sintetizador TiMidity [2] se recomienda a travs del paquete

timidity. Luego, en TuxGuitar, pulsamos Tools | Settings para abrir el dilogo Configure TuxGuitar, seleccionamos Sound y una entrada TiMidity coincidente en la lista MIDI Port y pulsamos OK para aplicar los cambios. Si TuxGuitar sigue fallando para reproducir cualquier sonido, salimos de

Figura 3: En el dilogo Properties podemos conseguir el TuxGuitar virtual para hacer coincidir nuestra guitarra real.

66

Nmero 85

WWW.LINUX- MAGAZINE.ES

Tux Guitar LINUX USER

la aplicacin y la reiniciamos en una ventana terminal introduciendo tuxguitar. Si vemos un mensaje como /dev/ sequencer command o file not found, es que no hay un secuenciador MIDI ejecutndose. En este caso, necesitamos reiniciar TiMidity manualmente escribiendo:
timidity -iA -Os

Si nos topamos con otros problemas, podemos comprobar la wiki de TuxGuitar [3] para ms ayuda. Tras el arranque inicial, TuxGuitar presenta una tablatura de muestra y una serie de acordes asociados (Figura 1). Desde el principio hay disponibles varias barras de tareas, que pueden ser confusas, pero podemos mantener pulsado el botn izquierdo del ratn y disponer la barra de herramientas de acuerdo a nuestras necesidades. As, vamos al men Tools | Settings para ocultar o mostrar las diferentes barras de herramientas. Para hacerlo, vamos a Toolbars en el dilogo y marcamos/desmarcamos los cuadros correspondientes. Las opciones Move up y Move down nos permiten cambiar el orden de las barras de herramientas. Pulsamos OK para decirle a TuxGuitar que aplique nuestros cambios.

presentacin para ver en qu barra nos encontramos y cundo comienza o se detiene un tema especfico. Pulsar con el botn derecho del ratn sobre un tema nos permite modificar sus propiedades. En el dilogo Properties que aparece (Figura 3), podemos definir el nombre del tema, un color asociado, el tipo de instrumento y el nmero de cuerdas. El dilogo Properties es til si deseamos usar un bajo de cuatro o cinco cuerdas o aadir otra guitarra de seis cuerdas. Para cambiar el modo en el que el instrumento se sintoniza, cambiamos el valor en el cuadro Offset de modo que TuxGuitar cambie las notas y acordes para que coincidan con la sintona de un instrumento particular. Para editar una cancin, necesitamos primero aadir ms barras seleccionando Measure | Add Measure. Para evitarnos tener que acudir a este elemento de men continuamente, aparece un cuadro de dilogo que nos permite aadir mltiples barras al mismo tiempo. Finalmente, definimos el nmero y posicin de las nuevas barras (antes o despus de la posicin actual o al final de la cancin).

Notas y acordes
La manera en la que aadimos notas a nuestra cancin depende de lo que deseemos grabar. Por ejemplo, podemos

Pistas
Para nuestros primeros experimentos es buena idea usar el fichero TuxGuitar de muestra. Seleccionamos File | New para crear un nuevo fichero. Bajo la hoja de composicin existe una vista de las pistas que indica lo que reproduce cada instrumento. Para aadir ms pistas seleccionamos Track | Add track y luego, por ejemplo, aadimos una parte de bajo a nuestras composiciones. Este mtodo nos permite reunir nuestra propia banda, instrumento por instrumento (Figura 2). En la vista de la pista, TuxGuitar tambin nos muestra las barras como pequeos cuadros. Ms tarde podremos seguir esta

usar un editor de acordes para componerlos o puntear cuerdas de guitarra individuales. Para producir un tono especfico, simplemente pulsamos la cuerda requerida en el acorde y se dibujar un pequeo cuadro. Seguidamente, introducimos el nmero del traste para aguantar esta cuerda. Para tocar mltiples cuerdas al mismo tiempo, podemos usar las teclas de flecha para subir o bajar a la cuerda requerida y de nuevo introducir el nmero del traste cuando consigamos llegar. Aunque de este modo podremos componer acordes, tenemos una opcin ms fcil: el editor de acordes nos permite seleccionar acordes completos o, si fuera necesario, tambin dibujarlos nosotros mismos (Figura 4). Para abrir el editor de acordes, seleccionamos Beat | Chord | Insert chord o pulsamos el botn A. El editor parece bastante recargado, por lo que puede que tengamos que mirar un poco antes de comenzar a editarlos. Una buena manera para comenzar es dibujar los acordes. En la mitad superior de la seccin del Editor de acordes se encuentra la seccin del mstil de guitarra. Cogemos la barra de desplazamiento que se encuentra junto al mstil para definir el traste en el que estamos componiendo el acorde. Un nmero al lado del mstil nos dice qu traste est actualmente funcionando. Ahora, pulsa-

Figura 4: El editor de acordes nos permite crear acordes exticos o comunes y aadirlos a nuestros acordes con slo un par de clics.

WWW.LINUX- MAGAZINE.ES

Nmero 85

67

LINUX USER Tux Guitar

TuxGuitar nos permite aplicar Funcin Atajo tcnicas para tocar la guitarra Ir a la barra siguiente [Ctrl]+[Right arrow] como ligaduras ascendentes y [Ir a la barra previa [Ctrl]+[Left arrow] ligaduras descendentes o slides de notas individuales. Para Ir al tema siguiente [Ctrl]+[Down arrow] hacerlo, pulsamos sobre la Ir al tema previo [Ctrl]+[Up arrow] nota en el acorde y seleccionaIr al primer comps [Ctrl]+[Shift]+[Up arrow] mos el efecto requerido en [Ir al ltimo comps [Ctrl]+[Shift]+[Down arrow] Beat | Effects. Si usamos [Abrir el editor [A] mucho esta tcnica, es buena idea recordar los atajos de [Vibrato [V] teclado coincidentes (Tabla 1). Nota bend (curva) [B] Si deseamos enmudecer con la Slide [S] palma (palm mute) una comLigadura ascendente/ [H] posicin completa, vamos a descendente apreciar no tener que navegar Palm mute [P] por los mens para cada nota. Tras introducir una nota, mos para definir qu cuerdas estn pulpodemos moverla a otra cuerda o sadas, abiertas a la izquierda o no pulmediante un semitono usando un atajo sadas. TuxGuitar visualiza esta informade teclado. Para hacerlo, seleccionamos cin como un punto negro, un crculo la nota y tocamos una de las teclas de negro o una x respectivamente. flecha mientras mantenemos pulsada la Por ejemplo, si introducimos un tecla Maysculas. Las teclas de flecha acorde principal A, veremos A (100%). Arriba y Abajo mueven la nota a otra Un valor inferior a ste indica que el cuerda y las de Derecha e Izquierda las acorde que introdujimos no coincide mueven mediante un semitono. El men completamente con el nombre mosBeat posee funciones adicionales que trado. Si pulsamos el nombre del podemos aplicar a las notas. acorde, TuxGuitar nos muestra un Despus de haberlas escrito, no debenmero de variantes en el acorde en el mos preocuparnos si descubrimos que tercio inferior del editor. Si seleccionanos encontramos en la tecla errnea. En mos un acorde de esta lista y pulsamos lugar de cambiar todas las notas por Add, el nombre del acorde aparece bajo ejemplo dos semitonos abajo, el men el botn pulsado. Podemos seleccionar Tools posee la funcionalidad Transpose, este acorde ms tarde en el men Beat | que nos ayuda en este caso. Chord, sin tener que volver a travs del En el dilogo Transpose, podemos editor de acordes. seleccionar el nmero de semitonos a

Tabla 1: Atajos de Teclado tiles

Toque Efectivo

transportar con la opcin Transposition Semitones. Hay ms opciones relacionadas con el efecto de la transposicin. Pero debera TuxGuitar transponer todas las barras (all measures) o simplemente las actuales (only this measure)? Este cambio slo se aplicara a la pista actual, aunque Apply to all tracks nos permite aplicar las transposiciones a todos los temas en el fichero de canciones actuales. En una composicin con mltiples temas, es posible que notemos que un instrumento es demasiado silencioso comparado con los otros y no podamos or el instrumento de la meloda o el ritmo. Para este problema, TuxGuitar tiene un mezclador, al que podemos acceder va View | Show Mixer. Los deslizadores nos permiten modificar el volumen de cada tema o completamente Mute las temas que prefiramos no or.

Seccin de Ritmo
TuxGuitar tambin nos permite crear un tema de percusin. Para hacerlo, pulsamos con el botn derecho del ratn una nueva pista y luego comprobamos el cuadro Percussion Track en el dilogo Properties. Tras cerrar el dilogo, veremos una entrada Percussions en la columna Instrument de la vista del tema. Como introducir la parte del tambor en acordes es difcil de hacer, el editor matriz nos ayuda a simplificar el proceso. Tras habilitar la pista de percusin, podemos acceder a ella mediante el men View | Show Matrix (Figura 5). El Editor Matrix nos muestra la barra actual en el formato tabla. La primera columna contiene la seleccin de los instrumentos de percusin disponibles, mientras que las otras columnas representan partes de la barra actual. Las teclas de flecha situadas en la parte superior izquierda de la ventana nos permiten navegar por las acordes (por ejemplo, acceder a la barra siguiente). Un icono situado en la parte superior nos permite definir la longitud de las notas (semi, cuartos, octavos, ). Para tocar un instrumento de percusin en ciertas posiciones en una barra, pulsamos el cuadro correspondiente. Pulsando otra vez lo desmarcamos. Como podemos usar el editor en el fondo, el dilogo no bloquear la ventana, lo que nos permite continuar trabajando en ambos sitios en paralelo.

Figura 5: El Editor Matrix nos ayuda a rellenar el tema de percusin con instrumentos tpicos.

68

Nmero 85

WWW.LINUX- MAGAZINE.ES

Tux Guitar LINUX USER

Los clics crean automticamente una entrada de nota en el acorde.

Partitura
TuxGuitar puede crear una copia analgica de nuestra composicin imprimiendo la partitura o creando un documento PDF. La funcin PDF se encuentra localizada en File | Export. La funcionalidad de exportar nos da ms opciones, tales como crear ficheros MIDI que podemos obtener mediante un reproductor de medios. TuxGuitar tambin ofrece a los usuarios un mtodo adecuado para practicar fragmentos de guitarra (Figura 6). Para hacerlo, vamos a Player | Play Mode. Simple Mode est seleccionado por defecto. Training Mode nos permite elegir configuraciones para facilitar el proceso de aprender una composicin. Las listas Tempo nos permiten definir la velocidad de reproduccin, que TuxGuitar puede aumentar gradualmente de acuerdo a la velocidad de incremento que introdujimos en el cuadro increment by. Finalmente, Loo Range nos permite definir qu barras se repiten. Play from measure define la primera

barra y Play to measure, la ltima. Tras confirmar el dilogo, TuxGuitar marca el final del bucle mostrando un punto rojo en la barra seleccionada bajo Play to measure. Para propsitos de aprendizaje, tambin podemos habilitar el metrnomo mediante Player | Metronome. Una cantidad considerable de material de la web puede ayudarnos a aprender lecciones de guitarra. Un buen sitio a visitar es Ultimate Guitar [4], donde podemos buscar nuestras canciones favoritas y filtrar los resultados de bsqueda de modo que veamos las acordes almacenados en el formato Guitar Pro, que TuxGuitar puede abrir. El proyecto TuxGuitar mantiene en s mismo un sitio con acordes creados por usuarios. Para acceder al material de comunidad y descargar nuestras propias canciones, necesitamos registrarnos con la comunidad TuxGuitar [5]. Tras registrarnos, podemos acceder a los ficheros directamente en TuxGuitar con Toools | Browser. Este paso abre un pequeo dilogo del mismo nombre, donde podemos establecer acceso a travs del elemento Collection | New | Com-

munity Files. Para hacerlo, necesitamos nuestro nombre de usuario y la contrasea que introdujimos cuando nos registramos.

Conclusiones
TuxGuitar va ms all de su propsito, ya que gracias a este til programa, obtendremos resultados impresionantes muy pronto y, lo ms importante, nos soporta cuando necesitamos practicar una composicin que ya existe. En resumen, TuxGuitar es una pieza impresionante del software de cdigo abierto. I

RECURSOS
1] Tuxguitar: http://tuxguitar.herac.com.ar [2] Timidity: http://timidity.sourceforge.net [3] Wiki de Tuxguitar: http://tuxguitar.herac.com.ar/ tgwiki/doku.php?id=doc:no_sound [4] Ultimate Guitar: http://www.ultimate-guitar.com/ [5] Comunidad Tuxguitar: http://community.tuxguitar.com.ar/

Figura 6: El mstil de la guitarra nos muestra dnde colocar nuestros dedos para tocar las acordes.

WWW.LINUX- MAGAZINE.ES

Nmero 85

69

Adonde vayas...

Lee Linux Magazine desde cualquier sitio con nuestra subscripcin digital. Accede a todos los nmeros en PDF entrando en nuestro sitio. Encuentra lo que buscas con un sencillo formulario de bsqueda. Mantn tu propia biblioteca de artculos y lelos desde cualquier dispositivo.

... Linux Magazine va contigo.


http://www.linux-magazine.es/digital

EVENTOS

Barcelona Ruby Conference


Fecha: 08 - 09 Sep. Lugar: Barcelona, Espaa Web: baruco.org

OSWC 2012
Fecha: 08 Oct. - 10 Oct. Lugar: Madrid, Espaa Web: www.oshwcon.org

Libre Software World Conference


Fecha: 18 - 19 Oct. Lugar: Santiago de Composela, Espaa Web: www.libresoftwareworldconference.com

Calendario de Eventos Espaa e Hispanoamrica Evento Barcelona Ruby Conference Software Freedom Day 2012 Open Source Hardware Convention 2012 Libre Software World Conference 2012 LinuxCon Europe Resto del Mundo Evento Cloud East Africa Summit XDC2012 Apps World Webit Congress LibreOffice Conference 2012 Ubucon 2012 OpenSuse Conference 2012 Strata Conference 2012 LISA '12 CeBIT 2013 LinuxTag 2013

Fecha 08 - 09 Sep 15 Sep 21 - 23 Sep 08 - 10 Oct 07 - 09 Nov Fecha 07 Sep 19 - 21 Sep 02 - 03 Oct 10 - 11 Oct 17 - 19 Oct 19 - 21 Oct 20 - 23 Oct 23 - 25 Oct 09 - 14 Dic 05 - 09 Mar, 2013 22 - 25 Mar, 2013

Ciudad / Regin Barcelona, Espaa Mundial Madrid, Espaa Santiago de Comp., Espaa Barcelona, Espaa Ciudad / Regin Nairobi, Kenya Nuremberg, Alemania Londres, R.U. Estanbul,Turqua Berln, Alemania Berln, Alemania Praga, Chequia Nueva York, EE.UU. San Diego, EE.UU. Hannover, Alemania Berln, Alemania

Sitio Web baruco.org softwarefreedomday.org www.oshwcon.org www.libresoftwareworldconference.com events.linuxfoundation.org Sitio Web www.cloud-eastafrica.com wiki.x.org/wiki/Events/XDC2012 www.apps-world.net/europe www.webitexpo.com conference.libreoffice.org ubucon.de en.opensuse.org/Portal:Conference strataconf.com www.usenix.org/events/lisa12 www.cebit.org www.linuxtag.org

Informacin de Contacto
Director Paul C. Brown Coolaboradores Paul C. Brown, Jos Mara Ruz, Oliver Frommel, Klaus Knopper, Jose Mara Lancho, Kristian Kissling, Martin Streicher, Joe Brockheimer Editores Paul C. Brown, Alina Caravaca Chaves Traductores Paqui Martn Vergara, Vctor Tienda, Francisco Molinero Maquetacin Miguel Gmez Molina, Alina Caravaca Chaves Diseo de Portada Pinball info@pinball-werbeagentur.de Publicidad www.linux-magazine.es/pub/ Para Espaa Marketing y Comunicaciones anuncios@linux-magazine.es Tel.: (+ 34) 952 020 242 Fax.: (+ 34) 951 235 905 Para el Resto del Mundo Petra Jaser ads@linux-magazine.com Tel.: (+49) 8999 34 11 23 Fax.: (+49) 8999 34 11 99 Director Editorial Paul C. Brown Jefe de Produccin Miguel Gmez Molina Subscripciones: www.linux-magazine.es/magazine/subs Precios Subscripcin Espaa: 54,90 Europa: 64,90 Resto del Mundo - Euros: 84,90 subs@linux-magazine.es Tel.: (+34) 952 020 242 Fax.: (+34) 951 235 905 Linux Magazine Linux New Media Spain, S.L. Edfco. Hevimar, Planta 2, Ofic. 16 C/Graham Bell n 6 29590 - Mlaga ESPAA info@linux-magazine.es Tel.: (+34) 952 020 242 (+34) 951 235 904 Fax.: (+34) 951 235 905 www.linux-magazine.es - Espaa www.linux-magazine.com - Mundo www.linux-magazine.co.uk - Reino Unido www.linux-magazine.com.br - Brasil www.linux-magazine.pl - Polonia Si bien se toman todas las medidas posibles para garantizar la precisin del contenido de los artculos publicados en Linux Magazine, la editorial no se hace responsable de imprecisiones aparecidas en la revista. Asimismo, Linux Magazine no comparte necesariamente las opiniones vertidas por sus colaboradores en sus artculos. El riesgo derivado del uso del DVD y el material que contiene corren por cuenta del lector. El DVD es estudiado escrupulosamente para confirmar que est libre de virus y errores. Copyright y Marcas Registradas 2012 Linux New Media Spain, S.L. Linux New Media Spain S.L. prohbe la reproduccin total o parcial de los contenidos de Linux Magazine sin su permiso previo y por escrito. Linux es una Marca Registrada de Linus Torvalds. Impreso en Polonia Impresin: ArtDruck DVDs: Fermata Distribucin: SGEL Depsito Legal: MA-116-2005 ISSN edicin impresa: 1576-4079 ISSN edicin online: 1699-2237

WWW.LINUX- MAGAZINE.ES

Nmero 85

81

PRXIMO NMERO

Dispositivos y Hardware
Hace ya algn

tiempo que hablar de Linux en el contexto de la alta tecnologa es hablar de algo ms que de software. Los mviles y tablets, el prototipado electrnico, los chipsets abiertos y sus especificaciones abiertas, y los terminales supuestamente obsoletos, pero que viven gracias al software libre, dibujan la nueva frontera de los profesionales y aficionados a las tecnologas abiertas. As que, ya sabes, si te gusta el cacharreo, no te pierdas el nmero 86 de Linux.

Sguenos en nuestras redes sociales: Facebook: facebook.com/linuxmagazine.es Twitter: twitter.com/linux_spain Google+: plus.google.com/b/101673494113753130304/ Identi.ca: identi.ca/linuxspain/

iTempusfugit, 123RF.com

A LA VENTA: OCTUBRE 2012


82
Nmero 85
WWW.LINUX- MAGAZINE.ES