Páginas

miércoles, 12 de febrero de 2014

Instalación Rápida de WebSphere Message Broker V7.1 en Linux Mint 14 (Ubuntu) x86-64

Para poder instalar el  WebSphere Message Broker V7.1 en Linux Mint 14 (Ubuntu) x86-64 seguiremos algunos pasos, entre ellos la instalación de las siguientes herramientas de IBM: MQ, Broker y por último el Toolkit.


Instalación del WebSphere MQ V7.1 for Linux on x86-64 Multilingual (Paquete CI3CNML)
Paso 1.- Instalar y aceptar licencia.
 $ sudo ./mqlicense.sh  

Paso 2.- Configurar el ambiente de pre-instalación.
Para comenzar, lo primero que hay que hacer es cerciorarse que tenemos instalado el rpm. De no tenerlo hacemos lo siguiente:
 $ sudo apt-get install rpm  

Ahora si, ya estamos listos para configurar el ambiente de pre-instalación.
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesRuntime-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesServer-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesSDK-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesClient-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesJava-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesSamples-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesGSKit-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesJRE-7.1.0-0.x86_64.rpm  
 $ sudo rpm -ivh --nodeps --force-debian MQSeriesExplorer-7.1.0-0.x86_64.rpm  

Paso 3.- Establecer la instalación primaria.
 $ sudo ln -s /lib64 /usr/  
 $ sudo /opt/mqm/bin/setmqinst -i -p /opt/mqm/  
Nota: Si aparece un error podemos consultar ésta liga.

Paso 4.- Creación de Queue Manager para instalación de Broker.
Aquí es importante logearse como usuario MQM. Recuerde asegurarse de crear una contraseña antes de éste paso.
 $ sudo passwd mqm  
 Enter new UNIX password: xxxxxx  
 Retype new UNIX password: xxxxxx  
   
 $ su mqm  
 $ crtmqm CPED.SAT.QMGR //Crea el QM  
 $ strmqm CPED.SAT.QMGR //Inicia el QM  
 $ dspmq //muestra los QM existentes  


Instalación del WebSphere Message Broker V7.1 for Linux on x86-64 Multilingual (Paquete CZED9ML)
Paso 1.- Configuración de grupo
Volverse a cambiar a usuario local (el usuario local de tu maquina), sin importar en que carpeta estés.
 $ sudo groupadd mqbrkrs  
 $ sudo useradd -d /home/mbadmin -G mqbrkrs,mqm mbadmin  
 $ sudo usermod -a -G mqbrkrs,mqm  

Paso 2.- Instalación del Korn Shell (Requerido para crear el WorkPath)
 $ sudo apt-get install ksh  

Paso 3.- Instalación de las librerías para soporte de 32 bits
 $ sudo apt-get install ia32-libs  

Paso 4.- Instalación de WebSphere Message Broker 7
Cambiarse a la carpeta donde descomprimiste el archivo CZED9ML.tar.gz
 $ sudo ./setuplinuxx64 -console  
... y enseguida leer las instrucciones de instalación. Aquí una guía en pdf en extenso.


Instalacion del WebSphere Message Broker Toolkit V7.0 for Linux on x86-64 Multilingual (Paquetes CZEE5ML/CZEE6ML/CZEE7ML)
Paso 1.- Instalar la libreria libstdc++
 $ sudo apt-get install libstdc++5  
 $ sudo apt-get install libstdc++6  

Pasp 2.- Crear enlaces simbolicos por compatibilidad con el instalador
 $ sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /usr/lib  
 $ sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib  
 $ sudo ldconfig  
 $ ldconfig -p | grep libstdc++  

Debe de aparecer algo así como esto:
 libstdc++.so.6 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6  
 libstdc++.so.6 (libc6) => /usr/lib/i386-linux-gnu/libstdc++.so.6  
 libstdc++.so.6 (libc6) => /usr/lib/libstdc++.so.6  
 libstdc++.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libstdc++.so.5  
 libstdc++.so.5 (libc6) => /usr/lib/i386-linux-gnu/libstdc++.so.5  
 libstdc++.so.5 (libc6) => /usr/lib/libstdc++.so.5  

Paso 3.- Instalación del Toolkit (V. 7.0.0.301)
Ir a la carpeta de "disk1" que se ha descomprimido con anterioridad
 $ sudo ./installToolkit.sh  
 >>Check for other versions and extensions  
 >>Seleccionar "show all versions"  
 >>Seleccionar la "Version 7.0.0.3"  

Paso 4.- Actualizar la versión del ToolKit (7.0.0.6)
 $ cd /opt/IBM/InstallationManager/eclipse/  
 $ sudo ./launcher  
En éste paso aparecerá una pantalla gráfica de bienvenida. Dar click en "Update" y después actualizar a la versión mas reciente y continuar con todo el proceso gráfico de instalación.

Paso 5.- Ahora a arrancar el Toolkit
Para arrancar el Toolkit por medio de su IDE (basado en eclipse) lo único que hacemos es cambiarnos al usuario mqm y cargar el perfil (variables de entorno):
 $ su mqm  
 $ . /opt/ibm/mqsi/7.0/bin/mqsiprofile  
 $ eclipse  


Opcional: Instalación del plugin para descargar cambios desde SVN
En caso de que estés trabajando en colaboración (red) con otros programadores, puedes descargar el plugin para SVN. Aquí una sencilla guía en linea.

Autores: @mauricioaranda, @luisgosher

martes, 11 de febrero de 2014

Instalación Rápida de la Base de Datos Oracle NoSQL

Instalación de Oracle NoSQL Database en Linux Mint (Ubuntu)

NOTA: Primeramente, serciorarse que tengamos la versión oficial de Java de #ORACLE. Si no la tenemos entonces descargar el JDK... y posteriormente procedemos a settear la ruta del java y javac.   

 $ sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.7.0_51/jre/bin/java" 0  
 $ sudo /usr/sbin/update-alternatives --config java  
   
 $ sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/java/jdk1.7.0_51/bin/javac" 1  
 $ sudo /usr/sbin/update-alternatives --config javac  

Paso 1.- Se crea el directorio principal donde se instalará la BD de Oracle NoSQL y se descomprime el archivo (kv-ce-2.1.57.zip) en éste mismo directorio.

 $ sudo mkdir /var/kv/  
 $ cd /var/kv/  
 $ sudo unzip kv-ce-2.1.57.zip  

Paso 2.- Se crean los directorios donde se almacenarán los datos.
 $ sudo mkdir -p /var/kv/stores/root1  
 $ sudo mkdir -p /var/kv/stores/root2  
 $ sudo mkdir -p /var/kv/stores/root3  

Paso 3.- Se crea el archivo "boot config"
 $ cd /var/kv/kv-2.1.57/  
 $ sudo java -Xmx256m -Xms256m -jar lib/kvstore.jar makebootconfig -root /var/kv/stores/root1 -host localhost -port 5000 -admin 5001 -harange 5005,5010 -capacity 1  
 $ sudo java -Xmx256m -Xms256m -jar lib/kvstore.jar makebootconfig -root /var/kv/stores/root2 -host localhost -port 5020 -harange 5025,5030 -capacity 1  
 $ sudo java -Xmx256m -Xms256m -jar lib/kvstore.jar makebootconfig -root /var/kv/stores/root3 -host localhost -port 5040 -harange 5045,5050 -capacity 1  

Paso 4.- Se ejecuta el Oracle NoSQL Database Storage Node Agent (SNA) de cada uno de los nodos de la BD Oracle NoSQL. Los SNA permiten administrar los procesos de la BD Oracle NoSQL de cada nodo.
 $ cd /var/kv/kv-2.1.57/  
 $ sudo nohup java -Xmx256m -Xms256m -jar lib/kvstore.jar start -root /var/kv/stores/root1 &  
 $ sudo nohup java -Xmx256m -Xms256m -jar lib/kvstore.jar start -root /var/kv/stores/root2 &  
 $ sudo nohup java -Xmx256m -Xms256m -jar lib/kvstore.jar start -root /var/kv/stores/root3 & 

Paso 5.- Se ejecuta la consola de administración para la configuración del store

 $ sudo java -Xmx256m -Xms256m -jar lib/kvstore.jar runadmin -host localhost -port 5000  

... y a continuación se abre la consola de kv y procedemos a hacer lo siguiente

a) Nombrar el KVStore
 kv-> configure -name mystore  
 Store configured: mystore  

b) Crear un Data Center
 kv-> plan deploy-datacenter -name IECISA -rf 3 -wait  
 Executed plan 1, waiting for completion...  
 Plan 1 ended successfully  
   
 kv-> show plans  
    1 Deploy Datacenter (1)  SUCCEEDED  

c) Crear los procesos de administración para cada host
 kv-> show topology  
 store=mystore numPartitions=0 sequence=1  
  dc: id=1 name=IECISA repFactor=3  
    
 kv-> plan deploy-sn -dcname IECISA -host localhost -port 5000 -wait  
 Executed plan 2, waiting for completion...  
 Plan 2 ended successfully  
   
 kv-> plan deploy-admin -sn sn1 -port 5001 -wait  
 Executed plan 3, waiting for completion...  
 Plan 3 ended successfully  

d) Crear el nodo de almacenamiento (Storage Node Pool)
 kv-> pool create -name IECISAPool  
   
 kv-> pool join -name IECISAPool -sn sn1  
 Added Storage Node(s) [sn1] to pool IECISAPool  

e) Crear el resto de los nodos de almacenamiento
 kv-> plan deploy-sn -dcname IECISA -host localhost -port 5020 -wait  
 Executed plan 4, waiting for completion...  
 Plan 4 ended successfully  
   
 kv-> pool join -name IECISAPool -sn sn2  
 Added Storage Node(s) [sn2] to pool IECISAPool  
   
 kv-> plan deploy-sn -dcname IECISA -host localhost -port 5040 -wait  
 Executed plan 5, waiting for completion...  
 Plan 5 ended successfully  
   
 kv-> pool join -name IECISAPool -sn sn3  
 Added Storage Node(s) [sn3] to pool IECISAPool  

f) Crear y desplegar los nodos de replicación
 kv-> topology create -name MyStoreLayout -pool IECISAPool -partitions 100  
 Created: MyStoreLayout  
   
 kv-> topology preview -name MyStoreLayout  
 Topology transformation from current deployed topology to MyStoreLayout:  
 Create 1 shard   
 Create 3 RNs   
 Create 100 partitions   
   
 shard rg1  
  3 new RNs : rg1-rn1 rg1-rn2 rg1-rn3   
  100 new partitions   
   
 kv-> plan deploy-topology -name MyStoreLayout -wait  
 Executed plan 6, waiting for completion...  
 Plan 6 ended successfully  
   
 kv-> show plans  
    1 Deploy Datacenter (1)  SUCCEEDED  
    2 Deploy Storage Node (2) SUCCEEDED  
    3 Deploy Admin Service (3) SUCCEEDED  
    4 Deploy Storage Node (4) SUCCEEDED  
    5 Deploy Storage Node (5) SUCCEEDED  
    6 Deploy Topo (6)     SUCCEEDED  
      
 kv-> show topology  
 store=mystore numPartitions=100 sequence=108  
  dc: id=1 name=IECISA repFactor=3  
   
  sn=[sn1] dc:[id=1 name=IECISA] localhost:5000 capacity=1 RUNNING  
   [rg1-rn1] RUNNING  
      No performance info available  
  sn=[sn2] dc:[id=1 name=IECISA] localhost:5020 capacity=1 RUNNING  
   [rg1-rn2] RUNNING  
      No performance info available  
  sn=[sn3] dc:[id=1 name=IECISA] localhost:5040 capacity=1 RUNNING  
   [rg1-rn3] RUNNING  
      No performance info available  
   
  shard=[rg1] num partitions=100  
   [rg1-rn1] sn=sn1  
   [rg1-rn2] sn=sn2  
   [rg1-rn3] sn=sn3  

g) Verificamos que la configuración es correcta
 kv-> verify configuration  
 Verify: starting verification of mystore based upon topology sequence #108  
 100 partitions and 3 storage nodes. Version: 12.1.2.1.57 Time: 2014-02-06 22:32:43 UTC  
 See localhost:/var/kv/stores/root1/mystore/log/mystore_{0..N}.log for progress messages  
 Verify: == checking storage node sn1 ==  
 Verify: Storage Node [sn1] on localhost:5000  Datacenter: IECISA [1]  Status: RUNNING  Ver: 12cR1.2.1.57 2014-01-10 06:20:10 UTC Build id: 4d323d1b5495  
 Verify:      Admin [admin1]          Status: RUNNING  
 Verify:      Rep Node [rg1-rn1]     Status: RUNNING,MASTER at sequence number: 221 haPort: 5006  
 Verify: == checking storage node sn2 ==  
 Verify: Storage Node [sn2] on localhost:5020  Datacenter: IECISA [1]  Status: RUNNING  Ver: 12cR1.2.1.57 2014-01-10 06:20:10 UTC Build id: 4d323d1b5495  
 Verify:      Rep Node [rg1-rn2]     Status: RUNNING,REPLICA at sequence number: 221 haPort: 5025  
 Verify: == checking storage node sn3 ==  
 Verify: Storage Node [sn3] on localhost:5040  Datacenter: IECISA [1]  Status: RUNNING  Ver: 12cR1.2.1.57 2014-01-10 06:20:10 UTC Build id: 4d323d1b5495  
 Verify:      Rep Node [rg1-rn3]     Status: RUNNING,REPLICA at sequence number: 221 haPort: 5045  
 Verification complete, no violations.  

Paso 6.- Verificamos la instalación con otras pruebas

Prueba (a) Entramos al explorador (yo uso Google Chrome) y escribimos http://localhost:5001/ y aparecerá el administrador gráfico como se muestra en la imagen.


Prueba (b) Ejecutamos el comando
 $ java -Xmx256m -Xms256m -jar /var/kv/kv-2.1.57/lib/kvclient.jar  

... y debe mandar algo así como:
 12cR1.2.1.57 2014-01-10 06:20:10 UTC Build id: 4d323d1b5495  

... y ahora vamos hacer nuestro primer "Hello Big Data World!" en java para empezar a poblar nuestra BD NoSQL.

Autores: @mauricioaranda, @luisgosher

>>> Aquí otra referencia rápida de instalación de Oracle NoSQL

Mi primer programa en Java para poblar una Base de Datos OracleNoSQL

Aquí les dejo el código de mi primer programa en Java 7 para poder poblar un store en una Base de Datos Oracle NoSQL. Un sencillo programa que básicamente es una aplicación cliente KVStore que permite escribir y leer un pequeño registro (en éste caso: Hello Big Data World!). Este programa también puede servir para validad la correcta instalación de una Base de Datos Oracle NoSQL.

Es importante que antes de correr este programa tengas corriendo una instancia de KVStore (ver mi entrada de "Instalación Rápida de la Base de Datos Oracle NoSQL").

Para ello recuerden que tienen que agregar la librería kvclient.jar en las librerías externas del Java Build Path, que posiblemente se encuentra en /var/kv/kv-2.1.57/lib/

Paso 1. Crear un Java Project con el nombre de "hello"
Paso 2. Crear un Package con el nombre de "hello"
Paso 3. Crear un Class con el nombre de "HelloBigDataWorld.java"
Paso 4. Copiar el código siguiente:
 package hello;  
   
 import oracle.kv.KVStore;  
 import oracle.kv.KVStoreConfig;  
 import oracle.kv.KVStoreFactory;  
 import oracle.kv.Key;  
 import oracle.kv.Value;  
 import oracle.kv.ValueVersion;  
   
 public class HelloBigDataWorld {  
   
   private final KVStore store;  
   
   public static void main(String args[]) {  
     try {  
       HelloBigDataWorld example = new HelloBigDataWorld(args);  
       example.runExample();  
     } catch (RuntimeException e) {  
       e.printStackTrace();  
     }  
   }  
   
   HelloBigDataWorld(String[] argv) {  
   
     String storeName = "mystore";  
     String hostName = "localhost";  
     String hostPort1 = "5000";  
     String hostPort2 = "5020";  
     String hostPort3 = "5040";  
   
     store = KVStoreFactory.getStore(new KVStoreConfig(storeName, hostName + ":" + hostPort1, hostName + ":" + hostPort2 , hostName + ":" + hostPort3));  
   }  
   
   // Se ejecuta la operacion y se cierra el KVStore.  
   void runExample() {  
   
     final String keyString = "Hello";  
     final String valueString = "Big Data World!";  
   
     store.put(Key.createKey(keyString),Value.createValue(valueString.getBytes()));  
   
     final ValueVersion valueVersion = store.get(Key.createKey(keyString));  
     System.out.println(keyString + " " + new String(valueVersion.getValue().getValue()));  
   
     store.close();  
   }  
 }  
Importante:
El nombre por omisión de la instancia es mystore, el nombre del host es localhost. y el puerto es el 5000 (aunque para este ejemplo agregamos dos StorageNode con los puertos: 5020 y 5040). 

Antes de correr éste programa es necesario recordar que el autor:
Cualquier duda o comentario no duden en escribirme. ¡Gracias!

viernes, 7 de febrero de 2014

El Invierno del Dragón


Había una vez dos niños que se encontraban caminando por la calle, sin rumbo fijo, sin lugar para llegar. Uno de ellos de solo 10 años de edad y el otro de 12 años de edad. El invierno se aproximaba, un invierno crudo y frío, y los dos buscaban algo de comida y un techo para dormir. Huérfanos desde nacimiento, los pequeños no tenían un lugar dónde vivir. 

El mas chiquito se llama Darío y el mas grande se llama Alberto. Darío es un niño muy inteligente y con un gran corazón, y que además sabe cocinar algunas cosillas que aprendió a sus cortos ocho años. Alberto, por otro lado, es un niño muy hábil para el dibujo y la pintura.

Un d
ía, platicando con sus amiguitos de la calle como de costumbre, escucharon que un circo llegaría al pueblo. Un circo grande lleno de animales y con muchos payasos, un circo que tenia incluso delfines. A ellos les encantaban los circos, especialmente amaban ver a los payasos. 

Ésta puede ser nuestra oportunidad para poder tener un hogar para vivir.- dijo Darío. 

Cuando el circo llegó al pueblo, Alberto y Dario salieron emocionados, corriendo con gran alegría en busca de su encuentro. Al llegar al lugar donde se estaba instalando el circo, los dos se detuvieron y se quedaron pensando por unos minutos.

No podemos llegar solo así y pedir que nos den de comer. - dijo Alberto
Qué tal si los ayudamos a instalarse, y entonces así podrán darnos algún taco para comer. - Dijo Dario

Al entrar al circo, los dos niños vieron a una linda joven, de cabello castaño, delgada, de grandes risos y grandes pestañas, de ojos claros como la miel y una tez blanca como la leche, posiblemente andaba en sus 20 primaveras. Se llamaba Diana, una señorita rusa muy elegante y de voz delicada.  Los niños a pesar de su corta edad y llenos de inocencia se quedaron mirándola por unos segundos, quizás fue mas la sorpresa de ver a una extranjera que la belleza de Diana. Alberto decidió plasmar su imagen en un hermoso dibujo. Rápidamente empezó a dibujar sobre una libreta vieja que siempre cargaba. Con destreza plasmó su lindo rostro y una hermosa gran flor púrpura en el papel. Alberto le título: El Dragón. 

Lo que los niños no sabia es que Diana era la hija de la dueña del circo. Cuando Alberto terminó el dibujo, Diana ya se había percatado de lo que hacia su pequeño visitante. Alberto rápidamente arrancó la hoja de papel y se la regaló a Diana. Ella quedo asombrada por su agilidad para dibujar. Sin embargo, Diana no dijo nada, solo un ¡gracias! y de su rostro se mostró el destello de una frágil y radiante sonrisa.

A lo lejos, dos jóvenes de 25 y 27 años (hermanos de Diana) observaban cuidadosamente la escena. Sus nombres eran Freddy y Javier. Dos chicos robustos y altos, que formaban parte de la función como acróbatas en los anillos. Después de un rato decidieron acercarse para hacer platica. Los jóvenes eran muy amables y respetuosos y tenían un gran corazón. Al ver ese singular cuadro se sintieron conmovidos por los niños y entonces decidieron iniciar la conversación con Alberto y Dario. Los niños, al tener la atención de los jóvenes se entusiasmaron y se sintieron felices al ver a estos dos acróbatas a un lado de ellos. Freddy y Javier estuvieron platicando con los niños por un buen rato. 


Podríamos decirle a mamá que los adopte, siempre nos hace falta ayuda en el circo y creo que puede ser una buena idea tenerlos abordo.- dijo Freddy

Velozmente, Freddy y Javier jalaron a sus dos nuevos amiguitos y decidieron presentarlos con su mamá y con toda la familia del circo. Diana se quedo en la puerta, contemplando el dibujo que tenia en sus mano. Freddy, Javier, Alberto y Dario caminaron hacia el vagón principal del circo. Los telones se abrieron y sus caritas se iluminaron, especialmente sus ojitos que destellaron una gran luz de felicidad y asombro. Todos los acróbatas, payasos, trapecistas y uno que otro animalito estaban ensayando para su próximo acto. Era impresionante verlos a todos juntos al unisono de una canción, trabajando y al mismo tiempo disfrutando de su tiempo. Los niños quedaron maravillados e inmediatamente su corazón se les lleno de gozo y alegría. Tenían una esperanza.

Doña María, la mamá de los jóvenes, los vio venir. No era la primera vez que la señora veía niños emocionados, ni mucho menos entrar de forma ilegal al circo. 


Cuando por fin llegaron con la señora María, ella preguntó - ¿qué hacen aquí?, ¿qué quieren?, ¿qué pueden hacer por nosotros?.
Alberto, como un rayo respondió - ¡Yo puedo dibujar! y mi hermanito puede cocinar.

Lentamente, la mamá de los jóvenes acróbatas se alejo para platicar con Freddy y Javier y entender claramente de que se trataba este teatro. Alberto y Dario observaban la escena con nervios y con muchas dudas en su cabeza preguntándose de qué tanto hablaban. Pero por otro lado, se sentían  muy gozosos al imaginar que éste podría ser su hogar y finalmente dejar de andar rodando por las calles y mendigando un pedazo de pan. Era como un hermoso sueño, un sueño que siempre quisieron que se hiciera realidad. 

Doña Maria, que tenia la obligación de cuidar y administrar el circo, no tenia mucho dinero, de hecho estaba casi en quiebra, y aunque, como bien decían los jóvenes, que ella también tenia un buen corazón, no podía darse el lujo de adoptar a dos pequeñines huérfanos y poner en riesgo la economía del circo, no podía dejar de darles de comer a sus empleados e irse a banca rota por mantener a dos niños que apenas conocía. 

Luego crecerán y comerán mas, necesitarán más cosas para suplir sus necesidades diarias: ropa, calzado, etc. Lo siento, pero no puedo ayudarlos a los dos. Negocios son negocios. - dijo finalmente y con gran pesar Doña María a sus hijos.

Después de unos minutos Doña María, Freddy y Javier se presentaron nuevamente con sus pequeños invitados.

Darío, tú puedes quedarte y ayudarme en los quehaceres de la casa. Quizás podrías ayudar también en la cocina. Sin embargo, con todo el dolor de mi corazón no puedo ayudar a Alberto. Él no sabe hacer mucho, y creo que no podría ayudarnos, tengo mucha bocas que alimentar y dos bocas más sería muy pesado para mi. No se de qué forma podría desquitar su bocado.- dijo Doña María, tratando de buscar una solución.

Alberto se sintió triste por escuchar esa respuesta que dentro de él no quería conocer. Alberto replicó - pero, Doña Maria, déjeme quedarme, yo puedo dibujar bien, puedo ayudar a barrer, le hice un bonito dibujo a su hija.

Doña María, ofendida por la replica de Alberto le dijo con voz rígida y algo molesta - Tú no me vas a venir a decir que tengo que hacer, ya te dije NO y es mi última decisión, vete de aquí con tu dibujo.


Doña Maria fué a quitarle el dibujo a Diana. Regreso, lo miró y se lo tiro en sus pies al pobre de Alberto. El hermoso dibujo fue a dar a un charco de agua. El bello dibujo se fue borrando lentamente y solo quedó una marca de agua que dejaba ver tenuemente lo que antes era la flor purpura. Al ver ésto, Dario se sintió afligido, especialmente se lamentó de dejar solo a su amigo y hermano, entonces le dijo - Si el no se puede quedar tampoco yo, somos amigos y hemos prometido estar juntos siempre, perdón. Darío tomó la mano de Alberto, dieron media vuelta y emprendieron su salida rápidamente. Temerosos, apenados y derrumbados sintieron como su corazón se rompía en pedacitos. Su última oportunidad de tener un hogar se les había colado por sus manos, se había marchitado la flor purpura. Al estar del otro lado del bello circo solo les quedo el contemplar la magnificencia de las carpas del circo y ver la tristeza en varios rostros de sus anfitriones.

Sus estomaguitos sentían hambre. Tenían ya varios sin probar bocado, solo pedazos de comida que encontraban en algún basurero o que alguien les regalaba por el camino. Ya habían transcurrido varios días desde que el circo se había ido. Vagaron d
ía tras día. El invierno llego y los abrazo suavemente con sus dedos helados. Era un frío terrible, acompañado de algunas lluvias que traían pequeños granizos. La nieve se amontonó en las calles. La gente se acobijo en sus casas, pero Alberto y Darío seguían sin tener dónde dormir, ni ropita que acobijara sus cuerpecitos. Solo pedían comida y un hogar para poder pasar el invierno. Pero nadie los veía  parecía que no existieran. Nadie se percataba que estaban ahí, acurrucados en una esquinas. Dormían en cualquier lugar que tuviera hubiera un poco de calor y sin lluvia que tocara su piel. La navidad llego y la gente los olvido, no había ojos que los volteara a ver y no había mano que se extendiera. Los niños fueron quedando sin fuerzas. Solo un abrazo entre ellos es lo que les daba un poco de abrigo.



Un d
ía, alguien tocó a mi puerta, y al abrirla me encontré con dos hermosas caritas. Era Alberto y Darío. Pero no venian solos, estaban con otros niños, mucho niños detrás de ellos. Todas esas caritas brillantes con una luz hermosa. Tenían ropas nuevas, como batas blancas y muy limpias. Todos, pero en especial Alberto y Darío desprendían una aroma a incienso. Me quede sorprendido, Dario me dió la mano y me sonrío. 

Señor, no se preocupe por nosotros porque finalmente hemos encontrado un hogar y ahora estamos todos juntos. - dijo Darío. Me sonrieron todos juntos, entonces Alberto estiró su manita y me entrego un dibujo. Los niños se veían muy contentos y felices, pero algo dentro de mi invadía de tristeza mi corazón. Por unos minutos no despegué mi mirada de ellos, pero después miré aquel dibujo. Al ver la hoja de papel, solo percibía una ligera marca de agua, no lograba distinguir el dibujo claramente pero después me di cuenta que era un dibujo de una hoja seca de maple. Al no saber que significaba, regresé rápidamente mi mirada a ellos para preguntarles y decirles que entraran, pero ya no estaban ahí, solo quedaba un gran brillo que iluminaba mi puerta, todos habían desaparecido como ángeles que no se dejan ver. En su lugar me había quedado con ese hermoso regalo.

Mis comentarios:

Cada invierno, especialmente en navidad y año nuevo, nos olvidamos de la gente que está afuera, comemos pero nos olvidamos de pedir por los que no tienen un bocado cada día. Este año piensa en ellos, ayudemos a los que nos necesitan. Afuera hay mucha gente que está sola y necesitan de nosotros, de un poco de amor y amistad. Recordemos que la navidad es para dar y compartir, para ayudar y enseñar. No perdemos nada y ganamos mucho. Ensancha tu corazón y comparte lo mucho o poco que tienes. No te imaginas lo importante que puede ser para otras personas un poco de ayuda. El amor consiste en dar, mas que en recibir. No esperes nada a cambio cuando das algo. Siempre hay algo mas que podemos hacer.


Todos los d
ías muere gente y hay mucha gente muriendo de hambre, especialmente niños que no tienen hogar y se encuentra vagando por las calles, no por flojos, sino por que no conocen otra opción, solo conocen esa vida. La siguiente vez que un niño se te acerque, piensa si puedes hacer algo bueno por él. Ayudemos a nuestros niños a crecer en un país justo, con oportunidades y con un espacio donde vivir. Recordar que ellos son nuestro futuro. 




Cuento By Mauricio Aranda Solares