Date post: | 29-Nov-2015 |
Category: |
Documents |
Upload: | bigwell-arias |
View: | 46 times |
Download: | 2 times |
Autom
atizaciónH
erramientas y Trucos P
acemaker D
istribución de Softw
are Scribus D
esarrollo Android R
ecoll TuxGuitar Im
ageMagick
NÚMERO 85 • P.V.P 6,95 €CANARIAS • P.V.P 7,05 €
AUTOMATIZACIÓNTRUCOS Y HERRAMIENTA PARA ADMINS AGOBIA
Versión EE de64 bits. Más informaciónen página 3.
W W W . L I N U X - M A G A Z I N E . E S
LIN
UX
MA
GA
ZIN
E
NÚ
ME
RO
85
AUTOMATIZACIÓN
Conecta tu hogar a la red con
el hardware libre de Arduino
8413042594505
00085
SCRIBUSDiseño y edición de folletos
con Software Libre
HERRAMENTAS ANDROIDLas alternativas a Eclipse y al SDK oficial
PARKINGUtiliza Perl y OpenStreetMap
para encontrar aparcamiento
IMAGEMAGICKAprende a procesar imágenes
desde la línea de comandos
GRATIS
Casa en Red
HERRAMIENTAS Y TRUCOS PARA ADMINS AGOBIADOS
� Recuperación de fallos con Pacemaker
� Distribución de software simplificada
� Monitorización de ficheros de logs
4.95Euros
DVD
ROSA 2012 – MARATHON
¿DVD DEFECTUOSO?
Si crees que tu DVD está en mal estado, escríbenos a
[email protected] para diagnosticarlo o para que
te enviemos uno nuevo.
W W W . L I N U X - M A G A Z I N E . E S
[1] ROSA: http:// www. rosalab. com/
RECURSOS
Este DVD contiene una versión de
ROSA 2012 – Marathon de instalación.
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 arran-
que 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. Des-
pués, guarda los cambios y sal de la
herramienta de configuración para que
se reinicie el arranque. Como cada
BIOS es diferente, recomendamos
consultar la documentación del fabri-
cante para realizar esta operación.
Arranque
En el DVD de este número de Linux Magazine traemos ROSA, la distro rusa derivada
de Mandriva que quiere empezar su particular Revolución de Octubre en tu orde-
nador.
Por un lado, el objetivo de ROSA es convertirse en un sistema operativo estéticamente
atractivo, con un escritorio moderno y usable, compatible con el Linux Standard Base y
con aplicaciones con soporte de larga duración, ideal para entornos corporativos.
Pero lo más revolucionario de ROSA es su escritorio: derivado de KDE y con una esté-
tica particular (pero muy agradable), viene con muchas funcionalidades añadidas, como
RocketBar, que sustituye a la barra convencional de KDE. También incluye SimpleWel-
come, una especie de buscados/ selector/ lanzador de aplicaciones similar a lo que pode-
mos encontrar en Gnome 3 o Unity y TimeFrame, un nuevo visualizador de contenidos
que clasifica los medios y ficheros cronológica o semánticamente, entre otros muchos
cambios.
La versión incluida en el DVD es la “Extended Edition”, que trae todos los codecs y plu-
gins, incluyendo aquellos que pueden tener restricciones de distribución en según que
países. �
EDITORIAL
4 Número 85 W W W . L I N U X - M A G A Z I N E . E S
Cada uno tiene sus ideas y sus con-
vicciones de cómo debe ser el
mundo. Pero conviene recordar
que esas ideas y convicciones sólo funcio-
nan perfectamente en el teatro de tu propia
cabeza. En cuanto las exteriorizas invaria-
blemente 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 perciba-
mos de manera imperfecta. Lo que llega a
penetrar hasta nuestra conciencia es la
sombra de algo tamizada por un velo y fil-
trada por una cortina. Y encima, el disco
duro que ha de registrarlo todo, tiene
serios problemas de corrupción de datos.
Inmediatamente tras recibir cualquier
input, nuestro cerebro se pone a trabajar
sobre él para que cuadre con nuestras con-
vicciones y prejuicios, intentando reducir
al mínimo el nivel de disonancia cognitiva.
A pesar de que la evidencia es que nues-
tra mente es muy buena en esa tarea (es
decir, que no conseguirás convencer a
alguien de nada de lo que no quiera ser
convencido por muchas pruebas que le
presentes – la gente oirá lo que quiere oír y
verá lo que quiere ver), una vez tuve la
idea de intentar paliar el problema. Pen-
saba que Internet sólo había agravado la
situación (recordad que soy lo suficiente-
mente mayor como para haber pasado la
mayor parte de mi vida sin conexión a la
red… a ninguna red) y sitios como Barra-
punto, Menéame, Digg y Reddit, sitios que
se alimentaban de las contribuciones de
los visitantes, se habían convertido en
“cámaras de ecos”, dónde sólo las tergiver-
saciones de las noticias que mejor se inte-
graban con la mente-colmena dominante
salían publicadas, alimentando así un cír-
culo vicioso de “voy a este sitio porque
publican cosas que coinciden con mi per-
cepción del mundo y este sitio coincide
con mi percepción del mundo porque voy
a él”.
Para romperlo, como el problema lo
había exacerbado la tecnología, pensé que
la solución también podría ser tecnológica.
Tomando prestado conceptos de juegos de
estrategia tipo SimCity, donde el programa
juega un rol no sólo mostrando los resulta-
dos de las acciones del jugador, sino de vez
en cuando interviniendo de manera más
notoria con desastres naturales u otros
cataclismos, pensé que sería 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 temá-
ticas similares a los sometidos.
La palabra clave de lo anterior es simila-
res, porque el backend buscaría textos rela-
cionados por temática, pero con diferentes
perspectivas, con el fin de matizar o
incluso contradecir a lo posteado original-
mente. El objetivo era que el motor enfren-
tara a los visitantes con textos que retaran
sus prejuicios e ideas preconcebidas. El
motor actuaría como un “fantasma en la
máquina”, 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
pacífico consenso ideológico.
Lo íbamos a llamar Mut-Mut, por Muta-
tis Mutandis (“se cambiará lo que se deba
cambiar” – sobre todo la opinión del lec-
tor) y llegamos lo suficientemente lejos en
el desarrollo como para saber que era facti-
ble crear un modelo funcional con la
potencia de computación que aporta un
cluster mediano. Asimismo, imaginamos
un montón de funcionalidades para dotar
a Mut Mut de la inteligencia necesaria para
participar de manera ágil en la conversa-
ción: transferencia en mesh entre dife-
rentes “muts”, clasificación de textos entre
los ya almacenados para un acceso más
rápido, análisis de los comentarios en
busca de recursos, almacenamiento
líquido de recursos fiables… Llegamos al
punto de darnos cuenta de que podríamos
crear un MM especializado en un tema
concreto simplemente “dándole de comer”
una serie de textos sobre el tema en cues-
tión y otorgándole un peso especial a esos
textos, ya que todos los siguientes se inter-
pretarían en función de ellos.
Pero me desvío.
La cuestión es que queríamos también
evitar la interpretación de hechos en térmi-
nos de blanco o negro. Toda historia, pen-
samos, tiene al menos tres lados: la tuya, la
suya y la de la cámara de seguridad. Y a
menudo muchos más. Queríamos que el
motor de Mut-Mut mostrara todos los
lados que encontrara para dar al visitante
una visión global de un evento, una visión
que no le permitiera refugiarse en medias
verdades que le reafirmaran en sus creen-
cias.
Pensamos que sería interesante que la
cosa fuera sostenible para no tener que
recurrir a donativos o subvenciones pero,
¿cuál era el potencial modelo de negocio?
Jugueteamos con la idea de adaptar MMs
como sistemas expertos para colectivos
especializados, como abogados o médicos.
También pensamos que, como un servidor
Mut-Mut no podría funcionar muy bien en
algo que no fuera un cluster, el alojamiento
a lo Wordpress también sería una opción.
Pero lo principal era enfrentar a la gente
a hechos que podrían poner en cuestión
sus creencias y ahí se nos agotaron las
ideas. Porque, ¿quién quiere que le desen-
gañen?, ¿quién está dispuesto a admitir
que sus principios no tienen base en la rea-
lidad? o ¿quién quiere leer algo que le
ofende? Hace falta tener un carácter espe-
cial para cambiar de opinión cuando tus
convicciones se ponen en entredicho.
Y es que la realidad no vende. �
Paul C. Brown
Director
MUTACIONESNos sentimos orgullosos de nues -tros orígenes como pu blicación,que se remonta a los primerosdías de la revolución Linux.Nuestra revista hermana, lapublicación alemana LinuxMagazine, fundada en 1994, fuela primera revista dedicada aLinux en Europa. Desde aquellastempranas fechas hasta hoy,nuestra red y experiencia hancrecido y se han expandido a lapar que la comunidad Linux alo ancho y largo del mundo.Como lector de LinuxMagazine, te unes a unared de informacióndedicada a la distribucióndel conocimiento yexperiencia técnica. No noslimitamos a informar sobre elmovimiento Linux y de SoftwareLibre, sino que somos parteintegral de él.
10 Estar Allí
Cuando un nodo de un clúster falla, el
software de alta disponibilidad Pace-
maker lanza los servicios en otro
nodo. Una funcionalidad menos cono-
cida de Pacemaker es la capacidad de
poner los servicios fallidos de nuevo
en pie en el gestor del clúster.
16 Entrega de Paquetes
Mantener todos los clientes de Linux
en un entorno empresarial al día
puede ser todo un reto logístico.
Muchos administradores apreciarán
un buen sistema de distribución de
software, especialmente si es una
herramienta libre que no suponga un
problema para el presupuesto del
departamento IT.
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 más
importantes para el administrador e,
incluso, pueden disparar una reacción
adecuada de forma automática.
28 ¡Eureka!
Los autores de Linux Magazine com-
parten sus mejores trucos de automa-
tización. Descubre cómo evitar que un
script destruya tu máquina, distribuir
paquetes en sistemas Gentoo y cómo
sincronizar archivos de modo seguro.
31 Doblar y Volar
Un folleto con dibujos aburridos y con
un diseño pobre puede estropear el
marketing más cuidado. Scribus te
permite crear publicaciones informati-
vas con un toque profesional.
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 librerías y
herramientas que nos hacen la vida
más fácil.
Schlagwort sollte hier stehenCOVER STORY
39 Servicios en Oferta
Tastypie nos permite crear una API
REST para que cualquiera pueda
hacer uso de nuestros datos o servi-
cios.
43 Asistente de Aparcamiento
Los voluntarios que mapean las calles
de cada barrio para el proyecto
OpenStreetMap prestan verdadera
atención a los detalles, tales como
zonas de aparcamiento. Los scripts de
Perl de este mes consultan estos
datos.
49 El Tiempo
Para averiguar qué tiempo hace, el
administrador de sistemas y colum-
nista de esta revista, Charly Kühnast,
no tiene que salir de casa y mojarse,
que se lo lleve el viento, congelarse
de frío o achicharrarse con el sol.
50 Un Asunto Pegajoso
Desarrollar aplicaciones multiplata-
forma puede ser difícil y conllevar
errores. Ofrecemos algunos consejos
para facilitar el trabajo.
DESARROLLO
DESARROLLO
PRÁCTICO
ADMINISTRACIÓN
PORTADA
LINUX MAGAZINE
03 DVD Linux Magazine
04 Editorial
81 Eventos
81 Información de Contacto
82 Próximo Número
CONTENIDOS • Linux Magazine nº 85
6 Número 85 W W W . L I N U X - M A G A Z I N E . E S
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 orquestación, del enru-
tamiento de los mensajes y del análi-
sis de los eventos. Vamos a presentar
tres opciones libres de ESB.
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 día más…
65 Clase Maestra
Con TuxGuitar y TiMidity podemos
escribir y componer canciones sin que
sea necesario saber leer música. Tam-
bién podemos practicar, reproducir
nuestras propias composiciones y
añadir ritmos de acompañamiento de
instrumentos.
70 Más Allá de Rotar
ImageMagick es conocido como la
navaja suiza del procesamiento de
imagen desde la línea de comandos,
aunque va más allá de las típicas tareas
de rotación y re-escalado.
75 Total Recoll
Recoll es un front end amigable para el
motor de búsqueda de texto completo
Xapian, que usa filtros simples para
indexar contenido y administrar fiche-
ros.
78 Konsultorio
Klaus Knopper, el creador de Knoppix,
vuelve un mes más dispuesto a ayudar
a nuestros atribulados lectores. En este
número: Pantalla Oscura, Problema de
Red en Unity e Hipervisor de Máquina
Virtual.
7
ADMINISTRACIÓN
HARDWARE
LINUX USER
LINUX USER
7Número 85W W W . L I N U X - M A G A Z I N E . E S
COMUNIDAD
Ver p03 para más detalles
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 exigía un PIN, que
el usuario debía proporcionar para la
activación de CPRM y que impedía que
una aplicación no controlada, lo acti-
vara.
A este respecto, dijo en un foro:
”Si Linux deshabilita CPRM y [descu-bro que] lo rehabilita ‘JAVA-REAL-MENTE-DÍSCOLO’ o ‘APLICACIÓN-LICENCIADO-EN-LA-RED’ le meteré unpleito al fabricante del disco duro, alOEM y a cualquiera de los otros sucios ypodridos !@#$% que dañen a Linux ymi reputación como desarrollador de sis-temas operativos.” [2]
CPRM se utiliza hoy en día como tec-
nología de cifrado en tarjetas SD que se
usan en dispositivos que, a todo los
efectos, son ordenadores (como los
citados más arriba), pero que se com-
portan más como electrodomésticos.
Sin embargo, el PC se libró de una tec-
nología restrictiva gracias a Andre
Hedrick, ingeniero, desarrollador de
SuSE y colaborador del kernel de GNU/
Linux.
Otros méritos 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 recuperación
forense de datos del mundo.
Andre Hedrick se suicidó el pasado
viernes 13 de julio y ha dejado esposa y
cuatro hijos. �
NOTICIAS
Esto suponía un serio problema para
realizar copias de seguridad, tanto per-
sonales como corporativas y Hedrick,
que por aquel entonces trabajaba en
SuSE como mantenedor de los susbsiste-
mas ATA, lo identificó como lo que era:
un atentado de la industria de medios
contra la libertad de los usuarios.
Para entender la dimensión del
asunto, de adoptarse esta tecnología
como estándar, cosa que se estaba con-
siderando, habría supuesto la conver-
sión de todo PC en appliance, algo como
un TiVo, TDT o consola de videojuegos,
un aparato con capacidad de almacena-
miento, pero en el cuál el usuario ten-
dría poco poder de decisión sobre lo que
se almacenaba, durante cuánto tiempo y
qué se podría copiar a otra parte.
RIP Andre HedrickPuede 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 informática,
consiguiendo impedir casi en solitario la
aplicación masiva de una tecnología que
habría quitado el control a los usuarios
de sus propios discos duros.
CPRM es un tecnología que desarrolló
IBM en el año 2000 y que crea una capa
lógica 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 teoría de obstaculizar la piratería.
Gabe Newell (VALVe): “Lafalta de juegos frena aLinux”Gabe Newell, su empresa VALVe y sus
productos están mucho en los mentide-
ros Linux (incluyendo los nuestros) últi-
mamente. Y es que no pasa un día sin
que la empresa de Newell descubra una
nueva filiación 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
cándidas 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 jue-
gos para impulsar la compra por parte de
los consumidores” dijo en un momento
de la entrevista. “Nos gustaría que fuera
aún más sencillo ejecutar los 2.500 jue-
gos que hay en Steam en el sistema
Linux. Se trata de una estrategia preven-
tiva. Creo que Windows 8 va a ser una
catástrofe para todos los implicados en el
espacio del PC y destruirá los márgenes
de un montón de gente. Si eso ocurre,
estaría bien tener alternativas para paliar
esa eventualidad”.
Naturalmente, Newell habla desde la
perspectiva del PC de escritorio (ya que
Linux no parece tener ningún problema
en su adopción en servidores y dispositi-
vos móviles), ya que insiste una y otra
vez que este espacio es el mejor para
desarrollar sus juegos.
El CEO de VALVe no es un extraño para
Microsoft, ya que trabajó en la empresa
redmondesa durante 13 años. Sin
embargo, por sus declaraciones, parece
creer firmemente en la popularización de
GNU/ Linux como sistema operativo de
escritorio.
¿Será el año en que Steam llegue a
Linux “el año del escritorio” del que
hablan las leyendas? �
NOTICIAS
[1] Completa descripción de la entre-
vista con Newell: http:// allthingsd.
com/ 20120725/ valves-gabe- newell-
on-the-future-of-games-wearable-co
mputers-windows-8-and-more/
RECURSOS [1] Necrológica de Hedrick en The Reg-
ister: http:// www. theregister. co. uk/
2012/ 07/ 26/ andre_hedrick/ ?2
[2] Hedrick expresa su opinión sobre el
CPRM: http:// www. linuxtoday. com/
developer/ 2001030400120NWHWKN
RECURSOS
8 Número 85 W W W . L I N U X - M A G A Z I N E . E S
PORTADA • Monitorización de Ficheros Log
22 Número 85 W W W . L I N U X - M A G A Z I N E . E S
buscar advertencias o eventos especí-
ficos. Grep y sus homólogos buscado-
res de texto siguen desempeñando un
papel importante en la red, pero si
estamos buscando un poco de alivio a
la tediosa tarea de monitorizar archi-
vos de log, es posible que deseemos
probar una herramienta de análisis de
registros.
La mayor parte de los adminis-
tradores de sistemas se basan
en los archivos de log debido a
que son una importante fuente de
seguridad y de solución de proble-
mas. La información 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 doce-
nas o incluso, cientos de ordenado-
res.
En este contexto, la antigua técnica
de peinar los archivos de registro de
forma manual en busca de informa-
ción sospechosa hace mucho tiempo
que perdió sentido. Muchos adminis-
tradores utilizan herramientas de fil-
trado de texto tales como grep, para
La sencilla herramienta de análisis
de logs, Logcheck [1], reúne datos de
varios registros en un único archivo y
filtra los datos relevantes a través del
uso de expresiones regulares. Por su
parte, Logsurfer [2], un poco más
sofisticada, ofrece algunas caracterís-
ticas adicionales para organizar la
información del log. Tanto Logcheck
Monitorización de logs con Logcheck y Logsurfer
Peinando LogsLos archivos de log contienen los registros de lo que ocurre en un sistema Linux y los servicios que se ejecu-
tan. Herramientas como Logcheck y Logsurfer filtran los eventos más importantes para el administrador e
incluso, pueden desencadenar una reacción adecuada de forma automática.
POR THILO UTTENDORFER Y VALENTIN HÖBEL
Figura 1: Logcheck extrae mensajes críticos y los envía por correo al administrador.
ción que se ha leído con anteriori-
dad.
Cada hora, en el cronjob bajo /etc/
cron.d/ logcheck del paquete de insta-
lación, se envían por correo los men-
sajes que Logcheck ha extraído de los
registros desde la última llamada.
Además, la herramienta envía un
correo electrónico 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é men-
sajes filtra y elimina la herramienta
de sus informes a enviar por correo.
El Listado 1 contiene dos líneas
sobre las que recibiríamos correo
desde Logcheck. La primera línea
contiene un mensaje del servidor de
correo Qmail, que se queja de una
conexión 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 envío por correo elec-
trónico de logs. En particular, los sis-
temas basados en Debian tienen
paquetes de Logcheck con una
configuración por defecto muy útil y
filtros para muchos servicios (por
ejemplo, para el servidor MySQL).
Esto significa que podemos configurar
un práctico sistema de filtrado de logs
con poco esfuerzo extra.
Algunos administradores recorda-
rán una alternativa a Logcheck deno-
minada Logdigest. Este programa fun-
ciona 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
versión de la herramienta en Python.
Pero si aún así todavía quieres inves-
tigar Logdigest, podemos encontrar
algo de material de lectura en su
página de SourceForge [3].
LogtailCuando monitorizamos archivos de
log y se nos notifican eventos, parece
lógico reaccionar a estos aconteci-
mientos con acciones definidas en un
proceso automatizado. El asistente de
Logcheck, Logtail, también se puede
utilizar para reaccionar ante eventos
específicos.
Para ello, crea un cronjob que se
comprueba periódicamente en un
archivo de log. La salida puede ser fil-
trada con una herramienta como Grep
o un script en Perl. Cuando el pro-
grama detecta un patrón específico,
puede desencadenar una acción,
como un sencillo mensaje de correo
electrónico al igual que en Logcheck.
Sin embargo, además de enviar correo
electrónico, se pueden poner en mar-
cha nuevos servicios o ejecutar otros
comandos. El Listado 2 muestra un
cronjob que reinicia el demonio de
MySQL si este falla.
Veloces LogridersUna gran desventaja de Logcheck y
Logtail es que se necesita llamarlos
regularmente a través de cron, por lo
que los programas no pueden reaccio-
nar de inmediato. Si estamos bus-
cando algo con más respuesta, pode-
mos probar Logsurfer [2]. El pro-
grama Logsurfer, que se basa en la
herramienta de análisis de logs
Swatch, toma un archivo de registro y
recupera las nuevas entradas en
tiempo real. Debido a que Logsurfer
está escrito en C, también ofrece ven-
tajas de rendimiento en comparación
con el shell script de Logcheck.
Mientras que Logcheck simple-
mente filtra los mensajes de registro
conocidos con el uso de una expre-
Monitorización de Ficheros Log • PORTADA
23Número 85W W W . L I N U X - M A G A Z I N E . E S
como Logsurfer permiten pre-configu-
rar una respuesta automática a los
avisos del sistema y otras entradas
críticas del registro.
Presentación de LogcheckEl archivo léeme de Logcheck ofrece
esta breve descripción de esta sencilla
pero versátil herramienta: “Logcheck
compara las entradas de log recientes
con una serie de conjuntos de patro-
nes de coincidencia de egrep que las
etiquetan como urgentes o las filtran
rutinariamente y envía por correo
electrónico los resultados al adminis-
trador “.
Una vez que configuramos Log-
check, éste vigila constantemente
nuestros archivos /var/ log/ syslog y
/var/ log/ auth.log, filtrando los suce-
sos sin importancia y enviando por
correo un resumen de los eventos más
importantes al administrador del sis-
tema (véase la Figura 1).
Con el cliente de correo adecuado y
los filtros correspondientes, podemos
almacenar los registros por hosts o
grupos en carpetas. Esta técnica nos
da una visión general de todos nues-
tros sistemas de un sólo 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
información de log de varios regis-
tros y muestra solamente las líneas
de un archivo que no se han mos-
trado con anterioridad. Para ello,
Logtail crea un segundo archivo lla-
mado filename.offset para cada regis-
tro y guarda la información del inodo
del archivo, tomando nota de la posi-
01 Feb 20 23:12:14 jupiter qmail: 1329775934.816939 delivery 19626:
deferral:
02 Sorry,_I_wasn’t_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 1: Correo desde Logcheck
01 * * * * * root /usr/sbin/logtail /var/log/syslog | grep -q “mysql exited unexpected” && /etc/init.d/mysql restart
Listado 2: Cronjobs con Logtail
01 <I>Match_regex Not_match_regex Stop_regex Not_stop_regex Timeout <I>[continue]<I> Action [...]<I>
Listado 3: Reglas de Logsurfer
PORTADA • Monitorización de Ficheros Log
26 Número 85 W W W . L I N U X - M A G A Z I N E . E S
coincidencia. Se
puede utilizar
un guión (-)
para marcar los
campos no utili-
zados.
AccionesLa Tabla 1
muestra las
palabras clave
potenciales de
Action para el último campo. Podemos
asignar una acción distinta para cada
regla que reaccione de manera dife-
rente ante diferentes eventos. Además
de ejecutar programas arbitrarios con
las acciones exec y pipe, la acción open
crea reglas dirigidas por contexto. El
programa almacena todas las líneas
que coincidan con una expresión regu-
lar. La acción report las genera más
tarde como un bloque completo de
entradas de registro contiguas.
sión regular, Logsurfer utiliza reglas
muy potentes. La sintaxis básica,
como se muestra en el Listado 3, es la
siguiente: Match_regex especifica la
expresión regular que debe cumplir la
línea de registro en la que estamos
buscando. El segundo campo,
Not_match_regex, nos permite excluir
patrones específicos. Si Stop_regex
encuentra una coincidencia, Logsur-
fer elimina la regla de la lista actual
de las reglas activas. El campo
Not_stop_regex describe los criterios
de exclusión. La entrada Timeout
define cuánto tiempo debería perma-
necer activa la regla. Si especificamos
un 0 aquí, el período de validez es
infinito.
El parámetro opcional continue
indica a la herramienta Logsurfer que
debería analizar la línea actual si se
aplica una regla previamente defi-
nida. Por defecto, Logsurfer deja de
leer una línea después de la primera
El Listado 4 contiene un ejemplo
sencillo de una regla que envía un
mensaje con la línea de log corres-
pondiente para un evento fuera de la
memoria. La primera expresión regu-
lar coincide con las líneas que contie-
nen la cadena kernel: Out of memory.
En este caso, la regla envía un correo
al usuario root. El asunto del correo
utiliza variables del patrón de bús-
queda para añadir la ID del proceso
($2 ) y otro tipo de información ($3).
Además, la regla entrega la línea de
log completa a la entrada estándar del
programa mailx.
Un ejemplo más complejo se mues-
tra con las tres reglas del Listado 5.
Detectan sesiones SSH y muestran
todos los datos de la sesión si el
usuario introduce una contraseña
incorrecta. Si no sucede nada
extraño, dentro de la sesión SSH (es
decir, si la contraseña es correcta),
las normas descartan los mensajes de
log.
Contextos como un Bufferde Memoria IntermediaComo mucho, la herramienta Log-
check podría filtrar Failed password
en este escenario, pero no podría
devolver los detalles acerca de la
sesión de SSH. Como alternativa,
podríamos filtrar todas las líneas de
log de SSH, pero esto nos daría dema-
siada información inútil y haría des a -
parecer las líneas realmente impor-
tantes. Logsurfer resuelve este pro-
blema con el uso de contextos, que
nos permiten almacenar temporal-
mente las líneas y volver a utilizarlas
cuando sea necesario.
Las tres reglas del Listado 5 sólo
tienen sentido en la combinación
dada. En un sistema basado en
Debian, podemos aplicarlas al archivo
de log /var/ log/ auth.log. Por razones
Figura 2: Con tan sólo tres reglas con Logsurfer podemos monitorizar los intentos de inicio
fallido de sesión en el puerto SSH.
01 ‘^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]:.*’ - - - 0 continue
02 open “$2” - 5000 86400 360003 report “/bin/cat” “$2”04 05 ‘^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]:
Failed password .*’ - - - 006 report “/bin/cat” “$2”07 08 ‘^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]:
Connection closed.*’ - - - 009 delete “$2”
Listado 5: Contexto de Logsurfer
Tabla 1: Palabras clave de acción
01 ‘kernel: Out of memory: Kill process ([0-9]*) (.*)’- - - 0
02 pipe “/usr/bin/mailx -s \”Warning! Out of memory! Process $2 killed:
$3\” root “
Listado 4: Enviar Correo
Valor Significado
ignore Ignora esta línea
exec Ejecuta el program a
pipe Ejecuta el programa y pasa la línea a stdin
open Crea un contexto
delete Cierra un contexto
report Ejecuta el programa y pasa la información de contexto a stdin
rule Crea una nueva regla
de simplicidad, generan como salida
toda la información directamente en
línea de comandos, pero sería posible
realizar otras acciones, como el envío
de un mensaje.
La primera línea identifica todas las
líneas de log del demonio SSH. La
acción open abre un nuevo contexto
en el que la regla utiliza el PID (entre
corchetes después de sshd) en la
sesión actual de SSH para identificar
las líneas pertenecientes a una sesión
SSH. También define los tiempos de
espera: si vencen, las normas también
generan como salida los datos de la
sesión. Lo importante aquí es la pala-
bra clave continue para asegurarnos
de que las siguientes reglas tienen
realmente efecto.
Si una línea de log contiene una
entrada Failed password (línea 5),
este ejemplo genera como salida todo
el contexto de la sesión SSH en la
línea de comandos. De nuevo, el PID
de la sesión SSH se utiliza para identi-
ficar el contexto. La regla de la línea 8
elimina el contexto de nuevo cuando
se cierra la sesión SSH. La Figura 2
muestra la salida de estas reglas en
una aplicación práctica.
Si usamos el modo tail, no debemos
olvidarnos de enviar la señal SIGHUP
al proceso de Logsurfer si utilizamos
las herramientas de Logrotate u otras
similares para crear un nuevo archivo
de log.
Desafortunadamente, Logsurfer
sólo está disponible como un paquete
de código fuente: no existen binarios
listos para usar en las distribuciones
de Linux más populares, pero compi-
larla e instalarla deben estar dentro
de las capacidades de cualquier admi-
nistrador de sistemas. Uno de los
autores ha preparado por su cuenta
algunos paquetes para distribuciones
basadas en Debian [4].
No olvide la SeguridadSin importar cuál sea la herramienta
de análisis de logs que utilice, debe
recordar siempre que no son siempre
el sistema y sus servicios los que
crean los mensajes de log, sino tam-
bién usuarios externos con sus accio-
nes. Un atacante podría, por ejemplo,
causar el desbordamiento del buzón
del administrador, echar abajo siste-
mas con expresiones cuidadosamente
Monitorización de Ficheros Log • PORTADA
27Número 85W W W . L I N U X - M A G A Z I N E . E S
elaboradas o ejecutar comandos arbi-
trarios.
La seguridad es un aspecto muy
importante en herramientas como
Logsurfer que analizan el registro del
sistema en tiempo real y pueden eje-
cutar scripts o programas arbitrarios.
Si partes del archivo de log se pasan a
programas externos como parámetros
o por medio de la salida estándar,
como en el primer ejemplo de este
artículo, un atacante potencialmente
podría manipular el programa. Los
usuarios de estas herramientas por
tanto necesitan endurecer las medi-
das de seguridad con los parámetros
que transfieren y la entrada estándar.
Para más información sobre cuestio-
nes de seguridad, podemos revisar la
página man de logsurfer.conf [5].
Sencillos o SofisticadosComo muestran los ejemplos anterio-
res, los administradores de sistemas
pueden ahorrarse una cantidad
enorme de tiempo mediante la auto-
matización del proceso de análisis de
archivos de log y si así se desea, de -
sen cadenar acciones.
Además de las herramientas descri-
tas aquí, muchas otras piezas útiles
de software pueden automatizar
nuestra respuesta ante eventos espe-
cíficos. En nuestro laboratorio,
hemos descubierto que Logsurfer fue
el más flexible de estos programas y
la solución con más opciones. La sin-
taxis puede parecer bastante compli-
cada a primera vista, pero nos da una
ventaja en escenarios complejos.
Como siempre, si se estudia el mate-
rial disponible y se está abierto a
nuevas ideas, os podéis ahorrar una
gran cantidad de trabajo monótono
en la administración de vuestros sis-
temas. �
[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] Página Man de logsurfer.conf: http://
www. crypt. gen. nz/ logsurfer/
man_logsurfer_conf. html
RECURSOS
Más del 30% de descuento respecto al precio de portada: Consigue 12 números por 54’90 Euros y todos los DVDs ¡Gratis!
A diferencia de otras publicaciones, Linux Magazine no llenará tu buzón de recordatorios para que renueves tu subscripción. Ésta se renovaráautomáticamente cada año. Recibirás una confirmación aproximadamente 30 días antes del final de tu periodo de subscripción, pero no serequiere que hagas nada para seguir suscrito.
¡No te pierdas Linux Magazine nunca más! La subscripción te asegura que recibas los conocimientos Linux de más alta calidad en tu domiciliocada mes.
Si por cualquier motivo decides dejar de leer Linux Magazine, puedes cancelar tu subscripción en cualquier momento. Te abonaremos el preciode todos los números que no hayas recibido. Sin preguntas, sin fechas de cancelación, sin problemas.
Linux Magazine es algo más que una revista de Linux. Patrocinamos grupos, congresos, proyectos y eventos relacionados con el Software Libre.Suscribiéndote a Linux Magazine garantizas que podamos seguir apoyando al Software Libre allá donde haga falta.
Kirs
ty P
arg
ete
r, 12
3R
F
Android • DESARROLLO
supuesto, de vez en cuandocompruebas si hay actualizacio-nes) – al menos tienes un buen
libro de desarrollo con Androidademás de esta revista – y te
encuentras muy ocupado progra-mando aplicaciones por diversión o por
trabajo. ¿Es eso todo lo que necesitas? Larespuesta dependerá de si deseas que tuvida sea más fácil o no. Aunque el SDK deAndroid [2] y las ADT [3] tienen bastanteque ofrecer, no lo hacen todo y antes o des-pués, querrás realizar algo que no podráshacer con lo que tienes. En este artículomostraremos algunas herramientas y libre-rías que puedes utilizar en el desarrollo detus aplicaciones Android. En la mayoría delos casos, los elementos que vamos a des-cribir han sido creados especialmente paraAndroid.
GuavaLa primera librería que deberías conoceres de Google y se llama Guava [4]. Dehecho, algunos programas de ejemplode Android que han sido publicadospor Google, se basan en Guava, que esuna librería de clases que sirve para
cubrir bastantes huecos. Digamos, porejemplo, que quieres realizar alguna ope-ración sobre cadenas de caracteres y nopuedes encontrarla en la clase estándar
Así que ya has instalado el SDK deAndroid, estás utilizando Eclipse[1] con las herramientas de
desarrollo de Android (ADT y por
String. O, quizás, quieras comprobar argu-mentos para validarlos. Guava es la res-puesta que andas buscando. Es de códigoabierto, robusta y estable. Para acceder ala librería, sólo tienes que ir a la página dedescarga, donde podrás encontrar unfichero ZIP que contiene el fichero JAR deGuava, la documentación de referencia dela API junto con la documentación de usode Guava con ProGuard (el ofuscador deaplicaciones Android) y otros documentosde ayuda. Vamos a presentar algunosejemplos útiles de clases:• com.google.common.io.LineReader –
Proporciona un método readLine() paracualquier objeto java.lang.Readable,tales como BufferedReader, FileReader oStringReader. Y muchas otras clasesrelacionadas con los flujos y los fiche-ros.
• com.google.common.base.Preconditions
– Proporciona métodos útiles para crearasertos sobre un parámetro que debenser ciertos y lanza excepciones del tipoIllegalArgumentExcept, conteniendomensajes con sentido, en el caso de queno se cumpla el aserto. Por ejemplo, envez de escribir
if (count <= 0) {
throw new U
IllegalArgumentException(U
Eclipse y el SDK de Android son una buena forma de comenzar a desarrollar
aplicaciones para Android, pero una vez que hayamos empezado, encontra-
remos que hay cosas que no se pueden hacer con el kit inicial. Vamos a ver
algunas librerías y herramientas que nos harán la vida más fácil.
POR DAVE MACLEAN
Más allá de Eclipse y del SDK de Android
HerramientasAndroid
35Número 85W W W . L I N U X - M A G A Z I N E . E S
DESARROLLO • Android
36 Número 85 W W W . L I N U X - M A G A Z I N E . E S
Guava en el ordenador yextraer el fichero JAR. Luego,en el proyecto de Eclipse, pul-sas con el botón derecho delratón en el nombre del pro-yecto y elige Build Path yluego Configure Build Path...En el cuadro de diálogo queaparece, pulsa en la pestañaLibraries y luego en el botónAdd External JARs… Navegahasta el fichero JAR de Guava,selecciónalo y pulsa Open. Porúltimo, haz clic en OK y listo.
API de FacebookFacebook ofrece una API parapermitir a los desarrolladoresintegrar sus programas con lasfuncionalidades de Facebook.Aunque siempre puede unoponerse a estudiar detenida-mente la documentaciónhasta el mínimo detalle, es mejor utilizaruna librería específicamente creada paraintegrar las aplicaciones Android con Face-book.
En el sitio web de la librería de Androidpara Facebook [5] se puede encontrar unfichero descargable con el código fuenteque encapsula la API de Facebook pormedio de una serie de clases. Además, vie-nen ejemplos de aplicaciones y una copiade la aplicación Facebook que se puedecargar en un emulador.
En la página de los desarrolladores deFacebook [6] hay disponible noticias einformación directa de Facebook. La docu-mentación de cómo funciona interna-mente es especialmente buena, ya queexplica el modelo de datos y la forma denavegar a través de los grafos sociales yotras características propias del sitio social.
Para utilizar la librería se necesita unacuenta verificada de Facebook, lo quequiere decir que Facebook debe validar yasea el número de teléfono o una tarjeta decrédito asociada al nombre de usuario deFacebook, ya que quiere tener algo tangi-ble que lo ligue a sus desarrolladores. Tam-bién hay que registrar la aplicación en elsitio antes de poder integrarla. Facebookcreará un ID interno para la aplicación quese necesitará para poder conectarse a laAPI. También hay que aceptar los términosde servicio para poder definir la aplicación.
Una vez que se hayan completado estospasos, podrás ver el perfil de la aplicación,que incluye el appID que habrá que esta-
‘debe ser positivo: ‘ + count);
}
podría escribir lo siguiente:
checkArgument(count > 0, U
‘debe ser positivo: %s’, count);
La clase Preconditions también tienemétodos para comprobar valores null;comprobar posiciones en arrays, listas ocadenas; comprobar estados correctos ymucho más. La operación básica con-siste en evaluar una expresión y lanzarla excepción apropiada con una cadenaexplicativa en el caso de que esa expre-sión se evalúe como falsa. Dicho de otromodo, valida el aserto y se queja si no esverdadero. Como muchos programado-res no realizan una comprobación ade-cuada de parámetros, esta funcionalidadal menos facilita la escritura de códigode modo que los programadores puedanrealizar estas comprobaciones.
• com.google.common.base.Splitter –Complementaria a la clase Joiner, laclase Splitter proporciona un métodopara separar cadenas y similares queactúa sobre Strings o sobre instancias deobjetos CharSequence y que las puedeseparar haciendo uso de toda clase deseparadores diferentes. El resultado esun Iterable de elementos. Éste es unejemplo en el que se separa una cadenaen sus elementos, pero se desea que elresultado sea limpio y no devuelva cade-nas vacías:
private static final Splitter U
mySplitter = Splitter.on(‘,’)U
.trimResults()U
.omitEmptyStrings();
Iterable<String> tokens = U
mySplitter.split(U
“one, ,three, four,”);
El código anterior asigna a tokens [“one”,
“three”, “four”]. Se pueden utilizar otrostrucos para crear un separador que puedautilizar cualquier conjunto de caracterescomo elemento separador o una cadena demulticaracteres como un separador.
Únicamente he mencionado unas pocasclases de las disponibles en la libreríaGuava, pero merece la pena echarle un vis-tazo a todas las demás. Si decides utilizarla librería Guava en tu aplicación paraAndroid, añadirla es realmente fácil. Pri-mero hay que descargar el fichero ZIP de
blecer en Android para que la aplicaciónfuncione correctamente. Lo mejor quepuedes hacer es comenzar con uno de losejemplos de aplicaciones de Facebookincluidos en la descarga. Uno de ellos esmuy simple y obtiene datos muy rudimen-tarios, el otro puede capturar flujos deFacebook (tales como feeds de noticias). ElappID debe conectarse al fichero App.java.Téngase en cuenta que estas aplicacionesde ejemplo también incluyen gráficos deFacebook para los iconos y los botones.
A pesar de que las instrucciones de Face-book explican cómo crear un proyectoEclipse separado para las clases correspon-dientes y luego ligar la aplicación con esteproyecto separadamente, en mi opiniónme resulta más fácil importar las clasescorrespondientes dentro del proyecto quehe creado a partir de uno de los proyectosde ejemplo. En mi nuevo proyecto, estaoperación produjo dos paquetes: uno paralos ficheros del ejemplo y otro para losficheros de la clase correspondiente. A par-tir de aquí, hay que renombrar los paque-tes de ejemplo con el nombre de lospaquetes de la aplicación. El único pro-blema que tuve fue que una de las referen-cias a los recursos en FbDialog.java, que
no se resolvió hasta que añadí una senten-cia import con el nombre del paquete demi nueva aplicación.
Para que tu aplicación pueda entendersecon Facebook, aún deberás realizar algu-nas tareas más de integración. Desde ellado de Facebook, en el App Settings, bajo
Figura 1: Iconos para Android usando la imagen de mi perro.
Mobile and Devices, hay un campo llamado Android Key Hash.Aquí tienes que introducir tu certificado de publicación comoun valor hash. Para obtener este valor, las instrucciones dicenque tienes que realizar la siguiente operación desde la línea decomandos:
keytool -exportcert U
-alias androiddebugkey U
-keystore ~/.android/U
debug.keystore | openssl U
sha1 -binary | openssl base64
Estas instrucciones son correctas si estás desarrollando tu apli-cación y probándola en el emulador o en tu propio dispositivopersonal, pero no para cuando se distribuya la aplicación. Hayque exportar el certificado utilizado para firmar la versión delproducto de la aplicación, que espero que sea en un almacénde claves diferente con un alias también diferente. Además, amenos que no te encuentres en un Mac o en una máquinaLinux, no tendrás todavía los programas de OpenSSL.OpenSSL es relativamente fácil de instalar en Linux usando uncomando como:
sudo apt-get install openssl
En el caso de Windows o de Mac, hay que buscar un instala-ble que proporcione el comando openssl. Deberías poderencontrar uno de forma gratuita, pero tendrá varias posibilida-des de elección dependiendo de su configuración.
Una vez que la aplicación de ejemplo de Facebook se estéejecutando correctamente, podrás modificarla como desees. O,simplemente, puedes aprender de ella la forma de incorporarlas funciones de Facebook en tu propia aplicación.
Utilidades de Interfaz de Usuario deAndroidAhora, veamos cómo podrías crear los gráficos para tu aplica-ción, incluyendo no sólo tus iconos (uno para cada resoluciónde pantalla soportada), sino los gráficos de los menús, las noti-ficaciones y las pestañas. Y no te olvides de los gráficos de altaresolución de Android Market. Aunque siempre puedes acudira algún paquete comercial, como Photoshop o uno libre comoGIMP [7], también puedes echarle un vistazo al Android AssetStudio, disponible en la página de los Android UI Utilities [8].
El Android Asset Studio está basado en web y proporcionanumerosas funcionalidades para trabajar con colores, márge-nes, imágenes, textos y, en definitiva, hacer que las imágenestengan un buen aspecto para poder utilizarlas en las aplicacio-nes para Android. Simplemente hay que pulsar un botón paradescargar un fichero ZIP con el fichero gráfico en las diversasresoluciones que requiere Android, lo que es mucho más fácilque tener que estar cambiando las resoluciones de formamanual. El único inconveniente es que Android Asset Studioestá diseñado para ejecutarse en el navegador Chrome, aun-que puede que funcione en otros navegadores, aunque no hayninguna garantía de ello. El Android Asset Studio está limi-tado, en el sentido de que no se pueden crear las imágenesdirectamente, de modo que habrá que utilizar Photoshop oGIMP para crear el fichero inicial de la imagen. Android Asset
una lista de errores conocidos, la docu-mentación y el código fuente. Habitual-mente el código fuente se puede ver direc-tamente desde el navegador: utiliza la pes-taña Browse que se encuentra en Source.También se puede utilizar el sistema Sub-version para descargar el código fuente alordenador de trabajo. Si aún no tienes ins-talado Subversión, puedes descargarte unaversión para tu sistema operativo [12].Téngase en cuenta que también hay dispo-nible un plugin para Eclipse.
ACRAComo ya habrás visto, Android Marketpuede proporcionar algunos informes deerrores a los desarrolladores, pero esa can-tidad de información no está tan detalladacomo podría esperarse. Afortunadamente,la librería ACRA puede serte de gran ayuda[13].
ACRA envía información a un lugar cen-tral cada vez que tu aplicación falle. Estelugar solía ser una hoja de cálculo de Goo-gle Docs que ha debido crearse con anterio-ridad. Posteriormente se añadió el soportepara poder enviar la información a otroslugares, como a un script personalizado enInternet o incluso por correo electrónico.
Para implementar la opción de GoogleDocs, los pasos a seguir son bastante sim-ples. Primero, debes crear una hoja de cál-culo en Google Docs en tu cuenta de Goo-gle a partir de la plantilla proporcionada –fíjate en la clave del formulario. Luego, tie-nes que añadir la librería a tu proyecto,usando la misma técnica descrita para lalibrería Guava. A continuación, en el Lis-tado 1 se muestra cómo extenderandroid.app.Application para añadir unaanotación a la definición e inicializar lalibrería ACRA en onCreate(). Dicho de otromodo, se va a añadir una clase nueva alproyecto llamada MyApplication, cuyasuperclase es android.app.Application.Luego, hay que hacer que se parezca alListado 1.
Como la mayoría de las opciones denotificación envían información a travésde Internet, habrá que añadir un permisopara android.permission.INTERNET alfichero AndroidManifest.xml. Y, mientrasse modifica el fichero del manifiesto, nodebes olvidar cambiar el nombre de laaplicación a MyApplication. ¡Y eso estodo! Ahora, cada vez que la aplicaciónfalle en el dispositivo, aparecerá una nuevaentrada en la hoja de cálculo, incluyendomultitud de detalles acerca de laconfiguración del dispositivo, además delos detalles de la excepción. Como la apli-cación manda información por Internet, locorrecto es informar a los usuarios de ellopara que sean conscientes antes de instalarla aplicación.
Hemos proporcionado algunos ejemplosde librerías y herramientas de interés paradesarrollar aplicaciones para Android.Ahora es un momento excitante para serprogramador de Android, de modo queespero que mi contribución haya aumen-tado esa excitación. �
Studio sirve para obtener los ficheros delas imágenes finales para la aplicación.Para hacerse una idea de su fácil uso, laFigura 1 muestra el resultado de cargar unaimagen de mi perro Max y simplementepulsando algunos botones, se centra laimagen en el círculo. Después, sólo conpulsar el botón Download, tendremos dis-ponibles las imágenes.
Probablemente hayas visto que hay otrosdos recursos en la página de Android UIUtilities: la herramienta Pencil y las planti-llas de iconos para Photoshop. La herra-mienta Pencil es un plugin para Firefox,pero también puede ejecutarse de formaindependiente. Esta herramienta permitecrear dibujos y especialmente prototipos deGUI fácilmente. Si utilizas Photoshop paratus gráficos, es posible que desees utilizarla herramienta de plantillas de iconos. Paraobtenerla, hay que hacer clic en la pestañaDownloads en la parte superior de lapágina de Android UI Utilities y buscar losficheros ZIP de las plantillas de iconos.
Más Proyectos paraAndroidHemos descrito un par de proyectos delsitio Project Hosting de Google, pero haymuchos más proyectos disponibles aquí ytodos son de código abierto. Para buscar losrelacionados con Android, se puede utilizarla URL proporcionada en los recursos [9] ysiguientes. Esta búsqueda devolverá milesde proyectos que están de alguna maneraligados a Android, pudiéndose añadir pala-bras claves para refinar los resultados. Elresultado es un gran tesoro repleto de apli-caciones y de código fuente a partir de losque se puede mejorar los conocimientossobre Android. Un ejemplo interesante esZXing, la aplicación para códigos de barra[10] o csipsimple, una aplicación SIP pararealizar llamadas VoIP [11].
Cada proyecto tiene pestañas que nosmuestran diferentes aspectos de los mis-mos. Normalmente, descargas, una wiki,
DESARROLLO • Android
38 Número 85 W W W . L I N U X - M A G A Z I N E . E S
DESARROL
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] Librerías Guava: http:// code. google.
com/ p/ guava-libraries/
[6] Librerías Android para Facebook:
http:// developers. facebook. com/
docs/ reference/ android
[7] Página para programadores de Face-
book:
http:// developers. facebook. com
[8] Android Asset Studio: http:// code.
google. com/ p/ android-ui-utils/
[9] Búsqueda 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] Librería ACRA:
http:// code. google. com/ p/ acra/
Listado 1: Modificando su Aplicación para ACRA
01 @ReportsCrashes(formKey = “su clave del formulario”)
02 public class MyApplication extends Application {
03 @Override
04 public void onCreate() {
05 // La siguientes líneas inicializan ACRA
06 ACRA.init(this);
07 super.onCreate();
08 }
09 }
idea escribirlas de tal modo que poda-
mos recuperarlas de nuestro archivo
personal cuando pase el tiempo.
Antes para llevar esto a cabo necesitá-
bamos comprar partituras en nuestra
tienda de música local. Hoy, sin
embargo, gracias al software, las cosas
resultan mucho más fáciles. El pro-
grama TuxGuitar [1] es una gran solu-
ción 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 notación alternativa para música
que representa un mástil de guitarra – y
para reproducir los resultados cuando
hemos completado la entrada. De este
Tux Guitar • LINUX USER
65Número 85W W W . L I N U X - M A G A Z I N E . E S
Como la memoria de ninguno de
nosotros es perfecta, necesita-
mos guardar una grabación de
nuestras ideas cuando las desarrolla-
mos. En música, cuando componemos
nuevas melodías durante años, es buena
Con TuxGuitar y TiMidity podemos escribir y componer canciones sin
que sea necesario saber leer música. También podemos practicar,
reproducir nuestras propias composiciones y añadir ritmos de acompa-
ñamiento de instrumentos. POR VINCZE-ARON SZABO
Componer canciones con TuxGuitar
Clase Maestra
formato, aunque también soporta el uso
de formatos de ficheros de programas
similares como Guitar Pro o Power Tab.
Instalación y Resolución deProblemasLa mayoría de las distribuciones poseen
TuxGuitar en sus repositorios. No obs-
tante, podemos visitar la sección GNU/
Linux Releases del proyecto que se
encuentra en la página Download para
recoger los paquetes de descarga, inclu-
yendo un instalador genérico y binarios
para varias distribuciones. Además,
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 través del paquete
timidity. Luego, en TuxGuitar, pulsamos
Tools | Settings para abrir el diálogo
Configure TuxGuitar, seleccionamos
Sound y una entrada TiMidity coinci-
dente en la lista MIDI Port y pulsamos
OK para aplicar los cambios.
Si TuxGuitar sigue fallando para
reproducir cualquier sonido, salimos de
modo, podemos crear composiciones y
coger nuestra guitarra y acompañar
mientras están tocando. Un metrónomo
nos ayuda a seguir el tempo.
No necesitamos saber leer música
para usar TuxGuitar aunque, definitiva-
mente, ayuda. De la misma manera que
ayuda si somos músicos, si podemos
reproducir un par de acordes con la gui-
tarra y si podemos leer notaciones de
tablaturas. Cuando iniciamos TuxGuitar
por primera vez, no deben preocupar-
nos el excesivo número de botones del
programa o la terminología 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 número de instrumentos que
se encuentran disponibles. TuxGuitar
almacena nuestros ficheros en su propio
LINUX USER • Tux Guitar
66 Número 85 W W W . L I N U X - M A G A Z I N E . E S
Figura 1: TuxGuitar se centra en las acordes de la guitarra, aunque también podemos mostrar las notas correspondientes.
Figura 2: TuxGuitar también soporta temas de percusión. El presentador del tema nos ofrece una buena perspectiva de los temas existentes y
de los instrumentos asignados a ellos.
Figura 3: En el diálogo Properties podemos
conseguir el TuxGuitar virtual para hacer
coincidir nuestra guitarra real.
la aplicación y la reiniciamos en una
ventana terminal introduciendo tuxgui-
tar. Si vemos un mensaje como /dev/
sequencer command o file not found, es
que no hay un secuenciador MIDI ejecu-
tándose. En este caso, necesitamos rei-
niciar TiMidity manualmente escri-
biendo:
timidity -iA -Os
Si nos topamos con otros problemas,
podemos comprobar la wiki de TuxGui-
tar [3] para más 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 pul-
sado el botón izquierdo del ratón y dis-
poner 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 diálogo y marcamos/ des-
marcamos los cuadros correspondien-
tes. 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.
PistasPara nuestros primeros
experimentos es buena idea
usar el fichero TuxGuitar de
muestra. Seleccionamos
File | New para crear un
nuevo fichero. Bajo la hoja
de composición existe una
vista de las pistas que
indica lo que reproduce
cada instrumento. Para aña-
dir más pistas selecciona-
mos Track | Add track y
luego, por ejemplo, añadi-
mos una parte de bajo a
nuestras composiciones.
Este método nos permite
reunir nuestra propia
banda, instrumento por ins-
trumento (Figura 2).
En la vista de la pista,
TuxGuitar también nos
muestra las barras como
pequeños cuadros. Más
tarde podremos seguir esta
presentación para ver en qué barra nos
encontramos y cuándo comienza o se
detiene un tema específico. Pulsar con
el botón derecho del ratón sobre un
tema nos permite modificar sus propie-
dades. En el diálogo Properties que apa-
rece (Figura 3), podemos definir el nom-
bre del tema, un color asociado, el tipo
de instrumento y el número de cuerdas.
El diálogo Properties es útil si deseamos
usar un bajo de cuatro o cinco cuerdas o
añadir otra guitarra de seis cuerdas.
Para cambiar el modo en el que el ins-
trumento se sintoniza, cambiamos el
valor en el cuadro Offset de modo que
TuxGuitar cambie las notas y acordes
para que coincidan con la sintonía de
un instrumento particular.
Para editar una canción, necesitamos
primero añadir más barras seleccio-
nando Measure | Add Measure. Para evi-
tarnos tener que acudir a este elemento
de menú continuamente, aparece un
cuadro de diálogo que nos permite aña-
dir múltiples barras al mismo tiempo.
Finalmente, definimos el número y posi-
ción de las nuevas barras (antes o des-
pués de la posición actual o al final de la
canción).
Notas y acordesLa manera en la que añadimos notas a
nuestra canción depende de lo que de-
seemos grabar. Por ejemplo, podemos
usar un editor de acordes para compo-
nerlos o puntear cuerdas de guitarra
individuales. Para producir un tono
específico, simplemente pulsamos la
cuerda requerida en el acorde y se dibu-
jará un pequeño cuadro. Seguidamente,
introducimos el número del traste para
aguantar esta cuerda. Para tocar múlti-
ples cuerdas al mismo tiempo, podemos
usar las teclas de flecha para subir o
bajar a la cuerda requerida y de nuevo
introducir el número del traste cuando
consigamos llegar.
Aunque de este modo podremos com-
poner acordes, tenemos una opción más
fácil: el editor de acordes nos permite
seleccionar acordes completos o, si
fuera necesario, también “dibujarlos”
nosotros mismos (Figura 4). Para abrir
el editor de acordes, seleccionamos Beat
| Chord | Insert chord o pulsamos el
botón A. El editor parece bastante recar-
gado, 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 sección del Editor de acordes se
encuentra la sección del mástil de guita-
rra. Cogemos la barra de desplaza-
miento que se encuentra junto al mástil
para definir el traste en el que estamos
componiendo el acorde. Un número al
lado del mástil nos dice qué traste está
actualmente funcionando. Ahora, pulsa-
67Número 85W W W . L I N U X - M A G A Z I N E . E S
Figura 4: El editor de acordes nos permite crear acordes exóticos o comunes y añadirlos a nuestros acordes
con sólo un par de clics.
Tux Guitar • LINUX USER
Toque EfectivoTuxGuitar nos permite aplicar
técnicas para tocar la guitarra
como ligaduras ascendentes y
ligaduras descendentes o sli-
des de notas individuales. Para
hacerlo, pulsamos sobre la
nota en el acorde y selecciona-
mos el efecto requerido en
Beat | Effects. Si usamos
mucho esta técnica, es buena
idea recordar los atajos de
teclado coincidentes (Tabla 1).
Si deseamos enmudecer con la
palma (palm mute) una com-
posición completa, vamos a
apreciar no tener que navegar
por los menús para cada nota.
Tras introducir una nota,
podemos moverla a otra cuerda o
mediante un semitono usando un atajo
de teclado. Para hacerlo, seleccionamos
la nota y tocamos una de las teclas de
flecha mientras mantenemos pulsada la
tecla Mayúsculas. Las teclas de flecha
Arriba y Abajo mueven la nota a otra
cuerda y las de Derecha e Izquierda las
mueven mediante un semitono. El menú
Beat posee funciones adicionales que
podemos aplicar a las notas.
Después de haberlas escrito, no debe-
mos preocuparnos si descubrimos que
nos encontramos en la tecla errónea. En
lugar de cambiar todas las notas por
ejemplo dos semitonos abajo, el menú
Tools posee la funcionalidad Transpose,
que nos ayuda en este caso.
En el diálogo Transpose, podemos
seleccionar el número de semitonos a
transportar con la opción Transposition
Semitones. Hay más opciones relaciona-
das con el efecto de la transposición.
Pero ¿debería TuxGuitar transponer
todas las barras (all measures) o simple-
mente las actuales (only this measure)?
Este cambio sólo se aplicaría a la pista
actual, aunque Apply to all tracks nos
permite aplicar las transposiciones a
todos los temas en el fichero de cancio-
nes actuales.
En una composición con múltiples
temas, es posible que notemos que un
instrumento es demasiado silencioso
comparado con los otros y no podamos
oír el instrumento de la melodía o el
ritmo. Para este problema, TuxGuitar
tiene un mezclador, al que podemos
acceder vía View | Show Mixer. Los des-
lizadores nos permiten modificar el
volumen de cada tema o completamente
Mute las temas que prefiramos no oír.
Sección de RitmoTuxGuitar también nos permite crear un
tema de percusión. Para hacerlo, pulsa-
mos con el botón derecho del ratón una
nueva pista y luego comprobamos el
cuadro Percussion Track en el diálogo
Properties. Tras cerrar el diálogo, vere-
mos una entrada Percussions en la
columna Instrument de la vista del
tema. Como introducir la parte del tam-
bor en acordes es difícil de hacer, el edi-
tor matriz nos ayuda a simplificar el
proceso. Tras habilitar la pista de percu-
sión, 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 selección de los
instrumentos de percusión disponibles,
mientras que las otras columnas repre-
sentan 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 percu-
sión en ciertas posiciones en una barra,
pulsamos el cuadro correspondiente.
Pulsando otra vez lo desmarcamos.
Como podemos usar el editor en el
fondo, el diálogo no bloqueará la ven-
tana, lo que nos permite continuar tra-
bajando en ambos sitios en paralelo.
mos para definir qué cuerdas están pul-
sadas, abiertas a la izquierda o no pul-
sadas. TuxGuitar visualiza esta informa-
ción como un punto negro, un círculo
negro o una “x” respectivamente.
Por ejemplo, si introducimos un
acorde principal A, veremos A (100%).
Un valor inferior a éste indica que el
acorde que introdujimos no coincide
completamente con el nombre mos-
trado. Si pulsamos el nombre del
acorde, TuxGuitar nos muestra un
número de variantes en el acorde en el
tercio inferior del editor. Si selecciona-
mos un acorde de esta lista y pulsamos
Add, el nombre del acorde aparece bajo
el botón pulsado. Podemos seleccionar
este acorde más tarde en el menú Beat |
Chord, sin tener que volver a través del
editor de acordes.
LINUX USER • Tux Guitar
68 Número 85 W W W . L I N U X - M A G A Z I N E . E S
Figura 5: El Editor Matrix nos ayuda a rellenar el tema de percusión con instrumentos típicos.
Tabla 1: Atajos de Teclado ÚtilesFunción Atajo
Ir a la barra siguiente [Ctrl]+[Right arrow]
[Ir a la barra previa [Ctrl]+[Left arrow]
Ir al tema siguiente [Ctrl]+[Down arrow]
Ir al tema previo [Ctrl]+[Up arrow]
Ir al primer compás [Ctrl]+[Shift]+[Up arrow]
[Ir al último compás [Ctrl]+[Shift]+[Down arrow]
[Abrir el editor [A]
[Vibrato [V]
Nota bend (curva) [B]
Slide [S]
Ligadura ascendente/
descendente
[H]
Palm mute [P]
Los clics crean automáticamente una
entrada de nota en el acorde.
PartituraTuxGuitar puede crear una copia analó-
gica de nuestra composición impri-
miendo la partitura o creando un docu-
mento PDF. La función PDF se encuen-
tra localizada en File | Export. La funcio-
nalidad de exportar nos da más opcio-
nes, tales como crear ficheros MIDI que
podemos obtener mediante un repro-
ductor de medios.
TuxGuitar también ofrece a los usua-
rios un método 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 ele-
gir configuraciones para facilitar el pro-
ceso de aprender una composición. Las
listas Tempo nos permiten definir la
velocidad de reproducción, que TuxGui-
tar puede aumentar gradualmente de
acuerdo a la velocidad de incremento
que introdujimos en el cuadro incre-
ment 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 diálogo, TuxGuitar marca el
final del bucle mostrando un punto rojo
en la barra seleccionada bajo Play to
measure. Para propósitos de aprendi-
zaje, también podemos habilitar el
metrónomo mediante Player | Metro-
nome.
Una cantidad considerable de mate-
rial de la web puede ayudarnos a apren-
der lecciones de guitarra. Un buen sitio
a visitar es Ultimate Guitar [4], donde
podemos buscar nuestras canciones
favoritas y filtrar los resultados de bús-
queda 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 comuni-
dad TuxGuitar [5].
Tras registrarnos, podemos acceder a
los ficheros directamente en TuxGuitar
con Toools | Browser. Este paso abre un
pequeño diálogo del mismo nombre,
donde podemos establecer acceso a tra-
vés del elemento Collection | New | Com-
munity Files. Para hacerlo, necesitamos
nuestro nombre de usuario y la contra-
seña que introdujimos cuando nos regis-
tramos.
ConclusionesTuxGuitar va más allá de su propósito,
ya que gracias a este útil programa,
obtendremos resultados impresionantes
muy pronto y, lo más importante, nos
soporta cuando necesitamos practicar
una composición que ya existe. En
resumen, TuxGuitar es una pieza
impresionante del software de código
abierto. �
Tux Guitar • LINUX USER
69Número 85W W W . L I N U X - M A G A Z I N E . E S
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/
RECURSOS
Figura 6: El mástil de la guitarra nos muestra dónde colocar nuestros dedos para tocar las acordes.
Adonde vayas...
... Linux Magazineva contigo.
http://www.linux-magazine.es/digital
Lee Linux Magazine desde cualquier sitio con nuestra subscripción digital.Accede a todos los números en PDF entrando en nuestro sitio.Encuentra lo que buscas con un sencillo formulario de búsqueda.Mantén tu propia biblioteca de artículos y léelos desde cualquier dispositivo.
81Número 85W W W . L I N U X - M A G A Z I N E . E S
EVENTOS
Información de Contacto
DirectorPaul C. Brown
CoolaboradoresPaul C. Brown, José María Ruíz, Oliver Frommel,Klaus Knopper, Jose María Lancho, KristianKissling, Martin Streicher, Joe Brockheimer
EditoresPaul C. Brown, Alina Caravaca Chaves
TraductoresPaqui Martín Vergara, Víctor Tienda, FranciscoMolinero
MaquetaciónMiguel Gómez Molina, Alina Caravaca Chaves
Diseño de PortadaPinball [email protected]
Publicidadwww.linux-magazine.es/ pub/
Para EspañaMarketing y Comunicaciones [email protected].: (+ 34) 952 020 242Fax.: (+ 34) 951 235 905
Para el Resto del MundoPetra Jaser [email protected] Tel.: (+49) 8999 34 11 23Fax.: (+49) 8999 34 11 99
Director EditorialPaul C. Brown
Jefe de ProducciónMiguel Gómez Molina
Subscripciones:www.linux-magazine.es/ magazine/subsPrecios Subscripción España: 54,90 €Europa: 64,90 €Resto del Mundo - Euros: 84,90 €[email protected].: (+34) 952 020 242Fax.: (+34) 951 235 905
Linux MagazineLinux New Media Spain, S.L.Edfco. Hevimar, Planta 2, Ofic. 16C/Graham Bell nº 629590 - Málaga ESPAÑA [email protected].: (+34) 952 020 242
(+34) 951 235 904Fax.: (+34) 951 235 905
www.linux-magazine.es - Españawww.linux-magazine.com - Mundowww.linux-magazine.co.uk - Reino Unidowww.linux-magazine.com.br - Brasilwww.linux-magazine.pl - Polonia
Si bien se toman todas las medidas posibles para garantizar la precisión del contenido de los artículos publi-cados en Linux Magazine, la editorial no se hace responsable de imprecisiones aparecidas en larevista. Asimismo, Linux Magazine no comparte necesariamente las opiniones vertidas por sus colaboradores en sus artículos. El riesgo derivado del uso del DVD y el material que contiene corren por cuenta del lector. El DVD es estudiado escrupu -losamente para confirmar que está libre de virus y errores.
Copyright y Marcas Registradas © 2012 Linux NewMedia Spain, S.L. Linux New Media Spain S.L. prohíbela reproducción total o parcial de los contenidos deLinux Magazine sin su permiso previo y por escrito.Linux es una Marca Registrada de Linus Torvalds.
Impreso en Polonia
Impresión: ArtDruck
DVDs: Fermata
Distribución: SGEL
Depósito Legal: MA-116-2005
ISSN edición impresa: 1576-4079
ISSN edición online: 1699-2237
Calendario de Eventos
España e Hispanoamérica
Evento Fecha Ciudad / Región Sitio Web
Barcelona Ruby Conference 08 - 09 Sep Barcelona, España baruco.org
Software Freedom Day 2012 15 Sep Mundial softwarefreedomday.org
Open Source Hardware Convention 2012 21 - 23 Sep Madrid, España www.oshwcon.org
Libre Software World Conference 2012 08 - 10 Oct Santiago de Comp., España www.libresoftwareworldconference.com
LinuxCon Europe 07 - 09 Nov Barcelona, España events.linuxfoundation.org
Resto del Mundo
Evento Fecha Ciudad / Región Sitio Web
Cloud East Africa Summit 07 Sep Nairobi, Kenya www.cloud-eastafrica.com
XDC2012 19 - 21 Sep Nuremberg, Alemania wiki.x.org/wiki/Events/XDC2012
Apps World 02 - 03 Oct Londres, R.U. www.apps-world.net/europe
Webit Congress 10 - 11 Oct Estanbul, Turquía www.webitexpo.com
LibreOffice Conference 2012 17 - 19 Oct Berlín, Alemania conference.libreoffice.org
Ubucon 2012 19 - 21 Oct Berlín, Alemania ubucon.de
OpenSuse Conference 2012 20 - 23 Oct Praga, Chequia en.opensuse.org/Portal:Conference
Strata Conference 2012 23 - 25 Oct Nueva York, EE.UU. strataconf.com
LISA '12 09 - 14 Dic San Diego, EE.UU. www.usenix.org/events/lisa12
CeBIT 2013 05 - 09 Mar, 2013 Hannover, Alemania www.cebit.org
LinuxTag 2013 22 - 25 Mar, 2013 Berlín, Alemania www.linuxtag.org
Barcelona RubyConferenceFecha: 08 - 09 Sep.
Lugar: Barcelona, España
Web: baruco.org
Libre SoftwareWorld ConferenceFecha: 18 - 19 Oct.
Lugar: Santiago de Composela, España
Web: www.libresoftwareworldconfer-
ence.com
OSWC 2012
Fecha: 08 Oct. - 10 Oct.
Lugar: Madrid, España
Web: www.oshwcon.org
PRÓXIMO NÚMEROPRÓXIMO NÚMEROiT
em
pu
sfu
git, 1
23R
F.co
m
Dispositivos yHardware
A LA VENTA: OCTUBRE 2012
82 Número 85 W W W . L I N U X - M A G A Z I N E . E S
Síguenos 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/
Hace ya algún tiempo que hablar de “Linux” en el contextode la alta tecnología es hablar de algo más que de software.Los móviles y tablets, el prototipado electrónico, los chipsetsabiertos y sus especificaciones abiertas, y los terminalessupuestamente obsoletos, pero que viven gracias al soft-ware libre, dibujan la nueva frontera de los profesionales yaficionados a las tecnologías abiertas.Así que, ya sabes, si te gusta el cacharreo, no te pierdas elnúmero 86 de Linux.