Anotaciones de diversos temas relacionados con código abierto, metodologías de desarrollo y programación con Ruby on Rails
jueves, abril 10, 2008
extraño
extraño las tardes contigo. perderme en tu sonrisa. que me duela el alma por no tenerte y ser inmensamente feliz por que eres.
extraño mirarte sin que te des cuenta. mirarte detrás del cristal y embelesarme con tus gestos.
extraño tanto de ti. más de lo que te imaginas.
y te sigo extrañando....
Finito.
jueves, febrero 21, 2008
CONSOL 2008
Como el año anterior envié mi propuesta para exponer y con mucha alegría leí el correo donde me notificaron que fue aceptada. Eso me puso en un real aprieto, a partir del cambio laboral me ha quedado muy poco tiempo para dedicar a estas actividades. Pues aún así no di marcha atrás y estuve pendiente de de la fecha del evento.
El tema para la presentación fue "Rails: Desarrollo Ágil para Web" dado el amorío que traigo con este framework. Estuve leyendo varias referencias para ir organizando la presentación pero la verdad es que casi ninguna me dejo con algo que compartir así que realmente me basé en lo que he aprendido en los últimos meses.
Llegar a la sede fue menos complicado de lo que esperé y después de investigar donde se encontraba la oficina de registro, me dirigí apreciando los edificios de la uni. La verdad es que me parecieron excelentes instalaciones. A punto de llegar a mi destino me encontré con Alejandro Juárez, un excelente desarrollador y conocedor de metodologías ágiles a quien conocí en uno de esos viernes de Cova.
Resulta que Alex también envió su propuesta y fue aceptada. Y además, su presentación era a continuación de la mía. Después de saludar y conversar un poco, finalmente llegué al registro y me dieron mi gafete. Acompañado de Alex buscamos el auditorio y en lo que terminaba el ponente anterior charlamos un rato.
Finalmente llegó la hora, acomodé mi equipo y con un auditorio al 75% de ocupación inicié la presentación. Al principio, como es costumbre, me sentí bastante tenso pero al paso del tiempo me fui relajando y empecé a disfrutar el estar al frente. De hecho, mi temor inicial era que me fuera corriendo en las diapositivas y me acabara la presentación en 15 mins. Cuando me senté junto a la lap para hacer los demos casi llevaba 50 mins. :O
En el tiempo que me quedó hice una breve demo en línea de comandos y reservé cinco minutos para preguntas. No fueron muchas pero bueno, la próxima vez le voy hacer como Sandino, voy a llevar mi lista de preguntas.
Terminando la presentación se me acercó una persona que resultó ser nada menos que Carlos Ortega, otro "railero" que incluso contacté para ofrecerle chamba :D.
Cuando me despedí del auditorio, un voluntario me entregó una bolsa con "souvenirs" y un boleto para ir al comedor así que sin más nos fuimos a la gorra. :D
En una carpa, se encontraba instalado el comedor y ahí me encontré con un buen de caras conocidas: Zodman, Compermisos, Bea y otros ponentes.
Ahi conocí en vivo y en directo a Vendetta. ¡shio!. Y pues a lo que fuimos: comer, charlar y comentar sobre varios temas.
La exposición de Alex empezó con algunos problemillas proyectando la imagen... pero al final lo resolvieron. Realmente me sentí bien novato al ver todo el trabajo de Alex y su equipo.
Otro tema importante de este CONSOL es el 3er aniversario de la Revista SL en la cual he tenido la oportunidad de colaborar echando a perder los artículos :P
Finito.
jueves, febrero 14, 2008
Amo, entonces vivo
Te amaré aunque tenga final
Te amaré, te amaré en lo profundo
Te amaré como tengo que amar.
Te amaré, te amaré como pueda
Te amaré aunque no sea la paz
Te amaré, te amaré lo que queda
Te amaré cuando acabe de amar
Te amaré, te amaré si estoy muerto
Te amaré al día siguiente además
Te amaré, Te amaré como siento
Te amaré con adiós, con jamás.
Te amaré, Te amaré junto al viento
Te amaré como único sé
Te amaré hasta el fin de los tiempos
Te amaré y después te amaré.
Amo a la mujer y a una mujer. Amo por que estoy vivo y vivo por que estoy amando... aunque sea encerrado entre estas cuatro paredes blancas y esta pantalla. No siempre será así. Persistid es la orden.
Finito.
martes, enero 08, 2008
Vivo
Pero hoy le he dado batalla. Y aún perdiendo me siento más vivo que antes.
Finito.
lunes, diciembre 31, 2007
Terminando el 2007
Fue un año particular, no fue un año más. Lo único constante fue el cambio.
Ahora vamos a lo que sigue. El 2008 se presenta en un rato y debemos recibirlo con toda la esperanza en las manos y en el corazón.
Ahora tengo que agradecer a todos los lectores de este blog y desear que se enfrenten exitosamente a todos los retos que se presenten el próximo año.
A mis amigos y seres queridos, el anhelo de seguir contando con su cariño y aprecio por éste y muchos años más, de igual manera mi afecto y amistad incondicional para ustedes.
Por este año, es todo en este blog.
Finito.
lunes, diciembre 24, 2007
Instalando Ruby on Rails en Mac OS X
$ sudo port install ruby$ sudo port install rb-rubygems$ sudo gem update --system$ sudo gem install sqlite3-ruby$ sudo gem install rails --include-dependencies$ sudo gem install rails --version "= 1.2.6" --include-dependenciesviernes, diciembre 21, 2007
A mis amigos
Este año ha sido un cúmulo de cambios en muchos aspectos: en mí, en mi vida, mis relaciones, mi trabajo. Todo esto ha hecho que me repliegue de una manera que a varios les ha parecido incluso agresiva. No hay tal agresión. Simplemente decidí hacer estos cambios de esta manera.
El último gran cambio, el trabajo, se presentó como un reto: cumplir con el compromiso en la segunda semana de diciembre. El compromiso en si mismo fue un reto y la transición laboral fue adicional. Incluso el cambio de herramientas se convirtió en un duelo de voluntades, la ignorancia e inexperiencia contra mi deseo de ganar. Fue difícil. Tampoco fue un drama pero tuve, al igual que las decisiones anteriores, que enfrentarme contra muchos de mis defectos. No pude vencer más que los necesariamente indispensables.
Gran parte de la fortaleza surgió del amor a mis hijos y a mí mismo. Otra parte de la necesidad que tengo de compartir, pero primero tengo que construir algo que compartir. Y hasta el último, mi propio orgullo.
Quiero construir un algo que pueda compartir y eso es lo que busco de aquí en adelante. Y para tenerlo he de trabajar mucho y de manera inteligente. Habrá un momento en que me detenga y estire las manos para ofrecer ese algo y entre todas las personas del mundo se los ofreceré a ustedes mis amigos.
No los he olvidado, no los quiero dejar atrás. Simplemente quiero tener algo que compartir.
Felices fiestas a todos.
Finito.
sábado, diciembre 08, 2007
Rails 2.0: El NexGen del desarrollo web
Para actualizar tu sistema recuerda que lo único que se requiere es ejecutar la siguiente instrucción desde una ventana de línea de comando:
C:\> gem update rails -y
Esta instrucción descargará e instalará todos los componentes necesarios. Un punto importante para tener en cuenta es que pueden existir diferentes versiones de gem instaladas al mismo tiempo, por ejemplo en mi equipo al ejecutar
C:\> gem list --local
presenta todos las gem's instaladas con el número de versión, para el caso de Rails aparece
rails (2.0.1, 1.2.6, 1.2.5)
Web-application framework with template engine, control-flow layer,
and ORM.
Cada vez que se genera un nuevo proyecto Rails, en el archivo config/environment.rb se puede encontrar la versión específica de Rails y cambiarla.
Ahora, a probar las nuevas características de esta versión.
Finito.
Revista SL 9
Finito.
domingo, diciembre 02, 2007
Instalando Rails + sqlite3 en Windows XP
Pues bien, este equipo con todo y sus limitaciones alguna vez me sirvió para trabajar y ahora se me ocurrió actualizarlo al ambiente de desarrollo que utilizo. Pero para tal efecto se me ocurrió utilizar sqlite3 en lugar de cualquier otro RDBMS. Los pasos fueron los siguientes:
- Descargar e instalar Ruby.
- Descargar, extraer e instalar RubyGems.
C:\ruby-gem-0.95> ruby setup.rb- Actualizar las gem's instaladas.
C:\> gem update- Descargar sqlite3, extraerlo en un directorio y agregar ese directorio al PATH.
- Instalar la gem sqlite3-ruby
C:\> gem install sqlite3-ruby- Instalar Rails
C:\> gem install rails --include-dependencies- Presto!
C:\> rails --database=sqlite3 demo
miércoles, noviembre 28, 2007
Primer Twitteo
Me costó un buen de trabajo encontrarlo pero aquí está:

Ahora, le envió este meme a: @xhindi, @arturogarrido, @sonny_taz, @atzimba y @ebarrera y obviamente a todo aquel que quiera tomarlo.
Finito.
martes, noviembre 27, 2007
El Changuito cumple diez años
lunes, noviembre 19, 2007
Configuración de Rails y SQL Server
Un ambiente que se va a presentar muy comunmente es Windows y SQL Server.
Entonces he aquí la receta sencilla y probada para soportar SQL Server dentro de Rails.
Primero, habrá que descargarse la gem ruby-dbi desde http://rubyforge.org/projects/ruby-dbi . ruby-dbi es un mecanismo de acceso a datos inspirado en Perl::DBI. En la gem viene incluido el soporte a varias bases de datos y durante el proceso de instalación se selecciona cuales se van a soportar.
La descarga es un archivo .tar el cual se expande en un directorio desde el cual ejecutamos las siguientes instrucciones:
# primero configuramos el ambiente para usar ActiveX Data Objects (depende de win32ole)
c:\>ruby setup.rb config --with=dbi,dbd_ado
# la llamada de siempre
c:\>ruby setup.rb setup
# finalmente la instalación
c:\>ruby setup.rb install
Con esto ya tenemos la capacidad de acceder a SQL Server desde Ruby. Ahora falta configurar SQL Server para que permita conexiones mediante usuario/contraseña. Para esto configuramos el modo de autenticación "mixed" dentro de las propiedades de seguridad del servidor.
A continuación se crean el login de SQL Server y la base de datos asociando el login como dbo de la base recién creada y se crea el proyecto rails como de costumbre.
c:\>rails proyecto
Después se actualizan los datos del archivo config/database.yml
development:
adapter: sqlserver
database: database_development
username: user
password: password
host: .\SQLEXPRESS
Esta configuración funciona con las versiones 2000 y 2005 de SQL Server. La diferencia que he encontrado es el manejo de valores nulos en columnas de tipo integer. En SQL Server 2005 sustituye los valores nulos con ceros mientras que en la versión 2000 funciona correctamente.
Finito.
MVC significa "Más-Visto-que-Conocido"
Una vez más Microsoft llega tarde y para evitar poner su cara de perdedor monta la fanfarria para compartir su última gran innovación.
MVC, el patrón, es una de las cosas más antiguas en la ingeniería de software. Fue desarrollado circa 1980 en los (realmente innovadores) laboratorios Xerox buscando una manera de separar los diferentes "concerns" al momento de construir una aplicación. Hasta ahí lo dejaron entonces.
Posteriormente, Sun Microsystems al lanzar su parafernalia conocida como J2EE buscó algo en que apoyarse para facilitar el desarrollo de aplicaciones web (el infame modelo 2), cosa que encontró en MVC dejando atrás incluso tecnologías que ellos mismos habían desarrollado.
Fue tan buena la aceptación del uso de este concepto que en el mundo del código libre aparecieron varias implementaciones del patrón MVC más puristas o independientes a Sun. Así encontramos Struts, Spring, Tapestry, WebWork y muchos otros más que por diversas cuestiones pasaron a la posteridad.
Al ser un patrón de diseño, no depende de un lenguaje o artefacto específico, sino que representa una solución genérica para aplicarse en las más diversas situaciones.
El corazón de MVC es la división de una aplicación delimitando específicamente sus responsabilidades, así tenemos:
- Modelo - Se encarga de la representación específica de la información perteneciente al dominio del problema. En una implementación específica se responsabiliza del acceso y recuperación de datos.
- Controlador - Es el cerebro maestro. El que se las sabe todas, todas. Los procesos de la aplicación se encuentran concentrados en un conjunto de controladores que son el corazón y el cerebro de la aplicación.
- Vista - La parte coqueta. La parte visual. La interface de usuario que se encarga únicamente de presentar la información que le entrega el controlador. Nunca se entera (al menos no al detalle) de la existencia de los modelos.
El beneficio final de usar este patrón es la simplificación en la distribución de responsabilidades, al aislar las acciones que corresponden a cada clase participante del sistema. En pocas palabras en una excelente idea.
Es por eso que desde hace más de veinte años que alguien tuvo la ocurrencia de inventarlo (no sé realmente si valga la expresión "inventar") se utiliza obligadamente en la construcción de aplicaciones web, excepto claro, en aquellos casos en los que la premisa es No-inventado-aquí.
Hace cerca de ocho años cuando Microsoft lanzó al mercado la tecnología .NET presentó su alternativa para el desarrollo web: los formularios Web. Una idea interesante, complicada de aprender de inicio que trajo a las herramientas de Microsoft algo del dinamismo indispensable para seguir en la contienda.
Aunque algunas personas han cuestionado la cuota de mercado que ha ganado .NET, un excelente indicador son las comunidades de software libre que se basan en los componentes de .NET para arrancar, construir y compartir alternativas a los productos propietarios de Microsoft. Esta corriente hasta hace un par de años no tenía un nombre aunque si varios protagonistas. Actualmente se le conoce como ALT.NET.
Dentro de estos esfuerzos de código libre se incluyó la implementación del patrón MVC para el desarrollo de aplicaciones web, en contraposición a la línea "oficial" de Redmond que se basó principalmente en otro patrón conocido como Front Page Controller (Pa'más detalles léanse "Enterprise Solution Patterns" del equipo de Patterns & Practices). Simplemente MVC no les pareció lo suficientemente bueno, no les llenó el ojo.
Siete años después y con una estela de productos open source muertos, Microsoft anuncia que la gran solución para el desarrollo web es MVC.
Microsoft llegas tarde. Como siempre.
Finito.
sábado, noviembre 17, 2007
Desarrollo multiplataforma
Actualmente estoy desarrollando una aplicación web con Rails. Lo curioso del caso son los ambientes que manejo: desarrollo, pruebas locales y servidor de prueba.
El equipo de desarrollo como imaginarán es mi laptop, el ambiente de pruebas locales es mi laptop con otro sistema operativo y el servidor de prueba está más cercano a lo que será el ambiente de producción. En la tabla a continuación muestro los detalles
| Ambiente | Características | OS | DB Server | Ruby/Rails versions |
|---|---|---|---|---|
| Desarrollo | MacBook Core 2 Duo/2GB RAM | Mac OS X 10.4 (Tiger) | sqlite3 | 1.8.6/1.2.5 |
| Pruebas Locales | MacBook Core 2 Duo/2GB RAM | Microsoft Windows XP Professional SP2 | SQL Server 2005 Express | 1.8.6/1.2.5 |
| Servidor Pruebas | HP Xeon 2.0 GHZ x 4 | Windows 2000 Advanced Server | SQL Server 2000 Enterprise Edition | 1.8.6/1.2.5 |
El soporte a SQL Server en Windows es algo laborioso de configurar (prometo detallarlo en otro post) y algo que llama mucho la atención es el diferente comportamiento de SQL Server entre sus dos versiones, 2000 y 2005. En SQL Server 2005, todos los campos enteros aún y cuando se defina el valor por defecto como null siempre aparecen con un valor '0'. En SQL Server 2000, si dices null aparace null. Tal cual.
Fuera de eso y de las obvias configuraciones el código de la aplicación es el mismo.
Por cuestiones desconocidas para mí (y creo que para el admin del servidor también) el desempeño del servidor es terriblemente malo. En los logs de Rails se registra un cálculo aproximado de peticiones que se pueden atender según el equipo en el que estamos ejecutando. En mi laptop este número varia entre 13 y 15 peticiones por segundo. En el servidor de prueba hay valores tan bajos como 4 peticiones por segundo. Espero que el ambiente de producción esté mejor operado.
Finito.
jueves, noviembre 15, 2007
El Camino del Código
Reencontrarme con el desarrollo ha sido estupendo, las problemas que por momentos parecen no tener sentido, se resuelven de manera transparente y relajada como el correr del agua en un riachuelo. No hay que poner demasiado esfuerzo, como caballo desbocado sino más bien permanecer quieto y alerta para en el momento justo tirar una sola línea de código como trazo de pincel... ni más, ni menos.
También cuando vas escribiendo código y piensas: "si éste método existiera de este otro modo..." y el método ya existe o cuando integras por primera vez un nuevo concepto y empiezas a complicar todo cuando la respuesta es tan simple.
No es que Rails sea mejor que X o Y. Es simplemente nadar con la corriente en lugar de nadar contra la corriente.
Finito.
sábado, noviembre 03, 2007
Todos los Santos
La plancha dividida y enorme del Zócalo de la Cd. de México alberga una exposición sobre el Día de Muertos auspiciada por el Gobierno del Distrito Federal y dentro del programa de actividades se anunció la presentación del Maestro Aute, cosa que me hizo replantear completamente mi agenda del día en cuestión y que gracias al interne' y sus ondas me permitió además conocer (en persona) a una chica líndisima y reencontrar a un nuevo amigo.
La cita fue, obviamente, en alguna salida de la estación "Zócalo" y después una caminata para encontrar el, a mí gusto, pequeño escenario de la presentación. Entre comentarios y plática de "hay que hacer tiempo", revisamos un programa y nos dimos cuenta que también estaría presente Oscar Chávez. Wow! Dos grandes por el mismo boleto.
Boleto que empezó costando escuchar, o más bien, aguantar los berridos de Lupita Infante. Que mal plan que se cuelgue del apellido de su 'apá pa'cer los desfiguros que vimos. Montaron una escena de la clásica peli "Los Tres Huastecos" y algo que me cayó mucho de variedad fue ver que muchos, sino todos, nos sabemos las canciones y los diálogos. Estoy seguro de que otra forma de demostrar la nacionalidad mexicana es preguntar canciones y diálogos de películas de Pedro Infante. Neta.
La presentanción de Lupita Infante llegó a su fin no sin antes apabullarla en su última canción con gritos de "Aute! Aute!" y se inició una pausa para el setup del sonido para la presentación del Maestro.
Desde que lo oí por mero accidente en pasado mes de mayo en Coatzacoalcos, simplemente quedé enmarañado, enredado en la letra de sus canciones que han pasado a ser parte esencial de mis mecanismos para vivir, recrear, recordar muchas de mis emociones y mis recuerdos. Frases que sin ser mías me permiten expresar de una manera precisa lo que siento y que me cuesta trabajo decir de una manera inteligible. Y la catarsis postergada que sabía que había de reventar en medio de un colectivo, el cuál al integrarte regala momentos de anonimato que permite que te explayes sin que nadie te cuestione en lo más mínimo.
Al igual que en Coatza, el concierto giró principalmente sobre su último disco e hizo la introducción para casi todas las canciones con su característico humor. Así, en medio de la cubierta éterea y el calor humano, estuvimos coreando y cantando aquellas canciones que nos gustan, nos mueven o mayormente nos duelen...
Aunque todo ya es nada
no sé por que te escondes y huyes de mi encuentro
por saber de tu vida
no creo que vulnere ningún mandamiento
Aquella fue la primera vez
tus labios parecían de papel
y a la salida en la puerta
nos pidió un triste inspector nuestros carnés
Luego volví a la Academia
para no faltar a clase de francés,
tu me esperaste hora y media
en esta misma mesa, yo me retrasé.
O momentos más amenos
Por más que nos pille el estúpido de tu marido,
Quiero bailar un "slow" with you tonight.
Y aunque enamorarme de tí me lo tengas prohibido
quiero bailar un "Slow" with you tonight, my love.
Lo que sucede es que me he enamorado,
como el perfecto estúpido que soy,
de la mujer que tienes a tu lado...
encájame el directo que te doy.
El final de su presentación lo marca despidiendo a sus músicos y montandose él , el escenario, su voz y nada más...
De alguna manera tendré que olvidarte
por mucho que quiera no es fácil, ya sabes
me faltan las fuerzas
ha sido muy tarde
y nada más.. y nada más
apenas nada más
Después, entró al escenario un trío de ruquitos (con todo respeto) y anunciaron al gran Oscar Chávez. Al ir escuchando las notas que brotaron de los instrumentos de los músicos, quedó grabado en mi su nombre: Los Morales. Ruquitos pero K's. Son terriblmente buenos y ahora entiendo por que son sus acompañantes oficiales.
Boleros, huastecas, norteña y canciones clásicas que nos hicieron cantar, el Zócalo se encendió con canciones como "La Mariana", "La marijuana", "Flores Negras", "Sin un amor", "Hasta siempre comandante", "Por tí" y mi particular favorita: "Macondo".
Los cien años de Macondo suenan, suenan en el aire
Y los años de Gabriel trompetan, trompeteando anuncian
Y encadenado Macondo sueña con José Arcadio
Y aunque la vida pasa siendo remolino de recuerdos
Las tristezas de Aureliano, son cuatro
Las bellezas de Remedios, violines
Las pasiones de Amaranta, guitarra
Y el embrujo de Melquiades, es oboe
Úrsula cien años, soledad Macondo
Úrsula cien años, soledad Macondo
Eres epopeya de un pueblo olvidado
Forjado en cien años de amor y de historia
Me imagino y vuelvo a vivir
En mi memoria quemada al sol
Mariposas amarillas Mauricio Babilonia
Mariposas amarillas que vuelan liberadas
Lo único malo fue la resaca al día siguiente, tanta emoción causa cierto tipo de embriaguez cuando no hay ese alguien especial para compartirla.
Finito.
viernes, octubre 26, 2007
Rompiendo el silencio (Trabajo)
Hasta ahorita me he definido como un "hombre de equipo", esto es, mis amigos son en primer lugar las personas con los que trabajo todos los días. Así, cuando cambio de equipo de trabajo, cambio de amigos. Cambio hábitos de comida, de trabajo y me esfuerzo por no cambiar de trato pero como algunos reclaman, no siempre lo consigo. Una cosa curiosa es mi nuevo equipo: Yo. Actualmente en el proyecto que trabajo soy el único recurso de tiempo completo por parte de mi empresa, así que el equipo soy Yo. Ja.
Dentro de la empresa, veo muchas áreas de oportunidad: metodología, capacitación, proyectos. Ahora necesito conseguir tiempo y concentrarme en mis tiempos "muertos" a ir armando los bloques que traigo en la cabeza.
Me voy re-encontrando con herramientas y tecnologías. Una de las cosas que quiero hacer es buscar espacios para Rails, sin embargo, éste mi primer proyecto está amarrado a .NET al cual le estoy tomando sabor de nuevo. Fueron casi tres años sin tirar código para una UI y ahora al re-aprender ASP.NET influenciado por la visión Rails le encuentro un sabor distinto. Ahora me veo usando componentes que hace un par de años (o meses) veía como objetos de pecaminosa pereza pero desde un enfoque pragmático tienen su valor (y razón) de ser.
Cuando desarrollamos con Rails hacemos usos de una cantidad inmensa de clases y componentes de los cuales aprovechamos toda la funcionalidad sin preocuparnos del detalle de la implementación. De repente nos encontramos usando ActiveRecord a diestra y siniestra confiando ciegamente en que la implementación del patrón de diseño cumple con todos los cánones habidos y por haber. No hay duda ni cuestionamiento, ActiveRecord es un componente que nos permite ser más productivos ¿para qué entrar al detalle de su funcionamiento? Funciona y listo.
En mi regreso a ASP.NET estuve a punto de retomar la complejidad de implementar patrones, armar bosques de clases y aplicar todos los principios de arquitectura existentes; la realidad es que los tiempos comprometidos me están obligando a encontrar alternativas que nos permitan avanzar más rápido y tener elementos visibles, tangibles, que hagan sentido al usuario final del sistema. Se generó en mi un gran conflicto. Siempre peleé por "hacer las cosas bien, más que rápido" y ahora tengo que "hacer las cosas rápido más que bien". Al final, encontré un punto medio. La experiencia con Rails me enseño que no tengo que recrear la complejidad (usar las clases existentes de ActiveRecord en lugar de construir de cero mi implementación del patrón de diseño) sino a usar lo ya existente y confiar en que en su momento lo puedo mejorar (esto último es más "agile oriented").
Tome los componentes ASP.NET que más me latieron y conseguí avanzar un buen tramo en la construcción del sistema sin caer en un "arrastra-controles" ni re-construyendo todo por ser víctima del síndrome "No-Inventado-Aquí". Estoy cierto que de ser estrictamente necesario más adelante puedo cambiar esos componentes así que se redujo parte de mi conflicto interno.
Esta situación también me dejo entrever otra cosa: de manera natural seguimos ciclos (o espirales dirían los dialécticos). En las artes marciales se inicia con el aprendizaje portando un cinturón blanco, signo de ignorancia, conforme se avanza el cinturón se va tornando oscuro hasta llegar al negro representando la "maestría" alcanzada. Al paso del tiempo el cinturón negro se desgasta mostrando la fibras blancas originales. Simple, complejo, simple.
En el contexto del desarrollo nos adentramos con "asistentes" y construimos aplicaciones arrastrando componentes en nuestro ambiente de desarrollo. Luego vamos conociendo nuevas tecnologías que aumentan los beneficios de nuestras aplicaciones a expensas de la erudición necesaria para su uso. Patrones, técnicas, innovación amarrada a la complejidad pero esto tiene que ser así ¿cierto? Entre más fácil para el usuario, más complicado para nosotros.
En ese momento aparece Rails y entiendo el porqué de la migración. Nos olvidamos de las complicaciones. Sabemos que los componentes de Rails son implementación de patrones y conceptos que veneramos y con eso nos basta. No los ponemos en tela de juicio ni criticamos, simplemente los usamos.
Así me paso con ASP.NET, ya no cuestiono ni critico los componentes que ofrece. Aqui y ahora me hace sentido. Sé que de requerirse puedo incluir toda la complejidad que se requiera pero de momento solo necesito una cosa: que funcione y lo estoy consiguiendo.
Finito.
domingo, septiembre 16, 2007
He decidido quererte
Me encanta el tiempo que pasó contigo. Caminar juntos por la calle. Escucharte hablar de tus cosas y contarte las mías.
Cada suspiro que nace en mi pecho, ahora lleno de amor, tiene tu nombre. Y mi amor dura tanto como ese suspiro, y el que sigue, y el que sigue, y el que sigue... y si dejo de suspirar, entra al relevo un latido, y el que sigue, y el que sigue, y el que sigue....
Te quiero por que querer es libre
Te quiero por que querer es gratis
Te quiero por que no hay una razón para no hacerlo.
Te quiero por que soy feliz haciéndolo.
Solo sería más feliz si el sentimiento fuera recíproco.
Te quiero Karacas.
Finito.
miércoles, septiembre 05, 2007
De las tardes
que me llevan las mañanas
descifrarte en tu mirada y en tu voz
que nunca he sabido cuanto me has contado y cuanto no
cuanto solamente lo imagino yo.
Cuanto tiene de ser cierto el paso a tus parques abiertos
y a las frescas sombras de tu pabellón
luego todo lo respondería esa tarde que me des
aun que solamente sea por una vez.
Entre amores y distancias
de entre sueños sin sustancias
y entre todo lo que no ha llegado a ser.
Si me dieras una tarde para conversar mejor
desdibujando las ropas con que vistes tu rumor
podría mirarme en tus ojos si te asomas hasta a mi
si te dieras una tarde, una tarde por aquí.
Si te tuviera una tarde
para abrevarme en la voz murmurante de tus fuentes
una tarde para dos, una tarde para siempre
por las tardes que no estás, por las tardes que no han sido
y por las que ya no te vas.
Una tarde solamente de tu vida
tan solo un instante de tu juventud
unas horas de tus horas y salidas
al quizás de un mutuo encuentro
que logremos ver adentro uno del otro
un quizás que tu volvieras realidad.
Una tarde que me dieras
cualquier tarde de este mes
para tardarme intentando
llevarte una y otra vez
aplicando con mis labios
en tus labios de canción
la balada del encuentro
del verano con la flor.
Quien te tuviera una tarde
para andarte, recorrer
las veredas, los atajos
en los campos de tu piel
recorriendo amante, valles, lomas
cauces de agua y flor
conquistando tus llanuras
toda una puesta de sol
Solo dame algún tarde
y yo me vuelvo una canción en tus labios.
Procurando y sorprendiendo
por todo el atardecer
tu sonrisa más bonita
si te dejas conocer.
