30/12/07

Un viaje a La Paz

Sobre el viaje
Antes había realizado algún viaje mas o menos corto con mis padres (a Rivera, Cerro Largo, Minas), con algún club deportivo (a Buenos Aires cuando tenía 12 años) o con mi tío (estuve casi dos meses en Buenos Aires). Pero esta era la primera vez que me iba tan lejos, solo, y volando; y tan alto. Y es que son casi 2400 kilómetros de distancia, 4000 metros de altura sobre el nivel del mar, y un lugar donde tenía muy pocas referencias: apenas los comentarios de una amiga que estuvo seis meses antes y las noticias que relojeaba en internet (y la CNN). Sin embargo, no estuve para nada nervioso. Sí preocupado un poco al llegar y no poder contactarme con mis padres para avisar que estaba todo ok... pero eso lo cuento después.

Del aeropuerto de Carrasco, en Uruguay (el aeropuerto de Carrasco NO está en Montevideo, sino en Canelones, a 9 km de la capital del país) salió el avión en hora un domingo a las 11:00 y llegó sin problemas a Aeroparque; allí pude tomar un remise también sin incovenientes para trasladarme hacia Ezeiza, desde donde habría de salir el avión hacia Santa Cruz, para finalmente hacer la conexión a La Paz. Pero resultó que en Ezeiza el personal de tierra estaba desde hacía algunos días haciendo paros parciales sorpresivos, así que el vuelo estaba retrasado. Cuando estabamos todos prontos y acomodados en el avión, el capitán nos explicó que debido al paro, ibamos a estar unos minutos más a la espera. Fueron 45 minutos más. Fue interesante porque justo a mi lado había una pareja de suecos que casi no entendían nada de español y me preguntaron, en inglés, qué fue lo que había dicho el capitán. Y fue así como me convertí en su intérprete y casi guía hasta La Paz.

Al fin, con una hora de retraso, despegamos hacia Santa Cruz. Un vuelo de casi 4 horas muy aburrido, casi ni hubo turbulencia. Cuando llegamos al aeropuerto internacional Viru Viru de la ciudad de La Paz me causó gracia, por no decir otra cosa, el hecho de tener que salir del aeropuerto desde la sección de llegadas internacionales, caminar por afuera y volver a entrar a la sección de partidas domésticas (por lo menos fue un poco de aire puro); como si fueran dos aeropuertos diferentes. En dicho aeropuerto los suecos que antes mencioné casi terminan quien sabe donde, pues por su falta de entendimiento del idioma español (y algún despiste) enfilaron para el abordaje de un vuelo de TAM hacia Cochabamba... suerte que alguien hizo bien el control de seguridad.

Tuvimos nuevamente un retraso de una hora porque no llegaba la conexión hacia La Paz. Se suponía que yo llegase a las 21:00 a La Paz y ya eran las 22:00 y aún estaba en Santa Cruz. El vuelo hacia La Paz fue el primero que hice de noche. Fue bueno el despegue, ver la ciudad de Santa Cruz toda iluminada; pero no vi nada más. Al llegar a La Paz otro retraso, más breve pero retraso al fin, esta vez al bajar: estaba llegando Lula, el presidente de Brasil, y el aeropuerto estaba en acto protocolar.

Tras pasar el control, para mi sorpresa, me estaban esperando del hotel. Y fue así que tras 20 minutos en taxi, llegué a la comodidad del Hotel Copacabana de la ciudad de La Paz. Más de 2 horas tarde y sin poder avisar a mi casa que estaba todo bien.

Sobre la situación en La Paz

Porqué insisto sobre informar a mi casa que estaba todo ok? Además de que mis padres se ponen nerviosos igual cuando llego tarde a mi casa, porque la situación política y civil en Bolivia no es cómoda. Hay enfrentamientos fuerte entre el gobierno y la oposición, y luchas, algunas violentas por demás, entre grupos que apoyan a uno y otro sector político. Sin embargo, tengo que decir que en ningún momento vi nada fuera de lugar en los aeropuertos ni en la ciudad de La Paz (ni siquiera noté exceso de guardia civil o policía). Pero que los problemas graves existen es verdad, los podía ver en los diferentes canales de la televisión local, cada uno parcializado hacia uno u otro lado.

La ciudad de La Paz
Mis tres días en La Paz estuvieron limitados al barrio de El Prado. El Prado es algo así como un pozo dentro de la ciudad, porque está rodeado por montañas. Se encuentra a unos 3800 metros sobre el nivel del mar, y a unos 20 minutos por vía secundaria del aeropuerto internacional de El Alto (por autopista hay varios peajes). Cuando llegué al hotel, estaba cerrado con una reja y el portero dentro mirando por la ventana. Pensé que el tema de la seguridad era mayor, pero después vi que no. Al menos, no noté nada peor que Montevideo.

El Hotel Copacabana es de tres estrellas, con una atención bastante buena. Mi habitación daba al frente, a la calle 16 de Julio, la principal; la cama era un poco blanda por demás (prefiero los colchones duros) y tal vez fue eso lo que no me dejó dormir 8 horas seguidas. Lo malo del hotel es que no contaba con internet, ni wi-fi en las habitaciones ni tampoco con una sala aunque sea con dos computadoras.... Pregunté por un cibercafé en la zona pero me dijeron que a esa hora está todo cerrado. Me imaginaba como estaban mis padres en casa....

Al día siguiente salí con la notebook abajo del brazo a buscar el lugar donde debía dar el curso. Las calles están absolutamente mal nombradas y sobre todo mal numeradas. Tuve que preguntarle a varios guardias civiles la dirección (por la que pasé no menos de dos veces antes de dar con ella). Para cuando sucedió, ya llovía como en un diluvio. Tuve que comprar un paraguas (chino, como corresponde).

La gente de La Paz no es muy diferente a la de Montevideo. Bastante indiferente en la calle, agolpándose en las esquinas y pechándose en las veredas, debido a la cantidad de personas que hay y el poco espacio libre que dejan los puestos de venta ambulante, que abundan. Lamentablemente, lo que también abunda son los niños y las viejas pidiendo monedas en la calle. Los niños de dos y tres años bailando y cantando o simplemente pidiendo, y las viejas sentadas contra cualquier murito pidiendo con apenas voz. También hay muchos lustrabotas, algunos de ellos que no llegan a los diez años. La verdad, mucha pobreza. Hay muchos más, por lejos, puestos de venta ambulante que comercios establecidos de venta; cualquier rincón, o ni eso, es bueno para colocar una mesita y atiborrarla de cosas para la venta, desde menudeces como caramelos, hasta ropa y reproductores de dvd; y muchos puestos de venta de discos compactos (parecían originales, en su envoltorio de celofán).

Entre los comercios establecidos, me llamó la atención la cantidad de farmacias, casi a razón de una cada cuadra, al menos por la 16 de Julio, y cada dos cuadras en sus paralelas. Como a 15 cuadras del hotel había una especie de feria muy grande, la cual según me explicaron se arma todos los años por estas fechas, y venden de todo, desde adornos navideños y figuras religiosas, pasando por ropa, juguetes, electrodomésticos y bebidas, hasta diferentes comidas fritas o asadas allí mismo. Precisamente esto último hace que caminar por su interior soportando el olor a grasa quemada y frituras sea casi un suplicio, deseando encontrar la salida lo antes posible (y no es fácil).

Durante mis caminatas nocturnas incluida esta feria no noté exceso de policía, así que me quedaré con la duda de si el tema de la inseguridad en La Paz era solo un rumor o fue que yo llegué en una buena época.

Al igual que en la feria que mencioné en la que se cocinaban diferentes cosas, especialmente fritos y asados, quemando grasas, muchos de los boliches (de los que sí hay bastantes, aunque de no muy buen aspecto) también emanaban olores nauseabundos que hacían apurar el paso al pasar por la puerta. Ya me habían recomendado que enfilara derecho para algún Burguer King de los que hay en la vuelta, pero yo estaba dispuesto a probar algo distinto. Y fue así que el primer día terminé en un restaurant que parecía de mayor categoría; al menos la apariencia era impecable y la atención resultó muy buena. Café Ciudad se llama el lugar, y queda a 100 metros en diagonal del hotel Copacabana. Los precios son un poquito superiores al resto, pero comparados con Montevideo serían los de cualquier barsucho de menor categoría. Lo gracioso de la cosa es que sólo después de haber escogido una mesa y una silla y haberme sentado, noté que las paredes estaban cubiertas con cuadros con fotos antiguas de la ciudad de La Paz; justo yo me había acomodado debajo de un cuadro que ilustraba un carro fúnebre de 1958; no soy supersticioso, por eso me resultó gracioso (a modo de adelanto, el último día, la última cena en La Paz, la hice en exactamente el mismo lugar...). Ese primer día decidí cenar algo livianito para ver como asentaba en la altura; terminé engullendo un sándwiche caliente, una hamburguesa al pan con fritas y un balón de cerveza... durante la noche me despertaba cada 45 minutos, no se si por la cama o por la digestión... lo bueno fue que no me dormí en la mañana. El segundo día fue el más tranquilo, dí el curso y volví al hotel a descansar. Luego pregunté por alguna licorería en el hotel y en principio no supieron responderme (habrán pensado tal vez que les estaba preguntando por alguna casa de citas?) La verdad es que quería comprar algo para traer a mi casa (en ese entonces ni me acordé del free-shop ni de las aduanas). De todas maneras, no compré nada.

El tercer día volvió a ser divertido, porque tras culminar el curso, creo que dejando satisfechos a los asistentes, me propuse no dormir porque el avión salía muy temprano en la mañana (debía estar en el aeropuerto a las 06:00). Así que hice al revés: descansé el resto de la tarde y bajé a caminar a eso de las 21:00. Volví a recorrer la feria pero esta vez por la periferia (apenas entré a una parte que parecía estar destinada a la ropa, pero no había nada interesante). Fue así que volví a pasar por la licorería y compré lo que quería traer: un licor de coca. Volví a cenar al Café Ciudad, esta vez una hamburguesa de la casa (completa con pepinos y huevo) y otra cerveza.

Cuando estaba por salir para el aeropuerto, me asaltó una duda que me acompañó todo el viaje: que pasaría con la botella de licor, digo, respecto a los controles en los aeropuertos (tanto por el hecho de ser una botella de vidrio, con una bebida alcohólica, y a base de coca). Debería colocarla en la valija o llevarla en el bolso de mano? Me decidí por lo segudo, para en cualquier caso poder dejarla. Pasó todos los controles y en ningún lado ni siquiera me preguntaron qué era (todos asumieron que era del free-shop, supongo).

En el viaje de vuelta no hubo retrasos, salvo en el aeropuerto de Ezeiza, donde nuevamente estaba de paro el personal de rampa por lo que la descarga de equipajes se demoró casi 45 minutos. Allí sí comenzaba a preocuparme porque eran casi las 17:00 y a las 18:30 salía el avión de Aeroparque hacia Carrasco, y me habían advertido que el tráfico entre aeropuertos podría estar complicado; es más, esa misma mañana varias calles y autopistas habían estado cortadas por diferentes movilizaciones. De todas formas el remisero que me asignó la agencia se las arregló para llegar rápido y sin problemas (pasamos por el costado de una movilización de casi 4 cuadras de personas que no dejaban ni un hueco para un ratón).

El último vuelo fue muy rápido, creo que 30 minutos apenas y volví a Carrasco; solo me separaban 20 minutos de taxi hasta la comodidad de mi cama.

Y volví a la rutina...

Mi experiencia como instructor

Bien. Estuve en La Paz, Bolivia, haciendo las veces de instructor para un curso sobre una determinada tecnología. Para empezar, puedo decir que me fue bien. Me resultó raro que siendo yo tan nervioso, para nada me tembló el pulso en ninguna etapa, desde los viajes (era la primera vez que volaba, y que me iba tan lejos de mi casa solo) hasta el enfrentarme a un grupo de desconocidos.
Yo había preparado el curso sin tener mucha idea de quiénes iban a ser los estudiantes, cuál sería su nivel, y cuáles eran realmente sus intenciones: por un lado podía tratarse de una evaluacuón de diferentes tecnologías para luego optar por una, y en el otro extremo podía tratarse de la necesidad de aprovechar al máximo o lo más rápidamente posible la tecnología que fui a exponer; resultó ser esto último (creo, uno de los peores escenarios para mí). Tuve que leer mucho material, realizar muchas prácticas, hacer diapositivas y estudiar temas a fondo. Tenía que ser un experto. Y por tres días lo fui.
Fueron tres días de 9 horas. La verdad que quedé cansado. Hace mucho tiempo había trabajado como personal de vigilancia y estaba acostumbrado a estar hasta 16 horas consecutivas parado, recorriendo pasillos, pero ahora, tantos años después, y a 4200 metros de altura, las piernas al final del día no querían mucho más que descansar (y así y todo me las arreglé para salir por lo menos dos horas por noche a caminar por la ciudad; un poco más abajo cuento algo de La Paz... pero adelanto que no es un paraíso).
No pienso hablar mucho sobre los estudiantes, porque sinceramente no hay mucho para decir. No entendí mucho la forma en que se organizan, porque algunos de ellos no estaban tan cercanos a la tecnología y sin embargo debían hacerse cargo de ella. Y otros eran informáticos que más o menos la usaban. Sólo uno estaba bien interiorizado en ella, siendo algo así como el responsable del proyecto y el más interesado en que el curso fuera exitoso, solicitando incluso cosas que estaban por fuera del curso.
En resumen, creo que la cosa salió bien. Y me gustó, pero por ahora, no quiero repetir (es que en La Paz, la digestión es lenta).

8/12/07

De nuevo en el camino

Han sido casi dos meses duros, mucho trabajo y estudio. Y todo apunta a que este mes de diciembre será igual, y así continuará enero y ... Pero me tomo unos días de respiro (apenas).
Todo comenzó a principios de octubre cuando en el trabajo me cambiaron de proyecto, me asignaron uno en ... Genexus! lo que yo había visto de esa herramienta había sido no más de tres meses en un curso superficial... y me tiraron con el fardo... eramos dos en el proyecto, ninguno con orientación a Genexus.... el proyecto salió, o está saliendo, pero lo primero que saqué en limpio son dos cosas: primero, Genexus apesta, y segundo, no vuelvo a trabajar en eso... prefiero volver a hacer sistemas para ventas de mercadería porno en php que volver a tocar GXS. Seguro que colaboró para esta decisión el poco tiempo que tuvimos para aprender y desarrollar la aplicación (el mismo, es decir, aprendimos y desarrollamos en paralelo), con sesiones de trabajo de hasta 15 horas, 7 días a la semana por 3 semanas... Y cuando más o menos parecía que el proyecto venía encarado, aparecieron los que siempre aparecen: los cambios... y vuelta a revisar todo... para esta parte yo ya pude apartarme un poco pero igual estaba clavado en eso. Por si fuera poco, al mismo tiempo estaba haciendo dos materias en facultad, ambas con entregas obligatorias... en la asignatura Introducción a los Compiladores tengo que agradecer enormemente a la otra persona con la que hice grupo porque se puso los guantes y sacó gran parte, la mayor parte, de la entrega ella sola (y lo peor es que no es la primera vez, gracias!!!), mientras que en la segunda, Métodos Numéricos, de cuatro que formamos el grupo prácticamente sólo dos lo sacamos, y nuevamente, yo en segundo lugar... pero en esta creo que aporté lo suficiente.

Todo lo anterior fue para justificar el no haber aportado nada durante... casi dos meses! Bueno, espero que ahora todo vuelva a la normalidad (espero que estos dos últimos meses no sean la normalidad).

Mi experiencia con genexus
Como sea tengo que sacarme este odio que acumulé durante mes y medio contra Genexus.... cuando comencé el proyecto no estaba en 0, ya había visto algo en un curso superficial... lo suficiente para saber que no era lo que yo quería, sino mas bien lo opuesto. Por eso, cuando me preguntaron si estaba dispuesto a encararlo, quise decir que no... pero claro, no era una pregunta, y por lo tanto no esperaban respuesta. Y así empezó. Al principio, leyendo manuales, buscando en internet y probando (bastante de tire y pegue); también un compañero ya había pasado por el período de aprendizaje (con curso oficial incluido) y aunque estaba hasta las manos con otro proyecto, le rompimos bastante la paciencia preguntándole cosas. Y así continuó. Con el correr de los días fuí aprendiendo a manejar al bicho, no siempre se dejaba, pero aprendí también a dominarlo. Pero dados los tiempos que manejábamos prácticamente fuimos haciendo las pruebas ("a ver si esto funciona...") sobre el sistema real, y obviamente, cuando llegamos a algo que andaba, así quedaba y a otra cosa... con el tiempo fuimos aprendiendo más hasta poder reconocer que cosas que hicimos al principio (y que forman parte del sistema actual) se podrían o deberían hacer de otra manera... pero ya no hay tiempo, ni voluntad, para cambiarlo. Seguro que el sistema resultante no es algo que me enorgullezca, pero como diría un gran filósofo contemporáneo que las cosas de la vida lo llevaron a relatar partidos de fútbol por la radio, "es lo que hay, valors!".

Fueron muchas horas, muchos días, varias semanas... tres semanas que trabajamos un promedio de 12 horas los 7 días... eso da: 12 X 7= 84 horas semanales!, cerca de 300 horas mensuales! se acercó bastante a febrero pasado cuando aún estaba en el otro trabajo y llegué a 315 horas mensuales... (lo normal sería 9 horas diarias, 5 días a la semana, 4 semanas al mes, 9 X 5 X 4 = 180 horas...). Y encima en esta oportunidad no me pagan extras! Bueno, ya lo descontaré en la licencia (supongo).

Volviendo a Genexus. Para comenzar, me parece que es lo más antinatural en cuanto a programación se refiere. Y yo que pensaba que era la programación lógica. Para comenzar, el tema de los conceptos, las transacciones y las tablas de la base de datos.... a quién se le puede ocurrir decir que si dos campos de diferentes tablas se llaman igual entonces deben ser exactamente el mismo (y por lo tanto es join forzado; de hecho, es la única forma de hacer join... llamar a dos campos en tabla diferentes con el mismo nombre; gran lío cuando precisamos en una misma tabla hacer referencia a dos entradas diferentes en otra tabla, por ejemplo país de residencia y país de nacimiento; arranquemos con los subtipos). Siguiendo con el tema de la antinaturalidad: la forma de recorrer una tabla es con FOR EACH!!?? Dentro de un foreach asigno a un campo de una tabla un valor y ya lo sobrescribí?

Obviamente, hay que tratar el tema web. Hoy en día la mayoría de los proyectos que se hacen son web y el nuestro no escapó a eso. Ya sé que trabajar en web no es sencillo para ningún programador por las incompatibilidades de los navegadores... y de cierta manera Genexus evita que hayan problemas de ese tipo: impide todo, o casi. Ejecutar código javascript a gusto? No, imposible (o casi).

Y otras cosas que son casi naturales hay que hacerlas utilizando pases mágicos.... por ejemplo, admito que generar reportes pdf es bastante sencillo porque son tratados como un formulario más, muy poco diferente a uno web, salvo por un detalle: no se pueden dibujar tablas! Nosotros tuvimos que diagramar una tabla a puros trazos horizontales y verticales!!! Pero la cosa no se queda ahí... la verdad que resulta muy natural, además de ser lo que precisábamos, que al final del proceso, cuando se apretara determinado botón para confirmar, se abriera un formulario pdf mostrando un resúmen de la información para imprimir... en una nueva ventana.... vaya sorpresa, Genexus no lo permite, se debe utilizar la misma ventana.... a menos que... si, hay un workaround, pero me resultó demasiado bizarro: incluir en el formulario web una etiqueta sin texto y del mismo color de fondo que el formulario, y marcarla como que su formato es html... bien, al hacer click sobre el botón, no se invoca al formulario... simplemente se asigna a la etiqueta anterior el código javascript que abre una nueva ventana utilizando un link al formulario, y luego se recarga la página; al recargarse la página, el navegador procesa la etiqueta, reconoce que tiene código javascript y lo ejecuta... y se abre el pdf... simple? Y que pasa si yo quiero validar el texto ingresado por un usuario en un cuadro de texto inmediatamente después que dicho campo perdió el foco (el famoso onblur de javascript)? bueno, es imposible (y no hay workaround): la validación se debe hacer necesariamente a página completa... Bueno, no es tan malo? Y qué si yo tengo dos combos, uno de los cuales muestra opciones que dependen de lo que esté seleccionado en el otro (por ejemplo, en uno tengo departamentos y en el otro ciudades del departamento seleccionado), como hago para que al cambiar el valor seleccionado en uno automáticamente cambie el valor del otro (algo que en javascript puede ser tanto como 5 línas)? bueno, nada, guardamos en la sesión el valor seleccionado, recargamos la página, recuperamos lo que está en sesión y cargamos los combos.... seguro que es muy fácil (y además recarga toda la página cada vez que se cambia la selección en un combo de este tipo).

Otro punto muy negativo es que tiene muchos errores para el supuesto grado de evolución que tiene, estando en la versión 9 (el deployer se me colgaba 2 de cada 3 veces! y un par de veces me bloqueó la base de conocimiento...; tres veces Genexus se me cerró de golpe y sin avisar). Pero no queda allí. La documentación existente es, por decirlo de una forma sencilla, horrible. Tiene cierto aire a MSDN (Microsoft Developper Network) sólo que a diferencia de ésta, resulta insuficiente la mayoría de los casos. Peor aún, la ayuda que acompaña la distribución (el formato propio de MS Windows) está incompleto, y encontré muchos links que no funcionan.... al final terminé usando la ayuda online (que es la misma pero en la cual funcionan todos los links). Por supuesto, para desarrollar decentemente en Genexus, digo, en un proyecto en serio, es menester contratar soporte telefónico a la empresa que lo fabrica y vende (Artech). Sin dicho soporte hay muchas cosas que sólo se sacan adivinando; y con dicho soporte, también. La mayoría de las veces se limitan a decir "Eso debería andar", "No sé... dejame ver... si eso debería funcionar".... "mirá, hacé un xpz y mandalo al repositorio que alguien lo va a mirar y si encuentra el problema te avisamos". Fueron tan pocas las veces que obtuve la respuesta de como hacer algo.... Y para terminar, está la página GxTechnical, un intento de repositorio de información sobre Genexus... es verdad que se encuentran algunas cosas útiles (pocas), pero la prsentación es patética. Por ejemplo, usando firefox, algunas secciones sólo se ven con 5 centímetros de alto, con mucho scroll (y el resto de la página en blanco).

Bueno, creo que ya hice catarsis, aunque en realidad el proyecto aún no ha terminado y me seguiré viendo con Genexus. Espero que por poco tiempo más.

Nueva etapa, destino: La Paz
Si no pasa nada, dentro de una semana comienzo una nueva etapa a nivel profesional: dejo por unos días el desarrollo de software y paso a capacitación: soy instructor! Es un curso no muy complicado pero tampoco fácil. Y en La Paz, Bolivia. Esto es, si no pasa nada, digo, por la situación que vive el país del altiplano por estos días. La verdad es que es un reto. Admito que me gusta pararme frente a un montón de gente y dar alguna charla o presentación, pero no por eso estoy menos nervioso. Y además, en esta oportunidad se suma el hecho de salir del país, el viaje en avión (volar no me asusta, me preocupa llegar al suelo demasiado rápido) y el hecho de tener que preparar el curso yo mismo recolectando material de todas partes... en fin, como decía, todo un reto. Ya veremos que pasa. Dentro de dos semanas todo habrá terminado... o recién habrá comenzado?