lunes 26 de mayo de 2008

Resumen norteño

«En el trabajo les dije que vine a clase contigo,
pero no me creyeron, mucho menos cuando
les comenté que eres mi vecino».

Atardecer del sábado 24 de mayo de 2008. En las cercanías de Torreón, a bordo de un autobús con destino a Zacatecas, donde pernoctaré antes de continuar el viaje de regreso Morelia. Después de dos completas e intensas semanas rescatando a Delphi en mi tierra natal.

Chihuahua está esplendorosa. Ya me hacía falta respirar ese aire limpio, apreciar los edificios del centro desde el barrio donde crecí, caminar por sus nuevas y armoniosas plazas dignas de cualquier ciudad europea, y, por supuesto, ver a mi familia.

Las calles tan limpias y ordenadas, aceras que invitan a andar cómodo y sin presiones, tanto al que camina como al que rueda sobre amables rampas. La urbanidad y el urbanismo plasmados en cada esquina y muy claros en la mente de quienes administran y ejecutan los servicios públicos. La gente, mi gente, feliz de vivir en esa ciudad de la Norteamérica mexicana, trabajando con ánimo cuando se debe y celebrando con alegría responsable cuando se puede. Hace más de cien años un pueblo ya viejo que gozaba de mucha energía y valor acordó instalar el bienestar en esa región, y muchos años después, ante la perversión de dicho establecimiento, una corriente política de izquierda no reaccionaria dejó firmemente asentada la cultura de la honestidad y la justicia social en sus habitantes. Fue así que se consolidó el espíritu chihuahuense.

Pero ni esto salva a mi ciudad maravilla de la poca inteligente guerra que el gobierno libra en el país entero en contra del tráfico ilegal de drogas. Hasta en Chihuahua se han presentado sanguinarias ejecuciones en los últimos meses.

El autobús acaba de pasar encima del río Nazas (el arenal donde alguna vez estuvo), o sea que hemos salido de Durango y entrado a Coahuila.

Llegué a Chihuahua la madrugada del 10 de mayo, famoso Día de las Madres en México. A la mía le había prometido desde agosto (cuando programaba el sistema de puntos de restauración CSP de Magia Data) que iría a visitarla pronto. No me fue posible entonces, ni tampoco en las fiestas de fin de año. Pero no dejaría pasar esta primavera sin venir a ver a mis ancianos padres y casados hermanos. Trabajé en casa ese y los siguientes días, improvisando un modesto estudio en el cuarto de los tiliches que a la vez me sirvió de dormitorio.

El martes 13 comí con Luis, quien fue mi pupilo allá por el año 2000, y a quien no veía desde hace casi cuatro años. Recuerdo el día que con solo 17 años de edad acudió a mi tétrica oficina de la calle Segunda para solicitar trabajo de programador y muchas de las buenas horas que pasé enseñándole a desarrollar con Delphi. Hoy trabaja con sistemas ERP en una de las compañías cementeras más grandes del mundo. El año pasado lo enviaron a Bolivia, donde conoció en persona al buen Onti, conocido forista que también defiende a Delphi a capa y espada en su país.

El miércoles me llamaron de una casa de software localizada en Ciudad de México. Se encuentran en un punto crucial de su vida como empresa fabricante de paquetería comercial. Tienen millones de líneas de código que han escrito en Delphi desde hace años, código con el cual han construido muy útiles aplicaciones algo conocidas en México. La finalidad es ayudarles en su transición de Paradox a cliente-servidor, algo que desde hace un lustro viene dándose con todos los desarrolladores Delphi que empezamos usando bases de datos de escritorio. Me hicieron hablar en conferencia telefónica ante su equipo de desarrolladores a quienes comenté algunas de las vicisitudes y oportunidades de este objetivo. Al cabo de unos días me comunicaron que aceptaban contratar los servicios de Sistemas GH. Realmente me siento feliz por este importante reto. El 4 de junio iniciaremos con un breve curso de introducción a dbExpress con Firebird, donde mostraré algunas de las ventajas de Magia Data y del resto de nuestro framework. Al parecer ya están convencidos de que DBX es el conducto de bases de datos más certero dentro de Delphi, así que espero no sea difícil convencerlos de usar mis componentes DBX extendidos también. Adicionalmente, decidieron adquirir el viejo pero todavía útil curso “empaquetado” de Firebird con IBX.

Al día siguiente asesoré a Fernando en el uso del componente gratuito para huellas digitales GH FingReader y de Magia Data, suite que compró ese mismo día. Él colaboró conmigo en Morelia hace poco más de dos años durante una breve estancia de tres meses. Le tocó entonces conocer los inicios de estos componentes extendidos, cuando un servidor comenzaba a conocer dbExpress y el famoso Client Data Set del que todo mundo hablaba ya. Un día descubrí que un componente TClientDataSet nativo no puede conectarse a un TDataSetProvider del mismo proyecto si no se encuentran los dos en el mismo módulo de datos. La limitación se justifica con el razonamiento de que este binomio de componentes debe emplearse en un esquema multicapa, o en un proyecto tan sencillo que no amerite emplear más de un módulo de datos. Pero entonces nosotros teníamos la idea de que debería existir un justo medio (como para todo en la vida) entre una típica aplicación de dos capas (interfaz cliente--servidor de base de datos) y una de tres (interfaz cliente--servidor de aplicaciones--servidor de base de datos). Queríamos establecer un esquema que nos permitiera desarrollar aplicaciones cliente-servidor sin complicaciones multicapa que en las primeras versiones de un sistema suelen ser innecesarias, pero de tal manera que la estructura Delphi de tales proyectos estuviese preparada para ser partida por la mitad en el futuro, cual dos hojas de impresión de formato continuo.

A este esquema le llamamos 2.5 capas; aplicaciones ahorrativas como cualquiera de dos capas, pero preparadas para pasarse a tres cuando el proyecto en cuestión lo amerite. Esto volvía necesario colocar los conjuntos de datos clientes en un módulo de datos y sus respectivos proveedores en otro para poder marcar la línea de corte entre las dos hojas. Por ello agregué a TMagiaClientDataSet la propiedad Provider, con la cual podemos asociar el conjunto de datos con cualquier TDataSetProvider del proyecto, independientemente del módulo de datos donde se localice éste. Resultó ser una buena alternativa a la propiedad ProviderName. Aún recuerdo la admiración del entonces novato Fer, cuando le mostré el funcionamiento de esa nueva característica. Eran grandes tiempos, yo acababa de conocer a Janett, el changarro tenía ingresos estables, no le debíamos dinero a nadie y no estábamos atrasados en ningún proyecto. Hoy es muy diferente.

El viernes 16, una amiga de Saltillo me pasó el dato de que una empresa mediana pero bastante dinámica (por lo que pude inferir después) necesitada de servicios de programación en Delphi. Después de varias llamadas y correos, la mañana de hoy se comunicaron a Morelia para solicitar una entrevista presencial en la capital de Coahuila. Me hubiera gustado disponer de algo más de tiempo para tomar el autobús a Saltillo y no a Zacatecas, pero dado que no quiero descuidar compromisos adquiridos anteriormente, tal visita a Saltillo tendrá que esperar unas semanas. En el peor de los casos, si nos vemos sobrepasados en trabajo buscaré a alguien de confianza y comprobado nivel de servicio que le interese atender este caso. Esto me deja pensando en que nos caería de maravilla, en esta época de nuestra historia como empresa, un inversionista inteligente y honrado que quiera apoyarnos ahora que estamos teniendo francas y buenas oportunidades de negocios. Estamos dejando correr mucho agua, de la que ciertamente no podemos beber, pero sé que podremos beberla cuando contemos con un poco más de recursos.

El lunes siguiente vi a Mario en su oficina del Colegio de Bachilleres, un antiguo cliente que hace tiempo adquirió el curso empaquetado de POO, pero a quien todavía no tenía el gusto de conocer en persona. Se comprometió a promover nuestros cursos y talleres ante los directivos de la institución donde trabaja, y personalmente adquirió esta vez el viejo curso de Firebird. Al principio me observaba con un semblante tenso, pero le dije «¡Hey viejo! No me veas como a un extraño, soy tan chihuahuense como tú, sólo que ya llevo varios años viviendo fuera». Por la ventana de su oficina podía apreciarse la bella claridad del cielo, distinguiéndose sin problemas limpios edificios y jardines lejanos. Vistas que hacen posible estar contento.

Por la tarde de ese día le llamé a Moisés para preguntarle dónde podía verlo para la clase de programación que me solicitó. Como Fernando, trabaja en el gobierno de Chihuahua, a dos edificios de distancia. Es un joven colega Delphi que tengo en mis contactos del mensajero desde hace varios años pero que, al igual que Mario, no había tratado hasta ese día presencialmente. Para sorpresa de ambos, resultó que vive a doscientos metros de la casa de mis padres (¡vaya que el mundo es pequeño!). Entre otras cosas, viendo su código, le hice hincapié en que no debe emplear constantes literales (1, 2, 3...) para indicar opciones de programa, le expliqué la ventaja de usar en su lugar tipos enumerados (opAlta, opBaja, opCambio...).

El miércoles 21 y el jueves 22 la familia les hizo un pequeño festejo a mi hermano menor y papá por sus respectivos cumpleaños. La verdad que ya extrañaba comer en casa junto a mis familiares y compartir los últimos sucesos de nuestras historias de vida. ¡Que bueno es convivir con ellos! Comiendo pollo asado al carbón, ahí, en la misma casa de adobe y piedra donde jugábamos los hijos cuando éramos pequeños, atizando la sobremesa con cada graciosa ocurrencia del ingenio fraternal, mientras los sobrinos desarrollan un armonioso caos en otra habitación.

Ese jueves por la tarde fue Moisés a casa para la segunda clase. Esta vez vimos algo de POO. Observando el código fuente de la VCL, repasamos las bases de herencia, encapsulamiento y polimorfismo, además de explicar cómo funcionan los métodos virtuales. Creamos una clase de ejemplo TXButton, derivada de TButton, y aproveché para enseñarle el viejo pero útil truco del molde de acceso, que nos sirve para hacer referencia a elementos protegidos de una clase, a los cuales el compilador no deja acceder libremente. Al despedirnos compartió conmigo estas insólitas palabras: «En el trabajo les dije que vine a clase contigo, pero no me creyeron, mucho menos cuando les comenté que eres mi vecino».

El viernes 23 tuve una reunión más en el mismo edificio donde trabaja Fernando, pero tres pisos más arriba. Vi a un activo funcionario (esas dos palabras sí pueden ir juntas) que ha desarrollado en Delphi mucho del buen software que tiene el gobierno estatal, llamándome la atención un sistema GIS con el que pueden saber todo acerca de cualquier edificio o terreno de la ciudad, observando su posición desde una vista satelital que remarca y titula las calles aledañas (aclarando que se ve mucho mejor que el mostrado por Wikipedia). Además desarrolló un software catastral que ya no sólo se utiliza en la administración pública de Chihuahua, sino que además ha “exportado” a otras provincias por su efectividad intrínseca. Quiere que Sistemas GH le de seguimiento y mejora a ese sistema en ciertos municipios del país. Y se mostró interesado en que yo vuelva pronto a Chihuahua para dar cursos y consultorías Delphi a personal y áreas de su influencia.

Y entre todo esto, conocer a Ilse y convivir con ella en varias ocasiones, fue una de las mejores y más intensas cosas que pudo pasarme en este viaje.

Un rico burrito de lomo trae buena suerte.

Al González. :)

5 comentarios:

Andrés dijo...

Es un placer leerte, Al. Y me sorprende la generosidad de detalles con que relatas tus vivencias.

Vuelves a Morelia, de donde saliste para recargar pilas y adonde vuelves con nuevos proyectos, amigos y horizontes. Das la impresión de estar disfrutando más de tu actividad, de hacer lo que realmente te gusta, en esa faceta tuya de "pregonero" e instructor de las bondades del binomio Delphi / Firebird, aderezadas con tus Magias. Definitivamente tu motor es, junto a la creatividad, el anhelo por extender un modelo de trabajo, de encarar proyectos, de buscar soluciones entre los programadores de tu entorno, siempre con un toque colaborativo, creando lazos con otros profesionales. Esto me recuerda el lema de un conocido miembro de los foros: Humanizando la tecnología :-)).

Últimamente en plan nómada, como un moderno Don Quijote (¿o debo decir Don Quixote?), recorres tu tierra "desfaciendo entuertos" de programación y creando escuela. De paso, ¿buscando a Dulcinea? :--))) Original y único.

Espero que encuentres ese inversor que necesitas, seguro que no soy el único a quien le gustaría poder disponer de una buena cantidad de dinero para invertir en tu empresa. Sólo puedo mandarte vibraciones desde una ciudad europea, no tan limpia ni con un urbanismo tan elegante como el de tu Chihuahua natal, de esto estoy seguro.

Saludos

casimiro dijo...

Me alegro de que vayan solucionándose las cosas,,. y lo que me ha sorprendido es lo inquieto que eres, no paras un instante, siempre de un lado para otro :)

jachguate dijo...

Excelente relato Al... es bueno saber que hay un futuro promisorio, pero es mejor todavía comenzar a vivirlo.. :)

Anónimo dijo...

Tienes que escribirnos mas relatos de estos Al, porque ya te han puesto el dedo:

http://cgarcia.blogspot.com/2008/05/delphi-latino-blogroll.html

Abrazos,

Arturo

Delphius dijo...

Al, me da mucho leer estas maravillosas palabras. Me alegra un montón que las cosas estén mejorando. Sigue asi amigo, que el camino te conducirá por buenos y dorados momentos.

Publicar un comentario en la entrada

Te invito a expresar tu opinión abierta y libremente (no es necesario que estés registrado). Vale el anonimato mientras no lo uses como trinchera.