Sorry, the english section of my blog is under maintenance, I will start bringing content back up shortly, If you want to check my progress, here is the list of documents already translated:




In the mean time feel free to ping me via Twitter.

Hoy en día el cuello de botella a nivel de comunicación son los discos duros. con largos tiempos de búsqueda, escritura y lectura son excesivamente lentos si lo comparamos con las velocidades de RAM. Hace unos años era un lujo montar discos virtuales en RAM y se usaban temporalmente y para cosas puntuales como cuando en gentoo se hacia un emerge -e world y montaba /var/tmp/portage en RAM.

Para usuarios que el principal uso de su computadora es navegar en Internet bien sea por trabajo (nagios por ejemplo), escribir artículos o simplemente trolear este tip les puede ser útil si poseen suficiente RAM.

En Fedora podemos mover el cache de Google Chrome y de Firefox a RAM creando un ramdisk y montándolo, luego configuramos los exploradores para que usen estos directorios. Lo primero es editar el archivo /boot/grub/grub.conf y agrega ramdisk_size=512000 justo antes de quiet splash en la linea de kernel que este usando.

 title Fedora ramdisk (2.6.37.i686)
 root (hd1,0)
 kernel /boot/vmlinuz-2.6.37.i686 ro root=UUID=f91d2720-7838-43d3-a3a4-5c993533d0 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb ramdisk_size=512000 quiet
initrd /boot/initramfs-2.6.37.img``

Luego edita tu /etc/rc.local y agrega estas lineas para formatear el ramdisk, montarlo, crear los directorios necesarios para FireFox y Chrome y darle la permisologia necesaria.

# RAM disck para cache de browsers
mke2fs -m 0 /dev/ram0
mount /dev/ram0 /tmp/ram/
mkdir -p /tmp/ram/firefox
mkdir -p /tmp/ram/chrome
chmod 777 /tmp/ram/ -R

Estos comandos me funcionan con Fedora (estoy seguro que en cualquier otra distro funcionaria). Para hacer que FireFox guarde su cache allí debes agregar o modificar su conflagración específicamente la llave browser.cache.disk.parent_directory con el valor /tmp/ram/firefox, Para Google Chrome es un poco mas fácil, simplemente pasale el parámetro –disk-cache-dir=”/tmp/ram/” al arranque.

[gallery link="file"]

A 2 días del 2011 les presento mi acostumbrado ultimo post del año. Así fue mi 2010:

En lo familiar…

– Marieche y yo tenemos 10 años juntos, Rodrigo José cumplió 4 años y Rodolfo José 2 años.

En lo profesional…

– Cumplí 8 semestres trabajando como docente en la Udefa, tuve el honor de ser padrino de la 3era Promoción de Ingenieros en Electrónica.

– Regresé a VIT en Junio por esas cosas de la vida y el destino… quien sabe hasta cuando? 😀

En lo musical…

–  Los  discos que valieron la pena: Iron Maiden – The Final Frontier, Hellyeah Stampede, Disturbed – Asylum y una mención especial al Moscas en tu boca de Slow Death.

– Viví lo suficiente para que Metallica me pateara el trasero en persona el 12/03/2010 – \m/

– Asistí al concierto de Anthrax el 13/11/2010 en el forum de Valencia.

– Me reencontré con la escena rockera nacional y regional, pude ver a bandas como: Solares, Candy 66, Los Mentas, La Vida Boheme, Etnica, Gillman, Channel y algunas otras que se me pueden escapar en estos momentos.

En lo geek…

– Agregué los siguientes gadgets [o peroles] a mi colección: VIT 2100+, Motorolla Milestone y Ipod nano (6ta. gen.) de 16gb.

– Trollie en el FLISOL Paraguaná, CNSL Punto Fijo y la Cayapa Canaima en San Juan de los Morros.

Momento geek 1: Cuando un respetable miembro de la comunidad nos enseñó que todo tiene su limite.

Momento geek 2: El corrientazo que siente cierto geek cada vez que escucha la frase “Propiedad Intelectual”

Momento geek 3: Invasión Geek a Negresco Alternativo

Lo que me viene en 2011…

– Ya el postgrado ni lo nombro porque nunca lo arranco. 🙁

– Compartir mas con la familia.

– RIR2011 (si lo escribo completo no se cumple)

– Trabajar, y seguir trabajando :s

A todos mis lectores y panas… que tengan un feliz año nuevo y nos vemos en 2011, MOFO’S!!!!

Cheers!

Llevo hace tiempo queriendo hacer una entrada sobre el enfrentamiento entre dos derechos que a veces se ven como contrapuestos: El derecho a ganarse la vida con la creación artística y cultural, y el derecho de todas las personas a acceder y participar de la cultura. He decidido finalmente hacerlo, tras la victoria política de ayer, con la no aprobación en la comisión de economía del congreso de la Ley Sinde, y a raiz de una de las falacias que publica Eduardo Bautista en un boletín de la SGAE: “desde que en los rescoldos de la Revolución Francesa el insigne Beaumarchais consiguiera incluir entre los Derechos del Hombre el solemne reconocimiento de los Derechos de Autor, o lo que es lo mismo, el respeto a que solo el autor pueda decidir el futuro y destino de sus obras y de los rendimientos económicos que estas generen.”
 
Esta relación lógica es, además de falsa, absurda.
 
El Artículo 27 de la Declaración Universal de los Derechos Humanos, dice dos cosas:
  • Toda persona tiene derecho a tomar parte libremente en la vida cultural de la comunidad, a gozar de las artes y a participar en el progreso científico y en los beneficios que de él resulten.
  • Toda persona tiene derecho a la protección de los intereses morales y materiales que le correspondan por razón de las producciones científicas, literarias o artísticas de que sea autora.
Esto quiere decir que, evidentemente, cualquier persona tiene derecho a obtener beneficios de las creaciones científicas, literarias y artísticas que realice, o en las que contribuya, pero no a costa de limitar el acceso de otras personas a las mismas. Ninguno de los dos derechos es superior al otro, y no se dice en ninguna parte que el modelo económico que sustente esto deba de ser el de la restricción del acceso de las personas a estos contenidos. Más bien al revés.
 
Evidentemente el definir lo que es cultura, entretenimiento y arte no es algo obvio, pero tampoco se puede estar jugando a un doble juego. Si la ciudadanía está financiando el desarrollo de diversas producciones, como por ejemplo las cinematográficas, por considerarlas cultura, lo que nos hace coproductores de las mismas a todas las personas que pagamos impuestos, lo que no tiene ningún sentido es que esta consideración de dercho público no se mantenga para su uso y compartición. En última instancia, en mi opinión, habría que reelaborar la regulación de la cultura en la línea que realmente marcan los Derechos Humanos, y no intentar forzar una solución totalitarista para intentar hacer andar a un caballo muerto.
En la entrega anterior expliqué como instalar el ambiente de desarrollo para trabajar con Android. Ahora explicaré algunos fundamentos necesarios para poder entrar en calor.

Podemos decir que Android está compuesto por varias capas (muy al estilo del modelo OSI).

Esas capas las podemos diferenciar en 5 grupos:

  • Capa 1 - Kernel: La base de Android es sólida como una roca. Claro, esa base es el kernel Linux. Android usa Linux para manejar todo lo relacionado con el hardware (drivers), gestionar la memoria, los procesos y muchas otras tareas operativas. Sin embargo nuestra aplicación nunca tocará el kernel.
  • Capa 2 - Librerías nativas: La siguiente capa que se ubica por encima del kernel son las librerías nativas. Allí tenemos una serie de herramientas que vienen precompiladas por el fabricante y que nos permiten manejar desde renderizado web hasta bases de datos.
  • Capa 3 - Núcleo: Sobre ésta capa tenemos el núcleo de Android. Allí reside la máquina virtual Dalvik y las librerías de la plataforma.
  • Capa 4 - Framework para aplicaciones: Más arriba está el conjunto de herramientas que nos permite crear y manejar las aplicaciones, notificaciones, recursos y muchas otras cosas.
  • Capa 5 - Aplicaciones: Y por último tenemos la capa de aplicaciones, aquí es donde se encuentran los widgets y todas las aplicaciones que tienen contacto con el usuario.

Ya conocemos un poco mejor la arquitectura de Android, ahora veamos con qué contamos para desarrollar. Parte del framework para aplicaciones son los componentes. Estuadiaremos los más importantes por el momento, ellos son:

  • Activities: Los activities (o actividades) son las interfaces que permiten al usuario interactuar con la aplicación. Generalmente una aplicación está compuesta de muchas actividades. Una actividad puede ser mostrar la lista de contactos y otra puede ser enviar mensajes de texto
  • Intents: Un intent (o como se diría en español, una "intención") no es más que una acción. En Android todas las acciones se manejan con intenciones ;)
  • Services: Es una tarea que se ejecuta en segundo plano, sin interfaz gráfica y sin interacción directa con el usuario. Podemos pensar en el ejemplo típico: un reproductor de música. A todos nos gusta que la música siga sonando incluso si dejamos de ver el reprouctor para pasarnos al navegador web. Eso es un servicio
  • Content Providers: Es un contenedor que permite agrupar un conjunto de datos de una aplicación y ponerlos a disposición de otras aplicaciones. Podemos verlo como una manera de compartir información global entre aplicaciones

Por último vamos a mencionar las fases del ciclo de vida de una aplicación.

Lo primero que debemos entender es que (a diferencia de un sistema operativo de escritorio) en Android una aplicación no está casada con un proceso. En Android existe una sola aplicación que obtiene el foco y se presenta frente al usuario. Mientras ésta aplicación se encuentra en el frente, las demás aplicaciones entran en estados de pausa, detención o incluso, si la memoria es escasa, Android puede llegar a cerrarlas para liberar recursos y sin estar mediando muchas palabras.

Pero no se asusten, si la aplicación es "asesinada" por Android su estado se almacena para que pueda recuperarse cuando el usuario la ejecute nuevamente. Es en este ínterin de cerrar y abrir aplicaciones en que se liberan los procesos. Debemos ver a un proceso como un simple contenedor desechable para las aplicaciones, no más. Siempre ten presente éste comportamiento al momento de diseñar tus aplicaciones.

El ciclo de vida de una aplicación lo podemos ver en la siguiente imagen.


A continuación describo brevemente cada una de sus fases:

  • onCreate(): Se ejecuta la primera vez que la aplicación se muestra. Aquí se pueden realizar toda la inicialización estática (conexiones a bases de datos, creación de interfaces, etc). Recibe un parámetro que puede contener el estado anterior de la aplicación (si fue almacenado correctamente)
  • onStart(): Se ejecuta justo antes de que la aplicación se haga visible al usuario
  • onRestart(): Llamado justo después que la aplicación ha sido detenida. Justo antes de comenzar de nuevo
  • onResume(): Se llamará cuando la aplicación esté lista para interactuar con el usuario. Acá se pueden inicializar cosas como música y animaciones
  • onPause(): Se ejecuta justo antes de que la aplicación pase a segundo plano porque otra aplicación ha sido ejecutada. Este método puede ser lo último que vea tu aplicación antes de morir, pues Android puede matar una aplicación pausado sin previo aviso. Es por eso que este es un buen lugar para guardar el estado de tu aplicación.
  • onStop(): Es llamado cuando la aplicación ya no es visible al usuario y no se necesitará por un rato. Tal como se indicó en el punto anterior, este método es posible que ni siquiera se ejecute
  • onDestroy(): Se llama justo después que la aplicación es destruida. Acá debes hacer el sepelio y esas cosas. Tal como se indicó en el punto anterior, este método es posible que ni siquiera se ejecute

Con toda ésta base teórica podemos decir que estamos listos para empezar a escribir el código de nuestra primera aplicación. Ese será el tema de la próxima entrega.

Para más información sobre éste tema puedes consultar la documentación oficial de Android

¿Cómo desarrollar para Android? - Parte I

Si aun no tienes root de tu teléfono, estas desperdiciando gran parte del potencial de tu dispositivo móvil hoy en día existen muchos mecanismos para lograrlo y el riesgo de ocasionar algún daño permanente se ha disminuido al mínimo.

Asumiendo que ya tienen CyanogenMod en su Android, los pasos para usar tu teléfono móvil como un modem y conectarte a internet son los siguientes:

  1. Click en 'Settings'.
  2. Click en 'Wireless & networks'.
  3. Click en 'Tethering & portable hotspots'.
  4. Selecciona de acuerdo a tus necesidades Wifi o USB.

Cuatro pasos sencillos para usar tu celular con Android como un modem

No deberías de incurrir en cargos adicionales siempre y cuando no sobrepases la cuota mensual de data (en caso de que tengas un limite). Personalmente recomiendo no pasar de 5GB al mes, muchas operadoras ofrecen 'Unlimited Data' pero en realidad tienen un soft-cap de 5GB y cualquier cosa por encima le hacen throtle o investigan que tipo de trafico es.

Una cosa que nunca me gusto de Android y de hecho fue una de las cosas que mas me costo acostumbrarme fue la resolución de la pantalla, los iconos y letras inmensas, me parecía un desperdicio de pantalla el no poder cambiarle la densidad al LCD, en especial cuando tienes 11 centímetros (4.3 pulgadas). Luego de rootear el teléfono me puse a buscar la forma de alterar esto y conseguí una app que se llama LCDDensity for Root.

El programa funciona de maravilla, excepto que en el nightly build que estoy usando de CyanogenMod la barra del ADW.Launcher se muestra descontinua y desalineada si se asigna el valor de 190 o por debajo de este. Conseguí un script que usando el terminal de android nos permite asignar un valor arbitrario así que me propuse buscar cual era el valor entre 190 y 200 en el que la barra no se distorsionaba y luego de un par de intentos di con el numero 192. Este es el script:

#!/system/bin/sh
#Version 0.1
#Created by lithid

mount -o rw,remount /system
cd /system
sed "s/ro.sf.lcd_density = .*/ro.sf.lcd_density = $1/g" build.prop > tmp

mv tmp build.prop
echo -n "Do you want to reboot now? (y or n) > "
read list
if [ "$list" = "n" ] || [ "$list" = "N" ]
  then echo "No Eh? Must not wanna see your changes."
  mount -o ro,remount /system
  exit 1
elif [ "$list" = "y" ] || [ "$list" = "Y" ]; then echo "Rebooting Device"
  sleep 1 reboot
else
  echo "That is not a yes or a no"
  echo "Leaving"
  mount -o ro,remount /system
  exit 1
fi
exit

Este script fue escrito por @lithid y publicado en los foros de CyanogenMod.

Estuve unas cuantas horas investigando sobre la posibilidad de desarrollar con Python sobre Android y a continuación les daré un resumen de los resultados y conclusiones que obtuve.

Acá les dejo el script que usé para probar una parte de los widgets disponibles en la API por si quieren probarlo y echarle un ojo (no me detendré a explicarlo mucho porque el código prácticamente se explica a sí mismo). Además supongo que siguieron los pasos de mi tutorial sobre ¿Cómo desarrollar para Android? y tienen configurado su entorno de desarrollo y saben cómo usar el emulador.

droid = android.Android()

tiempo = droid.dialogGetInput("Escriba la cantidad de tiempo que desea para el demo (10-100)","Tiempo:")
print tiempo

tiempo = int(tiempo[1])
if tiempo < 10: tiempo = 10 elif tiempo > 100:
tiempo = 100

droid.dialogCreateHorizontalProgress('Barra de Progreso', 'Hola, estoy progresando...', tiempo)
droid.dialogShow()
for i in range(tiempo):
time.sleep(0.5)
droid.dialogSetCurrentProgress(i)
droid.dialogDismiss()

droid.dialogCreateSpinnerProgress('Spinner de progreso', 'Mirá, mirá... estoy girando')
droid.dialogShow()
time.sleep(tiempo)
droid.dialogDismiss()

droid.notify('Test de Python' , 'Oh! puedo notificar también')

droid.dialogCreateAlert(title, message)
droid.dialogSetPositiveButtonText('Si')
droid.dialogSetNegativeButtonText('No')
droid.dialogSetNeutralButtonText('Cancelar')
droid.dialogShow()
response = droid.dialogGetResponse().result
print response
droid.makeToast('El resultado de la ejecucion del boton es: %s' %response['which'])

droid.dialogCreateAlert('Selecciona un color')
colores = ('amarillo', 'azul', 'rojo')
droid.dialogSetItems(colores)
droid.dialogShow()
respuesta = droid.dialogGetResponse().result
print respuesta
droid.makeToast('El color seleccionado es: %s' %colores[respuesta['item']])

droid.makeToast('Bueno, chao')


Para correrlo deben instalar algunos paquetes en el cel. Pueden hacerlo con el comando del SDK:

$ adb install /ruta/del/archivo.apk

con los QR que están en la página del proyecto SL4A o con el método que mejor les parezca.

Ok, las cosas a instalar son:


Luego que las instalen van al dispositivo/emulador y buscan el icono de Python For Android, tap e instalan. Eso tardará unos minutos mientras descarga unas cosas. Al terminar entonces enviamos el script de prueba al cel, podemos usar el comando:

$ adb push /ruta/del/script.py /sdcard/sl4a/scripts/

Eso lo copiará en la carpeta del SL4A. Ahora cuando ejecutemos el Python For Android veremos en la lista de scripts nuestra infame creación, tap en el script y ejecutar. Lo demás es disfrutar las ventanitas y controles :P

Conclusiones


  1. La API de SL4A es reducida, es decir si bien está bastante adelantada aún faltan muchas cosas/funciones por implementar.
  2. Python For Android a diferencia de lo que pensaba no soporta widgets gráficos en Android, solamente notificaciones, toast y cosas básicas tipo entrada de texto, selección, etc. Así que nos olvidamos de interfaces gráficas ricas en imágenes y esas cosas.
  3. Sí existen algunos issues de performance, de hecho un pana que está trabajando duro con Android me dice que los desarrolladores todos los días se matan por tratar de mejorar el rendimiento pues de por si ya es algo lento (hablo de apps nativas). Sin embargo la versión de Python es cross-compiled y corre incluso más rápido que Jython
  4. Hay formas de empaquetar scripts en .apk y aunque son algo un poco experimentales funcionan bastante bien (son, digamos, "tweaks" del método de construcción de paquetes con Java)
  5. En cuanto a estabilidad no hay mayores issues, se puede usar para aplicaciones de producción


Finalmente puedo decir (muy a mi pesar) que no podemos contar con ésta alternativa para desarrollar aplicaciones ricas en interfaces gráficas, sin embargo es una opción interesante a tener en cuenta cuando madure un poco más. Personalmente le haré seguimiento tipo ninja y esperaré con ansias que en el futuro se puedan crear aplicaciones tan buenas como se hace con Java.

Más información en:

* http://code.google.com/p/android-scripting/
*http://code.google.com/p/android-scripting/wiki/FAQ
* http://code.google.com/p/android-scripting/wiki/Tutorials
* http://code.google.com/p/android-scripting/wiki/ApiReference



Actualmente me he visto en la necesidad de crear aplicaciones para Android y como no había incursionado en ese mundo, he decidido hacer una serie de artículos para documentar todo el proceso.

En ésta primera entrega explicaré los pasos que seguí para poner a punto el entorno de desarrollo. Debo resaltar que las recetas están hechas para Debian GNU/Linux, sin embargo puedes adaptarla a tu distro favorita con unos leves ajustes.

Para los que no están familiarizados con mis tutoriales les recuerdo que todas las instrucciones que comiencen con el caracter $ se ejecutan como usuario normal y las que comiencen con # se ejecutan como superusuario (root), por ejemplo:

$ ls -l (instrucción ejecutada como usuario)
# aptitude update (instrucción ejecutada como root)


Dicho esto comenzamos.

Instalar dependencias


Lo primero que debemos hacer es instalar los paquetes necesarios para el desarrollo, que básicamente son: la máquina virtual de Java (JRE) y el entorno de desarrollo (JDK). En una distribución Debian GNU/Linux bastaría con:

# aptitude update
# aptitude install sun-java6-jdk sun-java6-jre
# aptitude remove gcj-jdk


Si se dan cuenta usamos las implementaciones de SUN y removimos cualquier posible instalación del compilador GNU de Java (gcj) pues en la documentación oficial nos dicen que gcj NO es compatible con Android.

Para más información sobre los requerimientos del sistema visita: http://developer.android.com/sdk/requirements.html

Luego que instalamos los paquetes nos aseguramos de que el sistema seleccione las opciones correctas por defecto de cada ejecutable, pare eso usamos:

# update-alternatives --config javac
# update-alternatives --config java


Y en ambos casos, seleccionamos las opciones de SUN.

Instalar Ant


Ant es una herramienta que nos permite construir aplicaciones Java. En nuestro caso, nos permitirá compilar y construir archivos .apk (los instalables en Android) a partir de nuestro código fuente.

Nos vamos a la página de descargas de Ant, descargamos uno de los archivos comprimidos que se encuentran en la sección "Current Release of Ant" y lo descomprimimos en una carpeta de nuestra preferencia. En mi caso lo hice en /opt y me quedó la carpeta: /opt/apache-ant-1.8.1.

Instalar el Android SDK


Bueno, teniendo las herramientas y dependencias listas, vamos a instalar el entorno de desarrollo de Android. Nos vamos a la página del SDK de Android y descargamos la versión que corresponda a nuestra plataforma. Al igual que con Ant, descomprimimos el archivo en la carpeta de nuestra preferencia. Ésta vez también lo descomprimí en /opt, quedando en la carpeta: /opt/android-sdk-linux_x86.

Ahora editamos el archivo ~/.bashrc para agregar la ruta de los binarios al PATH del sistema y establecer las variables de entorno ANT_HOME y JAVA_HOME. Eso lo logramos agregando las siguientes líneas:

export PATH=${PATH}:/opt/android-sdk-linux_x86/tools
export PATH=${PATH}:/opt/apache-ant-1.8.1/bin
export ANT_HOME=/opt/apache-ant-1.8.1
export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre


Recuerda cambiar las rutas de esas variables por las rutas donde se encuentran tus binarios. Si no sabes muy bien hacía dónde debe apuntar JAVA_HOME puedes ejecutar el comando:

# find / -name "tools.jar" | grep sun

Y entonces agrega la ruta que te arroje.

Nota: Debes cerrar las terminales abiertas y volverlas a abrir para que los cambios en las rutas surtan efecto.

Instalar plataformas de Android


¿Plataformas? ¿De qué me hablas? - Seguramente te estarás haciendo esas preguntas. Las plataformas son las "versiones" de Android disponibles (por ejemplo Android 1.6, Android 2.2) y necesitamos al menos una para poder compilar la aplicación y configurar un Android Virtual Device (AVD) para probarla.

Esto es muy simple, basta con abrir una terminal y ejecutar:

$ android

Nos aparecerá una aplicación (AVD Manager) como la que se muestra a continuación y allí nos vamos a la sección Available Packages, actualizamos el repositorio y seleccionamos la(s) plataforma(s) que deseamos instalar.


Finalmente creamos un nuevo dispositivo virtual en la sección Virtual Device. Hacemos clic en el botón New..., le asignamos un nombre, seleccionamos una plataforma y hacemos clic en Create AVD.


Para probar nuestro flamante dispositivo lo seleccionamos y hacemos clic en Start.... Luego clic en Launch y al cabo de unos segundos tendremos el emulador corriendo una instancia de Android :)


Desarrollo


Ahora viene la parte divertida, crear la aplicación. En las próximas entregas estaré hablando sobre el desarrollo, por los momentos pueden jugar creando un Hello World y pueden leer sobre cómo desarrollar con Eclipse y cómo desarrollar con otros IDEs

Compilar y construir el ejecutable


Luego de que tengamos nuestra aplicación lista debemos crear el instalador. Eso es tan simple como navegar hasta la carpeta raíz del proyecto (código fuente) y ejecutar:

$ ant debug

Si nuestro proyecto se llama "HelloAndroid" esto generará un archivo HelloAndroid-debug.apk y ese será nuestro instalador.

Probar en el emulador


Finalmente, una de las partes más esperadas. ¿Cómo se verá nuestra aplicación en un dispositivo? Pues fácil, en una consola ejecutamos:

$ android

E iniciamos nuestro dispositivo virtual. Luego que el dispositivo esté funcionando ejecutamos en otra consola:

$ adb install /ruta/de/nuestro/instalador/HelloAndroid-debug.apk

Y con eso enviaremos la aplicación al dispositivo. La buscamos en el menú y voilá! A jugar :D

Espero que les haya sido de utilidad éste tutorial. Próximamente seguiré documentando mis travesías en el mundo de Android. Cambio y fuera.

De Anthrax en Venezuela

Ayer 13 de noviembre de 2010 asistí al Forum de Valencia a presenciar un concierto de Anthrax, Banda originaria de Nueva York y una de los 4 pilares fundamentales del Thrash Metal (Junto a Metallica, Slayer y Megadeth). Llegué a Valencia en horas del medio día acompañado de unos panas de Punto Fijo (Gracias al tour de “Vive tu Concierto”), desde ese momento nos dispusimos a hacer nuestra cola y a pesar de la lluvia la pasamos muy bien.

Cerca de las 7pm se aperturaron las puertas y logramos entrar al recinto. Nos ubicamos en la parte media de las tribunas del forum y con una vista espectacular esperamos por el inicio del concierto. Para calentar los motores se montó la banda Gillman en tarima estrenando su nueva formación. Sobre este punto quiero hacer una pausa para hacer un comentario… El Sr. Paul Gillman es un guerrero y quizas una de las pocas leyendas del Rock Nacional, soy fanatico de su música (Poseo toda su discografia) y estoy de acuerdo con la iniciativa de los Gillmanfest. Sin embargo, debo decir que la banda Gillman no debió abrir este concierto. Pienso que hay muchas bandas del genero que merecian estar ahí (Natastor, Blasphemy entre otros). Gillman no es thrash y sin duda la baja respuesta de publico se notó debido a esto.

Gillman tocó un set con gran parte de sus clásicos: Dr. Kanoche, Anticristo III, El regreso del Guerrero, Vanderdecker, Asesino, El Tirano Aguirre, El Poema Negro, El Hachador y Resistire.

A las 9pm Anthrax se montó en escena y se entregó al público como muy pocas bandas saben hacerlo. Los moshpits (Popularmente conocidas como ollas) brotaron a mas no poder en la árena del forum. Debo decir que en ninguno de los conciertos a los que he asistido he visto pogos como los que se formaron en este.

Acá les muesto el setlist de Anthrax:

Among the Living
Caught in a Mosh
Got the Time (Joe Jackson cover)
Madhouse
A.I.R.
Antisocial (Trust cover)
Indians
Medusa
Only
Metal Thrashing Mad
Be All, End All
Efilnikufesin (N.F.L.)
I Am The Law

Anthrax es una banda genial que dejó todo en esa tarima, Scott Ian prometió regresar el proximo año cuando esté listo el nuevo disco. la unica nota negativa de la banda fue que Joey Belladonna nos confundió con Argentina y se equivocó un par de veces al anunciar las canciones. Sin embargo la entrega de este frontman a su pulbico y su versatilidad hicieron olvidar rápidamente los incidentes.

De Anthrax en Venezuela

Debo felicitar e Emporio Group por la organización de este evento, el trato fué genial. Nada de policias matraqueros, nada de ballenas, nada de peinillas… simplemente la seguridad del forum (gente educada que no ofendió a nuestra manada). Como Metalero les digo: “así se organizan los conciertos de metal“, simplemente 20 Puntos. Luego de haber asistido a Dream Theater en 2008 y a este concierto les digo que no hay mejor locación para conciertos que el Forum de Valencia.

Gente de Emporio… sigan haciendo shows de Metal, y si no es mucho pedir… mantengan al Forum de Valencia como locación!

Pueden ver algunas fotos aca.. hasta otro próximo concierto \m/