Mis artículos

Cartas a mi padre: Chiang Mai, la joya del reino (pt. 2)

2023-03-22 17:38:20

La Katty ese día iba vestida colorida, aunque no es algo de extrañar. Lucía un vestido largo de un vivaz fucsia, con un estampado florido. Aunque contrastaba con el profundo azul de las paredes del templo, combinaba a su manera.

Chiang Mai es uno de esos lugares con la etiqueta cultural impregnada hasta sus raíces. Fue un destino que descartamos en nuestro primer viaje, para equilibrar la cuota “de playas” con la “de cultura”. La idea de visitar el norte de Tailandia, significaba una opción más interesante que entretenida, dentro de mi ignorancia. Lo cierto es que al arribar a este lugar no sospechaba lo que realmente íbamos a vivir.

Segundo día, y la ruta nos apuntaba en dirección norte, el destino de turno sería Chiang Rai y sus templos contemporáneos, aldeas tribales con pintorescos habitantes y el icónico río Mekong. A decir verdad hasta ese momento no diferenciaba Chiang Rai de Chiang Mai, craso error.

El día anterior, luego de la glotonería y el paseo sin descanso por el casco viejo de la ciudad, la Katty había arreglado todos los detalles del tour, mientras yo dormía plácidamente. No nos íbamos a quedar muchos días, por lo que cualquier paseo, guiado o no, nos servía.

Era temprano aún, pero desayunamos en el buffet del hotel con algo de apremio. De igual forma pudimos degustar algo antes de partir. Nos pasarían a buscar en cualquier momento, pero no había que desaprovechar el desayuno.

Fue tiempo suficiente para festinar, salir con hambre para nosotros no era opción. Cuando al fin llegaron a recogernos, apareció un minibus no muy grande, con espacio para algo más de 10 personas. Del cual un adolescente local bajó raudo, que resultó ser el guía y nos dio la bienvenida, para rápidamente abordar e iniciar la travesía del día. El grupo que nos acompañaría supuestamente era anglo parlante aunque resultó ser un puñado de chinos y coreanos, aunque era un ambiente familiar.

No era difícil notar que el tour en realidad estaba dedicado a chinos y el hecho que nuestro guía hablara, a duras penas inglés, resultaba ser una mera casualidad. Supongo que esa poca habilidad es razón suficiente para que nos “vendieran humo” y terminaran por incluirnos entre este montón de asiáticos. Una farsa que no mermó los ánimos pero al día siguiente desvelaríamos que la agencia de tours de turno no tenía la mejor de las famas, pero ¿quién mira con tanta detención?.

El viaje del día era extenso, más de 250 kilómetros y que para el trayecto que debíamos recorrer, se traduce en cuatro horas y media de viaje, una distancia considerable. Es por eso que nuestra primera parada fue pasada la mitad del camino, en un destino que se sentía improvisado pero que, de todos modos, tenía algo de encanto.

Era un área de descanso al lado de la autopista de camino a Chiang Rai. No era cualquier parada de camioneros y turistas, sino una al costado del cauce de aguas termales de Mae Khachan, una que te querían convencer de ser un lugar interesante de visitar. Y es que a pesar de los múltiples puestos callejeros y tiendas apostadas alrededor, dicho lugar no ofrecía gran atractivo turístico. Nada relevante, al menos, más que el descanso tras dos horas y media de un viaje largo en un estrecho furgón.

El camino seguía y aunque había sido prolongado, distaba de ser tedioso. Los paisajes se tornaban más idílicos a medida que avanzábamos. Extensos campos de arroz cubiertos por una mística bruma se multiplicaban en el horizonte, copados por numerosas garzas blancas y uno que otro solitario búfalo de agua. Esos parajes hacían que el furgón en el que viajábamos se sintiera cada vez más diminuto. Eran vistas que componían una verdadera secuencia de escenas pictóricas, una obra de arte tras otra.

Alrededor de las 11 am llegamos a Wat Rong Khun. Un monumento comúnmente conocido por los turistas como Templo Blanco. Un templo poco convencional lleno de serpenteantes detalles que decoran las paredes de puntiagudas terminaciones. Y es que hasta el baño es una edificación que llama la atención, de prolijo color dorado y exquisitos detalles, se confunde como otro rincón espiritual.

Ahí intenté telefonear a la Con, pero la diferencia horaria jugó en contra, en Chile ya eran pasadas las 1 de la madrugada. Por lo que el intento de llamarla y mostrarle la magia del lugar en el me encontraba, no pasó más allá que eso, un mero intento.

Esta reliquia de la cultura tailandesa está lejos de ser un edificio antiguo e inmemorial, como lo había imaginado al enterarme de su existencia. Este es un templo contemporáneo, construido por el artista visual Chalermchai Kositpipat a partir de 1997 y que al día de hoy no ha sido finalizado. Es una suerte de Sagrada Familia en versión tailandesa. Un centro religioso que entremezcla la tradición religiosa con el arte moderno. Uno de los epicentros del turismo de la zona.

Wat Rong Khun se rodea de jardines cuidados con esmero, ataviados por una laguna que circunvala los alrededores. Reluciente por el reflejo de los rayos del sol que replican la blanquecina estructura del ubosoft o edificio central. Es un lugar mágico surtido por una infinidad de detalles que hacen difícil fijar la atención demasiado tiempo en un solo lugar.

La decoración alrededor tiene tintes no solamente religiosos, hay rincones en los que te puedes sumergir en la fantasía de El Señor de los anillos o cosas ligeras como el universo cinematográfico de Marvel. Incluida la estatua de Kositpipat como la deidad Sihuhata, esa que bajo el entendimiento local, es un ser divino de 5 ojos y 4 orejas que atrae bienestar. En resumen, un puñado de arte muy peculiar, que hace de la visita, una experiencia extrañamente única.

Tuvimos suerte, a lo largo del recorrido no nos cruzamos con demasiada gente. Y es que la zona aún acusa el abandono tras la pandemia. Después de una hora de andar por el lugar, finalmente nos dirigimos a almorzar. Nos ubicaron en un galpón en una mesa llena de potes con preparaciones locales de todo tipo, un almuerzo humilde, pero contundente y variado.

Ya en ese momento mi fanatismo por la cocina local se estaba arraigando cada vez más y es que el curry en sus diversas formas y sabores o la fresca sazón de la hierba de limón o la gran variedad de ajíes, a esas alturas, me tenían embobado a mí y a mi estómago.

Luego del almuerzo nos subimos nuevamente en el minibus y al cabo de escasos minutos andando, nos detuvimos en el distrito de Rimkok, a las afueras del Templo Azul de los tigres danzantes o como le llaman los locales, Wat Rong Suea Ten.

El templo azul es un templo que de su origen no se habla mucho, se dice que fue abandonado pero que en 2005 el arquitecto tailandés Phutha Kabkaew remodeló basándose en las decoraciones de una rama del budismo llamada Mahayana. Con una alta influencia en la arquitectura del arte jemer proveniente de Camboya. Y a diferencia de su par blanco, este fue construido para el culto a Buda y no como una atracción turística.

En la entrada se encuentran dos Nagas, esculturas con cuerpo de serpiente y busto humano, que representan semidioses de la mitología hinduista. Tras rodear una fuente de agua puedes acceder al ubosoft y visitar unas enormes esculturas de Buda en blanco tanto en el frente como la parte posterior del templo. Su prístino color blanco hacen irradiar una luz a su alrededor gracias al azulado fondo.

La Katty ese día iba vestida colorida, aunque no es algo de extrañar. Lucía un vestido largo de un vivaz fucsia, con un estampado florido. Aunque contrastaba con el profundo azul de las paredes del templo, combinaba a su manera. Su presencia por los rincones del templo componían un singular cuadro que tras el lente de mi cámara hacía resaltar entre la muchedumbre.

El día seguía su curso y el paseo nos ofrecía una nueva estación, la Casa Negra, o como se conoce en tailandés, Baan Dam. Este peculiar sitio rodeado de naturaleza, esconde los más interesantes rincones en distintas casas y galpones a lo largo de un sombrío recinto.

La Casa Negra en sí, es un museo contemporáneo construido por el pintor y arquitecto tailandés Thawan Duchanee. En su interior se puede interactuar con pinturas que al escanearse desde Instagram cobran vida en la pantalla de tu celular. Ambientado en colores oscuros, lleno de herramientas antiguas, calaveras y pieles de animales, a ratos oscuro y tenebroso, se torna en una experiencia que te pone los pelos de punta.

Varias horas de caminar y recorrer bajo un incesante sol y una humedad abrasadora, puede minar la voluntad de cualquiera, nuestro afán por seguir descubriendo recovecos en cada parada del tour, seguía incólume.

En particular, yo no sabía de todas los lugares de interés que incluía el paseo, me fui enterando de a poco. Ignoraba completamente que existía presencia de la etnia Kayan — sub grupo de la famosa etnia Karenni — burdamente llamadas “mujeres jirafa”. Esas mujeres que a lo largo de los años suman más anillos a su cuello al punto de lucir con esa extremidad alargada y un tanto anormal.

La información que ronda alrededor de esta tribu, es que son de origen birmano (Myanmar) y que tras los múltiples conflictos que ha vivido dicho país se han visto forzadas a situarse en los parajes más lejanos entre la frontera de Myanmar y Tailandia.

Hay muchos rumores dramáticos sobre la existencia de estas mujeres y el “uso” que le dan en Tailandia para el turismo, algo así como un “pago” para poder quedarse, dicen. Y es que hay afirmaciones que se contradicen al momento de describir las penurias y vivencias que esta gente ha tenido que sobrellevar para llegar allí, sea cual sea el caso es difícil leer su verdadera realidad.

Lo cierto es que visitar una de sus aldeas, en las condiciones en las que fuimos, es una situación que enfrenta el morbo con el virtuosismo de una lucha por subsistir, relato que te cuentan que suena como un intento justificar el turismo — un tanto inhumano — en torno a estas mujeres.

Recorrer los puestos de artesanía, divisar ancianas alicaídas o jóvenes niñas que ya acumulan varios anillos en sus cuellos, desempeñando roles en telares y otras maquinarias es una experiencia extraña, te sientes fuera de lugar sosteniendo tu cámara y actitud de turista perdido. Es una suerte de comprobación de realidad que hace colisionar la moral en tu interior.

Tras la intensa visita, el día terminaba a los pies de la ribera del río Mekong, en el Triángulo de Oro, desde donde se puede divisar territorio tailandés, birmano y laosiano. Un breve paseo en bote, con una incomprensible alocución de nuestro guía, unas cuantas cervezas para refrescar la puesta de sol. Y la jornada comenzaba a cerrarse gratamente, aunque nos quedaba aún el viaje de regreso.

La tecnología, un lenguaje desconocido por muchos.

2023-03-11 14:07:31

Photo by Lorenzo Herrera on Unsplash

Cuando se acercan familiares, amigos conocidos y conocidos de conocidos — que su profesión nada tiene que ver con la tecnología — pero buscan algún consejo tecnológico. Suelen complicarse más de la cuenta con tanta palabrería técnica y evitan interiorizarse demasiado en toda esa nomenclatura a pesar de su interés o necesidad. Buscan amarrar a alguien que les ayude con esta empresa sin ahondar más allá.

Cuando por ejemplo quieren emprender y la idea de construir un sitio web, aplicación o solución tecnológica ronda sus cabezas. Es cierto que en la gran mayoría de esos casos, puede ser una situación abrumadora. Sobre todo cuando son demasiados conceptos nuevos y aprender por cuenta propia es una empresa titánica, de la que no todos salen victoriosos.

Pero muchas veces se torna en una búsqueda sin mucho sentido. Si es diseñador, programador u otro especialista, no importa demasiado. Mientras la necesidad quede cubierta y el proyecto llegue a “buen puerto”, tener la ayuda adecuada pasa a un segundo plano.

La búsqueda por un colaborador que cumpla con los requisitos, no es fácil. Pero desiciones tempranas como esta pueden definir y evitar un turbulento desarrollo de tu proyecto. Es por eso que partir desde aquí, no es necesariamente lo más conveniente, sobre todo si no tienes las definiciones adecuadas para dar pie a una buena elección.

Especialidad

Es cierto que todo emprendedor, desde el más novel hasta el más experto, por definición requiere de cubrir al menor costo cualquier necesidad, hablamos no solo de dinero, sino de tiempo. O al menos considerando el potencial de réditos que puede producir tu emprendimiento. Si nos centramos exclusivamente en un sitio web podemos encontrar unos cuantos perfiles profesionales que tienen algo que decir.

Un diseñador podrá decidir acerca de la apariencia (User Interface), branding y experiencia de usuario (User eXperience) principalmente. Un programador debe ser capaz, al menos, de conectar todos los puntos. Desde la base de datos, con la el sistema de administración y la interfaz de usuario. De manera que el trabajo del diseñador tenga una funcionalidad y sin olvidar empatizar con quien finalmente tenga que mantenerla.

Lo cierto es que, tú como emprendedor, podrías meter en un aprieto a tu amigo programador si le pides hacer tu página web, sin entender que el quizás no es el adecuado para hacerla lucir efectivamente bien. O en su defecto, al amigo diseñador, si lo obligas a inmiscuirse en tecnologías que no domina.

Es cierto que hoy por hoy existen perfiles híbridos que manejan las dos áreas de conocimiento y podrían llegar con el resultado deseado. Lo importante es tener la conciencia de lo que significa construir un sistema digital para tu negocio.

Sumado a todo lo anterior, puedes necesitar expertos en marketing, comunicaciones y redes sociales para optimizar tu contenido y alcance al público objetivo que hayas definido. En este punto, ya te cuestionaste ¿quiénes son esas personas?, ¿cómo se definen?. Ese perfil de personas ¿usa la tecnología, tal como la concibes?. Es posible, que dada las características de tu proyecto, no necesites una página web o algo similar. Es útil tener claridad en este punto.

Habilidades blandas

En mi experiencia, es común que conocidos me pidan ayuda para construir sitios web. Pero es difícil explicar a veces que no hago “logos ni diseño”, no por mala voluntad sino que no es mi expertise, ni mi área de conocimiento que más domino. Y es en situaciones como esta, que un mal manejo de cualquiera de las partes puede significar empantanarse en disputas estériles. Es muy común tener miedo a decir “No sé hacerlo” o “Yo sé hacerlo dentro de estos parámetros que podrían no suplir tus expectativas”.

Cuando se contrata a la persona adecuada para el proyecto es relevante considerar la relación entre ambas, como una suerte de “simbiosis”. La idea del “win-win” o todos ganan no es descabellada. ¿Cuántos proyectos han fracasado por un equipo de trabajo mal “cuidado”?, o ¿Cuántos otros por obsolescencia forzada por un mercado que avanza más rápido que tu desarrollo?. La hegemonía de ambas partes, sin duda juega un rol a considerar.

Pero seamos francos, los programadores tenemos una fama que nos precede. Se nos suele culpar con mucha facilidad que no sabemos escuchar. Está lleno de programadores que asumen que deben resolver todos los problemas de un negocio, sin siquiera dominar las viscisitudes del mismo y olvidan empatizar con la contraparte.

Cuestiones que pueden tener un asidero justificado. Pero lo que realmente sucede es que es muy frecuente encontrar una alta falta en desarrollo de habilidades blandas entre nosotros, los “informáticos”. Y es que nuestro trabajo a ratos conspira en favor de ello.

El tema de fondo resulta en esta brecha comunicacional que más que un problema puede ser una oportunidad para acercar las intenciones de ambas partes. Si es tu caso, el que no te entiendan. Dibuja, diagrama, muestra algo que pueda ver, sencillo en un lenguaje que domines sin complicarte en demasiadas explicaciones. Sirve de sobremanera conocer los intereses de tu contraparte, cuál es su área de expertise y negocio.

Cualquier ejemplo coloca la conversación en términos conocidos. La gente suele escapar de la tecnología porque creen que que los conceptos que le rodean, superan su capacidad cognitiva, o irónicamente no les interesa aprender. El desafío está en que la tecnología y la informática asustan a quienes no le destinan tiempo para entender.

Definiciones

Entonces, la disputa “cliente-proveedor”, a partir de todo esto, se hace ardua. No olvidemos que para un emprendedor el time to market de un proyecto, hoy por hoy es bastante relevante. Puede diferenciar de un proyecto exitoso de uno que fracasa. Como dice “mi viejo”, “El que da el primer golpe, lo da dos veces”. Además, finalizar un proyecto en el periodo acordado desde la contraparte también significa que el proveedor puede tener la ganancia esperada por su trabajo.

Es fundamental tener alguna idea de el “qué”, “cómo”, “para qué” y/o “para quién” entre muchas otras interrogantes básicas que pueden surgir del afán de emprender. Todas ellas son parte del “modelo de negocio” que tú como emprendedor debieras tener claro al momento de querer llevar tu idea a cabo.

Eso no significa que quién busca emprender deba tener todo resuelto, pero definiciones como esas permiten llevar una idea al mercado más rápido. Lo que conlleva trabajar bajo la premisa de “equivocarse rápido” debido a que esto implica “equivocarse barato” entre otras cosas. Entendiendo que es el mercado el que finalmente validará tus ideas bajo la dinámica de prueba y error que permita avanzar y hacerla crecer.

Obviamente, tener todas estas definiciones en el papel nunca son garantía de éxito pero son necesarias para comenzar y vender. Un modelo te puede servir para evaluar factibilidades, actores clave e interesados. Y finalmente te lleven a visualizar de mejor manera y estimar el potencial de un proyecto. Para ello es recomendable utilizar técnicas de ideación, diseño y factibilidad debido a que pueden ser útiles a la hora de empezar con esta tarea.

Configura tu línea de comandos para trabajar con AWS

2023-03-11 02:31:27

Photo by Gabriel Heinzer on Unsplash

Primero que todo, este artículo está enfocado al uso de la línea de comandos de Amazon Web Services específicamente para la Terminal de macOS, pero con leves variaciones es aplicable para cualquier consola de comandos de sistemas basados en Unix. Abarcaré desde la instalación de las herramientas para la consola, como la autenticación con tu cuenta AWS y algunos tips.

Requisitos

  1. Gestor de paquetes brew
  2. Paquete awscli
  3. Claves de acceso AWS

Brew

En macOS que todo es más fácil con Brew, es un hecho.
Para instalar la línea de comandos de AWS en tu Mac, deberás instalar este gestor de paquetes,
Esto lo puedes lograr ejecutando esta único comando,
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Más información la puedes encontrar en el siguiente enlace https://brew.sh/index_es

De lo contrario puedes seguir al siguiente paso,

Paquete awscli

Para instalar este paquete en tu línea de comandos tienes 2 alternativas, hacerlo mediante Brew, lo cual se limita solamente a ejecutar en tu consola el siguiente comando,

brew install awscli

Sino puedes seguir el paso a paso oficial que indica Amazon para hacerlo sin Brew.
https://docs.aws.amazon.com/cli/latest/userguide/install-macos.html

Claves de acceso

En este último paso ingresa a la consola web de Amazon Web Services,

Ingresa a https://console.aws.amazon.com y accede a tu cuenta con tus credenciales

En el menú de tu cuenta entra a la opción My Security Credentials (Mis credenciales de seguridad). Y entra a la configuración de tu cuenta IAM. Ahí podrás encontrar el formulario para crear nuevas credenciales de acceso para asignar a tu línea de comandos.

En la pestaña Credenciales de AWS IAM, busca y haz clic sobre el botón que dice Crear una clave de acceso

Se abrirá una ventana modal emergente. En ella encontrarás tu ID de clave de acceso (aws_access_key_id) y tu clave de acceso secreta (aws_secret_access_key) que luego podrás utilizar para autenticar todas tus solicitudes desde la consola.

Como medida de respaldo te recomiendo que hagas clic sobre “Descargar archivo .csv” de esa manera podrás guardar tus credenciales en algún lugar seguro de tu computador.

Configura tu línea de comandos

Puedes comenzar por abrir una nueva pestaña de la consola y ejecutar el siguiente conjunto de comandos,
sudo aws configure set aws_access_key_id “AKIAIQHFHRNDLSZY4BVA”
sudo aws configure set aws_secret_access_key “bLawsnKiQFYMIvITJTb+HastKSmh9wtYeQuRof6N”
sudo aws configure set region {Reemplaza por la región en la que quieres trabajar de AWS}

Este es el listado de regiones y sus códigos,

Código Nombre us-east-1 US East (N. Virginia) us-east-2 US East (Ohio) us-west-1 US West (N. California) us-west-2 US West (Oregon) ca-central-1 Canada (Central) eu-central-1 EU (Frankfurt) eu-west-1 EU (Ireland) eu-west-2 EU (London) eu-west-3 EU (Paris) eu-north-1 EU (Stockholm) ap-northeast-1 Asia Pacific (Tokyo) ap-northeast-2 Asia Pacific (Seoul) ap-northeast-3 Asia Pacific (Osaka-Local) ap-southeast-1 Asia Pacific (Singapore) ap-southeast-2 Asia Pacific (Sydney) ap-south-1 Asia Pacific (Mumbai) sa-east-1 South America (São Paulo)

Esto creará entradas en los siguientes archivos,

~/.aws/config
En este primer archivo se almacenarán tu ID de clave de acceso (aws_access_key_id) y tu clave de acceso secreta (aws_secret_access_key)

~/.aws/credentials
En el segundo se guardará la región que seleccionaste.

Dato útil es que si usas más de una cuenta y necesitas configurar múltiples credenciales lo puedes hacer mediante los perfiles. Básicamente debes configurar tus credenciales añadiendo — profile cuenta1 o — profile cuenta2 por ejemplo.

Ej.
sudo aws configure set aws_access_key_id “AKIAIQHFHRNDLSZY4BVA” — profile cuenta1

Crear y personalizar la configuración de seguridad para EC2 en AWS

2023-03-11 02:29:31

Photo by Christian Wiediger on Unsplash

Crear un grupo de seguridad

Para crear una configuración de seguridad (security group) puedes correr el siguiente comando,
create-security-group — description {Ingresa una descripción} — group-name {Ingresa un nombre} — vpc-id {Ingresa el id de la VPC a la que pertenecen tus recursos}

Ej.
create-security-group — description “Grupo de seguridad” — group-name “Grupo 1” — vpc-id “vpc-123a4b6c”

Este comando te arrojará el id del grupo recién creado.
IMPORTANTE: Para saber el id de la VPC de tus instancias EC2 puedes ejecutar,

Ej.
aws ec2 describe-vpcs — profile=cuenta1
El dato que nos interesa es VpcId

Aquí puedes ver mayor información acerca del comando, https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html

Agregar reglas a tu configuración de seguridad

Mediante el siguiente comando podrás agregar una regla para lograr cosas como,

  • Aislar el acceso de la base de datos exclusivamente desde tu instancia EC2
  • Controlar el acceso SSH a tus instancias EC2 o RDS por ejemplo
  • Acceso HTTP y HTTPS a toda la internet
  • Entre otros

aws ec2 authorize-security-group-ingress — group-name {Ingresa el nombre del grupo} \
 — protocol {Ingresa protocolo tcp o udp} — port {Puerto a autorizar} — cidr {IP del host a autorizar en formato v.w.x.y/zz} — profile cuenta1

Ej. Si quisiéramos autorizar el acceso MySQL debemos abrir el puerto tcp 3306, para el host de ip 106.196.254.55. En este ejemplo solo abarcaremos un solo host, pero recuerda que asignando una máscara de subred inferior a 32, estarías abarcando un rango de ips. Si quisieras dejar abierto el acceso a cualquiera puedes poner 0.0.0.0/32
aws ec2 authorize-security-group-ingress — group-name “Grupo 1” \
 — protocol tcp — port 3306 — cidr 106.196.254.55/32 — profile cuenta1

Por si no recuerdas como subnetear, te dejo un enlace donde puedes refrescar la memoria y una calculadora que te puede facilitar las cosas a la hora de obtener la ip de tu subred.

Eliminar una regla de tu configuración de seguridad

De esta manera podrás eliminar una regla mediante la indicación del protocolo, puerto e ip/cidr ingresados en algún momento anteriormente.
aws ec2 revoke-security-group-ingress — group-name {Ingresa el nombre del grupo} \
 — protocol{Ingresa protocolo tcp o udp} — port {Puerto a desautorizar} — cidr {IP del host a desautorizar en formato v.w.x.y/zz} — profile cuenta1

Ej. para eliminar la regla anteriormente creada puedes ejecutar lo siguiente,
aws ec2 revoke-security-group-ingress — group-name {Ingresa el nombre del grupo} \
 — protocol{Ingresa protocolo tcp o udp} — port {Puerto a desautorizar} — cidr {IP del host a desautorizar en formato v.w.x.y/zz} — profile cuenta1

Eso es todo, cualquier cosa no duden en escribirme.

Configuración e instalación del servicio de correo Para CentOS7, Postfix y Gmail

2023-03-11 02:26:46

Photo by Rubaitul Azad on Unsplash

Contraseña de aplicación de tu cuenta de Gmail

Referencia: https://support.google.com/accounts/answer/185833?hl=es-419

Para conseguir tu contraseña de aplicación debes realizar el siguiente paso a paso,

  1. Ve a tu Cuenta de Google.
  2. En el panel de navegación izquierdo, haz clic en Seguridad.
  3. En el panel Acceso a Google, haz clic en Contraseñas de la aplicación.
    Nota: Si no puedes acceder a la página, la verificación en dos pasos:
    No está configurada en tu cuenta
    Está configurada para usarla solo con llaves de seguridad
  4. En la parte inferior, haz clic en la opción para seleccionar una app y, luego, selecciona la app que estás utilizando.
  5. Haz clic en Seleccionar dispositivo y elige el dispositivo que usas.
  6. Haz clic en Generar.
  7. Sigue las instrucciones para ingresar la Contraseña de la aplicación (el código de 16 caracteres en la barra amarilla) en el dispositivo.
  8. Haz clic en Listo.

Una vez que hayas terminado, no volverás a ver el código de la Contraseña de la aplicación. No obstante, verás una lista de las apps y los dispositivos para los que generaste las Contraseñas de la aplicación.
Nota: Es posible que no puedas crear una Contraseña de la aplicación para apps menos seguras. Obtén más información sobre cómo permitir el acceso a apps menos seguras. Esta configuración fue removida a partir de Junio de 2020. Más info.

Dependencias del sistema

CentOS 7

Paquetes

postfix
cyrus-sasl-plain
mailx

Archivos de configuración

configura_correo.sh
Contiene un script para automatizar el proceso de instalación de paquetes y configuración del servicio

Para finalizar la personalización de este script, debes abrirlo en un editor de texto y reemplazar la información indicada entre paréntesis.

*Importante: Este script aún no ha sido probado.

postfix_access.txt
Contiene las credenciales de acceso para la cuenta de Gmail que se encargará de enviar los correos.
Para que el script funcione debes de haber personalizado este archivo con las credenciales que quieres utilizar,

postfix_conf.txt
Contiene los parámetros necesarios que necesita Postfix para operar con Gmail.

Nota:
No olvidar que para que las tareas cron de por sí NO envíen un correo. Se debe agregar al final de la instrucción >/dev/null 2>&1
Ej.
*/5 8–17 * * 1–5 /home/usuario/script.sh >/dev/null 2>&1

*Todos estos archivos están provistos aquí,

https://www.juane.cl/wp-content/uploads/2019/02/conf.zip

Paso a paso

Este paso a paso es una traducción del instructivo encontrado acá,
https://devops.profitbricks.com/tutorials/configure-a-postfix-relay-through-gmail-on-centos-7/

Instalar paquetes

Asegúrate que Postfix, el framework de autenticación SASL y mailx esté instalados.
yum -y install postfix cyrus-sasl-plain mailx

Será necesario reiniciar el servicio de Postfix para que SASL sea detectado.
systemctl restart postfix

Postfix también debe activarse el servicio en el inicio.
systemctl enable postfix

Configurar Postfix

Abre /etc/postfix/main.cf, en tu editor de texto de preferencia, y añade las siguientes lineas al final del archivo.

myhostname = www.dominio.com
myorigin = dominio.com
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

Guarda los cambios y cierra del editor.

Configura las credenciales SASL para Postfix

Las credenciales de autenticación deben ser ingresadas ahora. Crea el archivo /etc/postfix/sasl_passwd y agrega la siguiente línea:
[smtp.gmail.com]:587 correo:contraseña

El correo y contraseña deben ser reemplazados con las credenciales de Gmail. Luego guarda los cambios y cierra el editor.
Se debe generar la tabla de revisión de Postfix a partir del archivo sasl_passwd recién guardado ejecutando el siguiente comando:
postmap /etc/postfix/sasl_passwd

Como medida de seguridad el archivo sasl_passwd debe estar restringido, para ello se debe ejecutar el siguiente par de comandos,
chown root:postfix /etc/postfix/sasl_passwd*
chmod 640 /etc/postfix/sasl_passwd*

Finalmente hay que recargar el servicio de Postfix
systemctl reload postfix

Probar el Relay

Usa el comando mail para probar el envío de correos.
echo “Escribe un mensaje” | mail -s “Escribe un asunto” [email protected]

Revisar si el destinatario recibió el mensaje. De no haberlo hecho, revisa las instrucciones de troubleshooting.

Comprobar errores de envío

El historial de envíos puede ser consultado y puede ser de gran utilidad para determinar la razón en el caso que un correo no haya sido enviado. Abre en una ventana nueva de consola y ejecuta el siguiente comando,
tail -f /var/log/maillog

En esa ventana verás en tiempo real el resultado de tus pruebas en la medida que las vaya ejecutando.
En caso de querer controlar la cantidad de líneas que este log muestra puedes añadir -n seguido de un número de líneas.
Ej.
tail -f -n100 /var/log/maillog

Asimismo, si además quieres que el proceso se ejecute en segundo plano puedes agregar un & al final del comando.
Ej.
tail -f -n100 /var/log/maillog&

Para cerrarlo deberás trazar el pid (ps -fea | grep tail) del proceso para luego aplicar un kill (pid)

Si los detalles entregados por el log, no son suficientes, puedes agregar las siguientes líneas a /etc/postfix/main.cf
debug_peer_list=smtp.gmail.com
debug_peer_level=3

Para que estos cambios realizados sobre el archivo main.cf surtan efecto, el servicio de Postfix debe ser recargado con el siguiente comando,
systemctl reload postfix

Recuerda eliminar la configuración de depuración cuando hayas resuelto el problema. Ampliar el detalle del log, puede tener un impacto negativo en la performance del servidor, sobre todo en ambiente de producción.

Para evitar el servicio crond te invada de correos tu casilla recién configurada puedes agregar una modificación en el siguiente archivo de configuración,
/etc/sysconfig/crond, puedes agregar a la variable CRONDARGS que por defecto viene vacía. Los siguientes parámetros, quedando de la siguiente manera,
CRONDARGS=-s -m off

Finalmente puedes reiniciar el servicio con systemctl restart crond y verificando el estado con systemctl status crond

Recursos para trabajar con mapas y la división política geográfica: Chile

2023-03-10 23:47:48

Photo by Caio Silva on Unsplash

Para todos aquellos que emprenden en proyectos que contemplan el manejo de mapas y la ubicación de marcadores. Les comparto algunos hallazgos que he realizado últimamente respecto de algunas API’s que me ha tocado utilizar.
Acerca de Google me pareció bastante útil el servicio de Google para obtener coordenadas de búsquedas en Google Maps,

Formato:
https://maps.google.com/maps/api/geocode/json?address={Consulta+separada+por+signos+mas}&key={Llave de API}

Por ejemplo si buscamos “Moneda, Santiago, Chile”, el resultado en JSON es el siguiente,

{
"results": [
{
"address_components": [
{
"long_name": "S/N",
"short_name": "S/N",
"types": [
"street_number"
]
},
{
"long_name": "Moneda",
"short_name": "Moneda",
"types": [
"route"
]
},
{
"long_name": "Santiago",
"short_name": "Santiago",
"types": [
"locality",
"political"
]
},
{
"long_name": "Santiago",
"short_name": "Santiago",
"types": [
"administrative_area_level_3",
"political"
]
},
{
"long_name": "Santiago",
"short_name": "Santiago",
"types": [
"administrative_area_level_2",
"political"
]
},
{
"long_name": "Región Metropolitana",
"short_name": "Región Metropolitana",
"types": [
"administrative_area_level_1",
"political"
]
},
{
"long_name": "Chile",
"short_name": "CL",
"types": [
"country",
"political"
]
}
],
"formatted_address": "Moneda S/N, Santiago, Región Metropolitana, Chile",
"geometry": {
"location": {
"lat": -33.4429091,
"lng": -70.6538699
},
"location_type": "ROOFTOP",
"viewport": {
"northeast": {
"lat": -33.4415601197085,
"lng": -70.65252091970851
},
"southwest": {
"lat": -33.4442580802915,
"lng": -70.65521888029151
}
}
},
"place_id": "ChIJZeRH_abFYpYRgq6ITSuhD10",
"plus_code": {
"compound_code": "H84W+RF Santiago de Chile, Chile",
"global_code": "47RFH84W+RF"
},
"types": [
"establishment",
"local_government_office",
"point_of_interest"
]
}
],
"status": "OK"
}

Cuestiones importantes, para el caso de Chile, Google jerarquiza las divisiones políticas de la siguiente manera,
country: País,
administrative_area_level_1: Región,
administrative_area_level_2: Provincia,
administrative_area_level_3: Comuna
Importante destacar que aunque la localidad (pueblo, asentamiento, ciudad) no es una división oficial en Chile, Google de todas formas la identifica bajo el tipo “locality” y las calles con el nombre de “route”.
Asimismo, te entrega la coordenada para centrar en el mapa, el lugar donde posicionar el marcador en “geometry.location.lat” y “geometry.location.lng
Para todo efecto, esto es útil a la hora que quieras posicionar direcciones en un mapa, por ejemplo.

Junto con ello, encontré una API del Gobierno de Chile, que no me consta que esté siendo mantenida pero sirve para consultar las divisiones oficiales de Chile (regiones, provincias, comunas).En mi caso, necesitaba primero que fuera una consulta local desde el mismo servidor donde se alojaba mi app, y segundo que pudiera anidar desde región hasta comuna o hasta localidad.

Aquí les dejo un gist con los archivos JSON que contienen el listado completo de regiones, provincias, comunas y localidades. El JSON de localidades es de mi autoría y lo enlace con el de provincias, por medio de la relación entre los atributos “codigo” (provincia) y “codigo_padre” (localidad). Cabe destacar, que al no ser una división oficial en Chile, no existe un repositorio que agrupe el total de localidades.

Este listado fue compuesto de una serie de búsquedas a lo largo de la red.
Snippet de división política de Chile

Mezcla una rama a tu rama principal en SVN

2023-03-10 23:35:58

Photo by Yancy Min on Unsplash

Lo reconozco, me he hecho un asiduo fanático de git, no solo por su flexibilidad y facilidad para aprender y manejarlo sino por todas las bondades a la hora de manejar el despliegue de aplicaciones en ambientes, incluso en producción. Lo importante de todo esto, es manejar, al menos, una tecnología para el control de versiones. No sé si es una buena práctica, una salvación para el “yo del futuro”, evitar al desarrollador desordenado del equipo o una manera más cómoda de manejar tus códigos de fuente. Elige tu razón favorita, lo que es cierto es que hay muchas.

Ahora bien, si en tu trabajo te exigen usar algo distinto, siempre es bueno tener alguna carta bajo la manga. En mi caso, donde trabajo usan SVN. A pesar de que no tiene mucho que envidiarle a git, no es una herramienta que me sea cómoda de usar. Y no sé si es tontera mía, porque con clientes GUI como Tortoise (Windows) o Snail (MacOS) las cosas debieran ser más fáciles e intuitivas. Yo permanezco fiel a la vieja usanza con la línea de comandos. Puede que me sienta “hacker” como de las películas y lo considere más cool. Pero lo cierto es que me acomoda y me tranquiliza más entrar un par de comandos en la terminal, antes que hacer un par de clicks.

Es por eso que contrariando la posibilidad de simplificar mi vida es que opto por llenarme de scripts shell. Y algo que siempre asusta es el proceso de fusión de ramas con la rama principal. De ahí la razón de haber construido este script que permite lograrlo.

El script lo que realiza es,

  1. Autenticación con repositorio SVN
  2. Descarga trunk de repositorio
  3. Mezcla branch con trunk descargado
  4. Renombra branch para marcarlo como mezclado
  5. Elimina archivos descargados

Si tienen Windows, les recomiendo bastante Tortoise SVN

Por línea de comandos pueden instalarlo de las siguientes maneras,

  • brew install subversion (MacOS)
  • yum install mod_dav_svn subversion (CentOS, RHEL)
  • apt-get install subversion (Ubuntu)
###################################################
# Name: Merge working copy into trunk in SVN
# Author: Juane Chomon <[email protected]>
# Version: 1.0.1
# Date: 23/09/2019
# Repository: [email protected]:juanecl/svn-scripts.git
####################################################
DEBUG=false
MSG="Branch renombrado tras merge"
TMP_DIR=~/svn/temp_merge_dir
EDITOR=nano
usage_branch_merge() { echo "Uso: branch.merge [-v] [-t <string>] [-b <string>] [-m <string>]" 1>&2; return 1}
# Se capturan parametros de entrada
while getopts "vt:b:m:" o; do
case "${o}" in
v)
DEBUG=true
if $DEBUG
then
echo "-----------------------------------------------"
echo "Mezclar copia de trabajo al trunk de SVN - svn.branch.merge() función iniciada"
echo "-----------------------------------------------"
echo "INFO: Modo de depuración activado"
fi
;;
t)
TRUNK=${OPTARG}
if $DEBUG
then
echo "INFO: TRUNK: $TRUNK"
fi
;;
b)
BRANCH=${OPTARG}
if $DEBUG
then
echo "INFO: BRANCH: $BRANCH"
fi
;;
m)
MSG=${OPTARG}
if $DEBUG
then
echo "INFO: Mensaje de commit: $MSG"
fi
;;
*)
if $DEBUG
then
echo "ERROR: Parámetro desconocido."
fi
;;
esac
done
if [ -z "$BRANCH" ]; then
echo "No se especifica trunk de base para la mezcla"
usage_svn_branch_merge
fi
if [ -z "$BRANCH" ]; then
echo "No se especifica rama a mezclar"
usage_svn_branch_merge
fi
BRANCH_DIR=`echo $BRANCH | rev | cut -d '/' -f 1 | rev`
MERGED_DIR="MEZCLADO_"$BRANCH_DIR
TRUNK_DIR=`echo $TRUNK | rev | cut -d '/' -f 1 | rev`
NEW_BRANCH=${BRANCH/$BRANCH_DIR/$MERGED_DIR}
LOG="$DEV/logs/svn/$BRANCH_DIR a $TRUNK_DIR - $DATETIME.log"
# Creamos un directorio temporal para trabajar
CURRENT_DIR=$(pwd)
mkdir -p $TMP_DIR
cd $TMP_DIR
echo "Creamos y entramos directorio temporal $TMP_DIR" >> $LOG
# Se verifica existencia de TRUNK 
svn info $TRUNK
error=$?
if [ $error -ne 0 ]; then
echo "$TRUNK no existe (T)" >> $LOG
usage_svn_branch_merge
else
# Descargar repositorio del trunk
svn checkout $TRUNK
cd $TRUNK_DIR
echo "Traemos trunk y entramos al directorio raíz $TRUNK_DIR" >> $LOG

# Se verifica existencia de BRANCH
svn info $BRANCH
error=$?
if [ $error -ne 0 ]; then
echo "$BRANCH no existe (B)"
usage_svn_branch_merge
else
# Mezclamos con el branch especificado y le hacemos commit al cambio
svn merge $BRANCH
svn commit -m "Fusión con master realizada"
echo "Mezclamos la rama $BRANCH_DIR en el trunk y subimos el cambio" >> $LOG

# Renombramos el branch por el nuevo nombre
svn mv $BRANCH $NEW_BRANCH
svn commit -m "$MSG"
echo "Renombramos el branch para marcarlo como mezclado" >> $LOG
fi
fi
# Eliminamos directorio temporal
cd $CURRENT_DIR
rm -rf $TMP_DIR
echo "Salimos del directorio temporal y lo eliminamos" >> $LOG
unset EDITOR

Cartas a mi padre: Chiang Mai, la joya del reino(pt. 1)

2023-02-05 20:48:02

Callejear por lugares nuevos siempre ha sido de nuestros pasatiempos predilectos cuando nos toca explorar un lugar que nunca hemos visitado, pero como ya saben la situación tenía un ápice de urgencia. Y es que callejear con el estómago vacío, no lo recomiendo.
Photo by Peter Borter on Unsplash

A Chiang Mai llegamos a la hora de almuerzo. El vuelo desde Bangkok partió temprano, fue breve, algo más de una hora de vuelo, de esos que suben y bajan, nada de trámites engorrosos. Desde el aeropuerto al hotel nos distanciaba un trayecto de quince minutos en auto, no habíamos contratado un transporte con anticipación por lo que no nos quedó alternativa que tomar un taxi. Aun con la habilidad de negociación de la Katty no conseguimos gran descuento, pero sí llegar al hotel en pocos minutos.

Chiang Mai es la capital de la provincia del mismo nombre, en el profundo norte de Tailandia. Centro cultural de la zona y destino turístico por excelencia. Su origen data de 1296 durante el reinado Lanna y su nombre quiere decir algo como “Ciudad nueva”.

En cuanto llegamos, fuimos raudos a nuestra habitación, acomodamos nuestras cosas y salimos rápidamente a buscar un lugar para almorzar, estábamos hambrientos. Sería cómico si alguien pudiera grabar ese momento, ese en que la necesidad por comer se convierte en hambre voraz y es porque tardamos más de la cuenta en saciar ese menester.

En ese momento surge una de las partes más intensas de nuestras personalidades. La Katty camina silenciosa como una leona por la sabana buscando una presa, pero lo que busca en realidad es un local de su gusto en el que pueda contar con una exquisita carta de cócteles, sumado a ricos aperitivos o platos de fondo no demasiado sofisticados para su paladar.

Algo que para mi tímida personalidad en lugares inexplorados, como lo era Chiang Mai para cuando llegamos, se vuelve improbable de encontrar. En general, la Katty tiene éxito con su cometido, pero para mi gusto, con más esfuerzo de lo que yo propondría para una empresa como esa, cuando el hambre nubla al criterio. Por mi lado, me contento con una cerveza helada y un plato de comida local. No es que la Katty no le gusten cosas más exóticas, pero con hambre las cosas cambian.

Callejear por lugares nuevos siempre ha sido de nuestros pasatiempos predilectos cuando nos toca explorar un lugar que nunca hemos visitado, pero como ya saben la situación tenía un ápice de urgencia. Y es que callejear con el estómago vacío, no lo recomiendo.

El hotel de turno, Glory Boutique Suites, está ubicado a unas pocas cuadras de Chang Phuak Gate o “la puerta del elefante”, uno de los tres accesos al norte del casco histórico de la ciudad y una de las cuatro principales puertas. Esa que aún conserva vestigios de la antigua muralla que rodea el sector y que su perímetro está matemáticamente definido por un foso de agua artificial, que luce perfecto en más de 2 kilómetros cuadrados.

Antes de llegar a Old city, te cruzas también con Wat Lok Moli, un pequeño y antiguo templo frente a la puerta de Chang Phuak, del cual no se tiene una referencia exacta de su construcción, pero se cree que tiene más de 600 años. Se cree que fue lugar de albergue para las cenizas de grandes próceres de la dinastía Mengrai, fundadora de la ciudad.

El hotel es un buen lugar para quedarse, aunque algunos podrían decir que no es tan céntrico. El barrio en el que se ubica es más modesto y tranquilo, pero tanto caminando como en tuk tuk o taxi puedes llegar en unos cuantos minutos a templos, restaurantes y cualquier otro lugar de interés en el centro de la ciudad.

En palabras de un guía español que tendríamos días después. Donde nos quedamos es un “barrio de birmanos” y un “hotel para chinos”. Dos afirmaciones que no describen con justicia las prestaciones de un lugar muy conveniente.

Lo más destacado de este sitio es la comodidad de una habitación que es tremendamente espaciosa y distinguidamente decorada a pesar de no ser antigua, evidencia algunas imperfecciones. O como olvidar el rico desayuno buffet que ofrecen, es variado y contundente. Además de albergar una amplia y poco concurrida piscina en la azotea con una preciosa vista panorámica de los alrededores. Y todo a un módico precio.

Nuestra primera caminata hacia Old city fue un poco caótica. Con hambre es difícil pensar y aunque teníamos Google Maps para ayudar, los mapas no siempre son exactos, lo que te lleva indefectiblemente a dar más vueltas de las presupuestadas. También hay que decirlo y es que el poder de una buena fotografía puede contrastar con la experiencia de llegar al lugar en realidad. Te pueden engañar las expectativas, para bien o para mal.

Antes de arribar a nuestro destino de almuerzo tuvimos varios intentos fallidos, uno de ellos se encontraba al interior de un edificio, escondido tras otro genial restaurante Chala No 6, en medio de un meticulosamente adornado jardín. La paz que se respiraba en ese lugar difería largamente con el airado paseo que habíamos dado hasta entonces.

El Rice barn bar, lucía como un lugar para una salida con tintes más elegantes y románticos, algo muy distinto a lo que buscábamos para la hora de almuerzo. Google Maps me había hecho una expectativa muy distinta de lo que finalmente terminó siendo, pues la Katty ignoraba nuestro destino. Irónicamente era más de lo que buscábamos, algo que no ocurre muy a menudo en situaciones como esta.

Cuadras antes nos habíamos cruzado con una esquina poblada por un puñado de locales más modestos, entre ellos una heladería, una pizzería y un restaurante de comida local. Nos había llamado la atención ese lugar, pero a mi no me había convencido del todo, estaba empecinado por llevar a la Katty al lugar que había investigado en internet y por eso habíamos continuado adelante.

Sin embargo, tras la ridícula situación de rechazar un lugar porque supera las expectativas y nuestro afán por comer, en ese momento, lo que fuera, era urgente. Decidimos dar la vuelta y caminar 50 metros hacia esa esquina que inicialmente habíamos ignorado, a causa de mi porfía.

Llegamos entonces al Terrace bar & cuisine, un rincón que resultó ser ideal para finalmente descansar, pensar con mayor claridad y sobre todo saciar nuestra principal necesidad, comer. Las mesas las tenían distribuidas en una terraza a lo largo de las dos caras de la esquina, en la intersección de las calles Prapokkloa y Ratchamanka. En el sur este de Old city, en una zona que parece ser turística y céntrica, a unas cuadras de Wat Chedi Luang, uno de los principales templos de la ciudad.

El lugar funciona con un servicio centralizado, te ofrecen las cartas de todos los restaurantes del lugar y uno puede seleccionar con libertad lo que se te antoje en el momento. Puedo decir que me gusta ese sistema, es creativo y versátil, muy enfocado en el cliente. Fue un buen desahogo después de todo.

Aunque satisfechos partimos del restaurante, en el camino de vuelta al hotel, nos tentó un Dunkin Donuts que nos cruzó frente a los ojos y compramos un arsenal de donuts. Aún nos quedaba coordinar nuestras andanzas por Chiang Mai para los próximos días y un poco de azúcar no estaba de más.

Cartas a mi padre: Bangkok y su gente(pt. 4 y final)

2023-01-31 23:39:32

Íbamos por Bangkok con la Katty, con la misma cara perdida que tu y yo, Rog, esa vez hace veinte años cuando caminábamos por Av. Figueroa Alcorta, allá en Buenos Aires, buscando el Museo Malba. Ese viaje exprés de negocios que me llevaste a Argentina y yo recogía en la calle todo lo que caía de tu bolsillo. Es divertido pensar que yo repetía tus exactos pasos de antaño en otro lugar, otro momento, tan lejos de Chile.

Otro día empezaba con una nueva andanza por las calles de Bangkok. Con la misma improvisación, aunque calculada, de los días anteriores, habíamos definido un itinerario para esta nueva jornada. A escribir otra historia para contar en estas páginas, imaginaba.

Ya acumulábamos algo de pericia moviéndonos por las calles, o eso creía, y es que el circuito de trenes y recorridos de micro, se nos hacía cada vez más conocido. Aunque nos sentíamos cómodos, era evidente que para ojos de los locales éramos como niños perdidos aprendiendo a moverse por la ciudad. Sin duda te reirías de la situación, esbozo una sonrisa de solo imaginarlo.

Por mi lado, era imposible disimular mi calidad de turista, cargando mi mochila y banano, incluida esa vistosa cámara amarilla que tengo. Y digo vistosa, por que por el color amarillo, siempre surge algún curioso que indaga si es resistente al agua o tiene alguna capacidad extraordinaria. Realmente no pasamos desapercibidos, con el celular en mano, dando pasos timoratos hacia nuestro destino de turno. Y es que la tecnología no es infalible, no al menos para disimular que no sabes con exactitud a dónde vas.

Íbamos por Bangkok con la Katty, con la misma cara perdida que tu y yo, Rog, esa vez hace veinte años cuando caminábamos por Av. Figueroa Alcorta, allá en Buenos Aires, buscando el Museo Malba. Ese viaje exprés de negocios que me llevaste a Argentina y yo recogía en la calle todo lo que caía de tu bolsillo. Es divertido pensar que yo repetía tus exactos pasos de antaño en otro lugar, otro momento, tan lejos de Chile.

Solo puedo decir que los tailandeses son gentiles, gente atenta, expresan genuina amabilidad que les aflora en pequeños gestos. En cada momento que mi torpeza aparecía, la Katty se mofaba y una mano amiga me alertaba que había olvidado algo atrás.

Si nuestro andar era errático aparecía algún local que nos apuntaba en la dirección indicada. No hace falta entablar grandes conversaciones, es que el idioma es una barrera enorme. Basta un breve intercambio de palabras inconexas, un par de sonrisas y un sentido agradecimiento.

Es cierto que yo soy testarudo y no pregunto indicaciones, la Katty en cambio, busca respuesta en cada transeúnte que se le cruza y a veces me reprende por no hacerlo, no la culpo. Es probable que sin ese atrevimiento suyo, no llegaríamos demasiado lejos.

Pasear por las calles de Bangkok es una experiencia peculiar, sobre todo por sus aromas y olores que atraen y disgustan. Sentir la fragmentación entre fragantes esencias que emanan de las cocinas desde muy temprano o la naturaleza espesa que cubre las calles, que a ratos se empañan por el hedor de las alcantarillas o al intenso olor a naftalina que se cuela desde algún callejón. No es fácil de asimilar, pero hace más intenso el recorrido.

Tercer y penúltimo día, planeamos ir al parque, a recorrer el río en bote y completar con alguna ocurrencia que se nos viniera a la cabeza en el momento. Si el parque Santi Phap fue una grata sorpresa días atrás, el parque Lumphini, lo supera en varios sentidos. Inmensamente más grande, en más de 56 hectáreas de extensión alberga un particular lago artificial, una biblioteca pública, incluso un acuario, entre otras cosas.

Como dato histórico su nombre viene de Lumbini, lugar de nacimiento de Buda en Nepal. Se encuentra en el distrito financiero de Bangkok, conectado por una pasarela aérea con el parque Benjakitti, es un puente peatonal de más de 1 km de longitud. Este parque es un lugar tranquilo pero lleno de vida y actividades para la gente, incluso cuenta con instalaciones que de enero a abril se usan para un festival de música.

En este parque puedes encontrar múltiples tipos de aves que se posan a su antojo alrededor de la laguna. Junto a ellas y con una naturalidad sorprendente, puedes avistar apacibles dragones de Komodo que apoltronados sobre el césped temperan su cuerpo al sol, indiferentes a quién se les cruce por delante.

Cerca del parque, a un par de cuadras, se encuentra Sathorn pier. En la ribera del río Chao Phraya, es el muelle principal, por tanto suele estar bastante concurrido. Ahí puedes tomar una variedad de botes que funcionan como transporte, pero sin duda sirven como paseo turístico. Tomamos uno de la línea anaranjada, una de las más turísticas y que te lleva al otro extremo, donde puedes visitar lugares como el centro comercial Iconsiam o la gigantesca y colorida estupa de Wat Arun y finalizar en el muelle cercano a Khaosan Road.

Aunque nosotros no sabíamos bien qué recorrido escoger, de igual forma hicimos la fila para comprar, en el ajetreo de la fila y debido a nuestra dubitativa presencia el vendedor nos dejó a un lado. Atónitos por esta reacción, tomamos asiento al final del muelle para ponernos a investigar. Finalmente decidimos comprar el trayecto hacia el muelle de la calle Phra Athit, casi al final del recorrido, ese que está a un par de cuadras de Khaosan Road. Nuestro lugar favorito para cerrar, casi una cábala para terminar cada día en nuestra estancia en esa capital.

Recorrimos raudamente Khaosan Road, el comercio funcionaba a media máquina o menos, era domingo 25 de diciembre y se notaba vacío como nunca antes lo habíamos visto. Concluímos el día comiendo en un lugar conocido, Villa Cha-Cha. Es un restaurante ubicado en Rambuttri alley, que ya habíamos visitado la vez anterior. Y por cierto no sería la última vez. Así dimos cierre a la parada inaugural del viaje que habíamos planificado ansiosamente por tantos meses. Al día siguiente partíamos a un nuevo destino y a otras historias que contar.

Cartas a mi padre: Los mercados de Bangkok (pt. 3)

2023-01-30 01:46:36

No sé porqué, pero cada vez que he visitado un mercado me acuerdo mucho de la mamá, fantaseo imaginando verla recorrer todos sus rincones con inmensa curiosidad. Regateando hasta el último peso por algún adorno, pañuelo o souvenir. Y es que la Katty, sin darse cuenta representa ese personaje a cabalidad siempre que pisamos un lugar de esos. Y es cuando el imaginario cruza con la realidad.

Un nuevo día comenzaba, el día anterior habíamos planeado un itinerario agitado, quizás improvisado, pero de igual manera detallado. Nuestra primera visita en lista era al mercado de fin de semana de Chatuchak, un gigantesco bazar, incluso más vasto que el afamado Gran Bazaar de Estambul. Y tal como su nombre lo dice, funciona en su totalidad solamente sábado y domingo.

No sé porqué, pero cada vez que he visitado un mercado me acuerdo mucho de la mamá, fantaseo imaginando verla recorrer todos sus rincones con inmensa curiosidad. Regateando hasta el último peso por algún adorno, pañuelo o souvenir. Y es que la Katty, sin darse cuenta representa ese personaje a cabalidad siempre que pisamos un lugar de esos. Y es cuando el imaginario cruza con la realidad.

Chatuchak, es un mercado de más de 8.000 tiendas divididas en 27 secciones. Dicen que abierto en su totalidad, llega a 15.000. Queda ubicado a un costado de la estación Chatuchak park del MRT (metro) y a unos cuantos pasos más del parque Wachirabenchathat. El catálogo de productos que puedes encontrar es inimaginablemente variado. De plantas de todo tipo, a las más creativas prendas de ropa. Souvenirs para todos los gustos y todo implemento que necesites para tener una cocina completamente equipada, entre una infinidad de otras cosas.

Es sin duda un lugar que cualquier ciudad querría tener entre sus dominios. Útil, pintoresco y lleno de sorpresas, ofrece un sinfín de posibilidades, hasta gastronómicas. Por lo que perfectamente puedes gastar un día entero recorriendo sus pasillos, escondrijos y callejuelas, sin necesidad de salir de él.

Tras un par de horas, decidimos emprender camino hacia la segunda parada del día. Esta vez, tocaba volver a lo sagrado de la cultura tailandesa. El destino, Wat Saket, más conocido por los turistas como el Monte Dorado.

Bangkok es de un terreno no muy escarpado, el monte en el que se encuentra Wat Saket, ubicado en la calle Boriphat es de origen artificial. Y es que el rey Rama III, hizo construir un inmenso chedi, que es un especie de pagoda, que dado su peso y dimensiones descomunales, impidió que el terreno aledaño pudieran soportar y se derrumbó. Con el tiempo las ruinas acumularon tierra y vegetación, cuestión que llevó a su sucesor, Rama IV, a edificar uno más pequeño en la cima de esta colina.

Lo impresionante es que, si uno no recurre a internet, difícilmente puede notar al menos a la primera, que el monte es artificial. En cuanto entras al recinto, rodeas una colina repleta de naturaleza, oficinas y puestos de souvenirs. Y se puede distinguir más arriba las típicas edificaciones que se repiten en cada templo.

Una larga escalera de caracol de 318 escalones rojos, con algunas estaciones y miradores, te llevan a la cima. Ahí, te encuentras con un lugar de oración muy pintoresco y acogedor, pero si te cuelas por una pequeña escalera que se encuentra en una de las esquinas puedes llegar aún más arriba. A un mirador con una panorámica impecable de la ciudad, junto a ello te acompaña el famoso chedi construido por Rama IV.

Antes de partir de regreso al hotel, hicimos una escueta parada en Khaosan Road, el sector que hasta ahora podríamos denominar como nuestro favorito. La Katty decidió tomar un masaje tailandés, para aliviar los dos días extenuantes de recorrido, sumado al interminable viaje que tomamos desde Chile.

Por mi lado me dediqué a callejear, me colé en un pequeño templo aledaño del sector con poca presencia turística, recorrí cuanto callejón y rincón encontré. Hasta que después de algo más de una hora me volví a reunir con la Katty, que ahora figuraba de trenzas azules y un semblante notoriamente relajado.

A la vuelta, en camino al hotel nos topamos con un evento al aire libre que nos llamó la atención. Por lo que decidimos acercarnos, e intentamos mezclarnos entre la gente, aunque nuestra pinta de turistas nos delataba, no sabíamos bien a que nos enfrentamos. Y es que a las afueras del centro comercial King of Power tenían apostados un montón de carritos de comida y un colorido escenario.

Estaba claro que harían un show más tarde. En el pasto esperaba la gente sentada en cojines y pequeños asientos mientras comían. No olvidar que este día era 24 de diciembre, y estábamos ad portas de celebrar otra navidad, una muy distinta a la que acostumbramos. Estuvimos disfrutando el atardecer en ese parque junto al mall y luego nos retiramos al hotel a descansar.

Pero el día no podía quedarse así, eran vísperas de Navidad. Para la Katty no existía la opción de quedarnos durmiendo así nada más. Mientras yo dormitaba, ella urdió su plan. Al rato me despertó y sugirió visitar la ribera del río Chao phraya, supuse que habría un paseo junto al río y alguno que otro restaurante. Así fue, pero no sin antes darnos un par de vueltas.

Tomamos un taxi Bolt y resultó algo muy distinto a lo que imaginaba. Llegamos al lobby de un hotel y nos dedicamos a deambular sin éxito por las calles aledañas buscando un bar o restaurante digno para celebrar nuestra Navidad. Y es que incluso nos colamos, sin querer, en una celebración que parecía de universitarios, caminamos durante largo rato, pero sin dar con un paradero decente.

Hasta que finalmente con ayuda de Google, dimos con un conjunto de restaurantes que se encontraban junto al río. Ahí estaba Osca & Blanco, un pub moderno, con toques esforzadamente refinados, sin duda un lugar de moda, o probablemente.

Su ubicación es privilegiada, con tan solo un segundo piso, es suficiente para ofrecerte una grandiosa vista nocturna del río y los gigantescos edificios espléndidamente iluminados del Iconsiam. Ese panorama de fondo y una atención al detalle hicieron de esa noche una digna celebración. Nos devolvimos al hotel tranquilos, por haber cumplido con el objetivo.