The command line

GNU/Linux, web development and some other things

Documentación Sobre Seaside

Seaside es un framework sorprendente. No hace falta más que ver los demos y ejemplos existentes. Pero es una lata encontrar documentación adecuada. La existente esta dispersa, atrasada, muy específica o muy básica. Es la mayor deficiencia de Seaside. El principal problema es que mucha documentación está hecha para versiones antiguas de Seaside, que usan WAHtmlRenderer en lugar de la más reciente y recomendada WARenderCanvas Aquí van algunos de los mejores links que he encontrado: ¡A leer!

Smalltalk/Squeak

El 14 de septiembre se publicó el libro Squeak by Example. Hoy lo terminé. Es fantástico. El lenguaje es impresionante. El modelo teórico en el que está basado es absolutamente asombroso Todo es un objeto. ¡Todo! Y si creías que sabías programación orientada a objetos porque programabas en Java, C++ o C#, déjame romper tu burbuja. No es así. Lo digo por experiencia propia. Me he dado cuenta de que he vivido engañado.

Beyond Java (and Java Frameworks). Part 3

Los lenguajes de programación, como los lenguajes naturales, vienen en muchas variedades, cada una de las cuales tiene distintas características que los hacen, en mayor o menor medida, aptos para expresar ideas. En el caso de los lenguajes naturales, hay varios grupos que definen características comunes entre ellos. Uno de esos grupos es el formado por las lenguas romances (español, francés, italiano, etc). Otro grupo contiene a las lenguas del norte de Europa (alemán, Sueco, holandés), por no hablar de las lenguas orientales (japonés, chino, coreano, etc). No hay que olvidar las lenguas nativas de los distintos pueblos y naciones antiguas (las islas del pacífico, las lenguas indígenas de latinoamérica, las lenguas de las tribus de indios de norteamérica). En fin, no soy lingüista ni mucho menos y este es terreno peligroso si entramos en detalles. El punto importante es la amplia variedad de lenguajes existentes, cada uno de los cuales expresa con mayor o menor precisión los conceptos de la mente humana.

De La Calidad Del Diseño Gráfico.

Hace tiempo que intento terminar un proyecto alterno que estoy haciendo con un amigo. Es una aplicación web. Ya saben, lo tradicional: PostgreSQL, Java, Struts, Tomcat. Eso no es importante, sobre todo a la vista de los últimos posts donde explico mis razones para dejar atrás ese tipo de tecnología (me refiero a Struts). Lo importante es que desde el inicio decidí que iba a separar completamente la presentación de la aplicación, de manera que el producto se pudiera personalizar (cambiarle el tema) si así lo prefería el cliente. Si alguien me hubiera dicho que eso iba a ser toda una aventura, no lo hubiera creído.

Aberraciones en Programación

Leyendo el blog de Ramon Leon encontré un excelente artículo listando algunas de las aberraciones que he encontrado en el código que he tenido que modificar y algunos que yo, me da pena decirlo, use en algún momento, como poner prefijos a las variables para indicar su tipo (la culpa es de Pascal). Algunas citas memorables, enfatizado por mi: Don’t comment closing tags.
if(foo == bar){
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
//bunch of code
} //end if(foo == bar)
this is beyond ignorant, you should be shot. ¡Ja ja, nada más cierto! O, dirigido al mundo de Java: XML is for configuration files and data transport, not for general purpose programming. Para alegrarse el día

Beyond Java (and Java Frameworks). Part 2

En el post anterior detalle mi búsqueda de nuevas opciones en frameworks para desarrollo web en Java. Los finalistas fueron Wicket y RIFE. Mencionaba también que estos frameworks son distintos de los “tradicionales” en que son basados en componentes y en que manejan todo el estado de la sesión con el usuario del lado del servidor. ¿Pero que significa que sean basados en componentes? De entrada es una nueva manera de pensar las aplicaciones web. En lugar de modelar una aplicación web como un conjunto de páginas relacionadas que la conforman, comenzamos a pensar en elementos más pequeños pero a la vez más poderosos.

Beyond Java (and Java Frameworks). Part 1

Al fin llegué a mi límite. Demasiado esfuerzo para hacer cosas simples. Demasiados archivos que modificar para realizar un cambio. Y lo peor de todo, ¡demasiado XML para programar! Java no es un lenguaje que se distinga por ser conciso para expresar algoritmos y soluciones a problemas. Es tolerado tomando en cuenta sus otras ventajas (garbage collector, una buena biblioteca de clases, entre otras). Pero si además de eso agregamos toneladas de XML para realizar la mitad de la programación y configuración de tu aplicación llegamos a un punto extremo.

Puebla: Vacaciones, Boda, Comida Y Talavera

Hace 2 semanas tuve vacaciones y nos fuimos a Puebla. Tres días fuera del DF siempre son bienvenidos. Además, no fueron solamente vacaciones, también fuimos a la boda de mi hermano. Muchas felicidades a los novios. Llegamos un día antes de la boda y nos dimos una buena paseada por Puebla. Muy bonita ciudad. No importa cuantas veces la visite, siempre me parecerá muy interesante. Lo mejor de todo es su comida. Probamos de todo: mole poblano, chalupas, cemitas, pipián, camotes, etc. Además, aprovechamos para comprar talavera poblana. Y aunque nos agarró la lluvia un día y no alcanzamos a subir al turibús, fueron unas vacaciones memorables. Así que no dejen de visitar Puebla, la comida y la ciudad no decepcionarán a nadie (exceptuando quizá a Marco Rodríguez, que no quedó muy convencido de que el papalo sea un buen ingrediente para las cemitas :D).

Noticias Desde Alemania

El lunes 27 de agosto fue el examen de maestría de Talina. Todo salió muy bien, según me cuenta (ya que estaba un poco complicado asistir :D). Así que un saludo y muchos abrazos hasta la lejana tierra de Alemania. Felicidades!

Fotos

Después de algunos días de tener abajo la sección de fotos ha regresado corregida y mejorada. Inicialmente tuve la intención de usar alguno de los sitios de fotos de internet como Flickr o Picasa Web. Picasa Web era el candidato ideal porque ya tengo cuenta en Google y por tanto ya no tenía que registrarme en otro sitio como es el caso de Flickr. Finalmente me decidí a hostear yo mismo mis imágenes. De esta manera yo tengo el control completo de todo. Después de buscar un rato y comparar las opciones me decidí por Gallery2. Entre todas las ventajas que tiene gallery, la más importante es que puedo subir directamente las fotos desde f-spot o digikam. Por tanto cree un nuevo subdominio para poner ahí la galería. La dirección es http://fotos.leugim.com.mx. Inicialmente, manejaba mis fotografías usando f-spot. La interfaz es muy amigable y en cuanto a manejo de fotografías no le pide nada a Picasa o a iPhoto. Pero desgraciadamente no hace lo mismo con los videos. Algo muy importante para mi era la capacidad de almacenar tags y comentarios directamente en las imágenes (usando EXIF e IPTC) y no en una base de datos externa (como XML o sqlite). De esta manera, si en algún momento decido cambiar de aplicación para el manejo de mis fotos, no tengo que volver a clasificarlas y comentarlas. Desafortunadamente, f-spot no lo hace en la versión que viene con Debian Etch (0.2.1) y para instalar la versión de Debian Testing me marcaba demasiados conflictos. Por tanto intenté instalarlo a partir del código fuente. ¡Ja!, toda una aventura. Finalmente desistí y busque una mejor solución. Encontré que digikam puede almacenar los tags y comentarios directamente en el archivo, y que además, aunque la versión que viene con Debian Etch no es la que trae esta funcionalidad, es mucho más sencillo instalar la versión más reciente directamente desde el repositorio svn de kde. Así que por el momento estoy usando digikam 0.9.3, compilado a partir del svn y no tengo ningún problema. Todos mis tags y comentarios son guardados en el archivo de la foto. Además, como cereza del pastel, al exportar las imágenes a gallery, éste obtiene los tags y comentarios que asigné a las imágenes y las utiliza para poner los títulos y comentarios que aparecen en la galería. :D DRY en acción. Así que ahora a subir fotos por montones.