We build castles in the air, from air…

Una de las citas que mas me gustan para explicar como funciona el desarrollo de software de Frederick Brooks:

“The programmer, like the poet, works only slightly removed from pure thought-stuff.

“He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.

“Yet the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms.

“The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be. …

“The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn’t work. Human beings are not accustomed to being perfect, an few areas of human activity demand it.

“Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.”

From The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition

the way you think

A language that doesn’t affect the way you think about programming is not worth knowing — Alan Perlis

Balsamiq Mockups

Una de las partes mas complejas de desarrollar una aplicación es la comunicación entre las distintas personas involucradas. Es fácil que se creen malentendidos, que en ocasiones pueden generar mucha frustración, y una gran perdida de tiempo malgastando esfuerzos en la dirección equivocada. Creo que siempre ayuda mucho más hacer bocetos o cualquier otro tipo de gráfico para representar lo que se quiere, que una lista de cosas que se pueden entender de muchas formas.

Illusion of agreement
Illusion of agreement

Y una aplicación que me encanta, para poder hacer muy rápidamente bocetos de las pantallas de tu aplicación, es Balsamiq Mockups. A pesar de estar hecha en AIR (el aspecto de estas aplicaciones no me suele gustar) es muy bonita, y realmente sencilla. Una prueba definitiva de lo sencilla que es es que se puede empezar a usar sin tener que usar la documentación. Solo tuve que consultarla para ver como enlazar dos mocks entre si, que aun así es muy fácil. Es mucho más rápido (al menos para mi) hacer bocetos de las pantallas con Balsamiq Mockups que dibujarlos a mano. Además tiene un modo presentación a pantalla completa.

Pero lo que realmente triunfaría sería poder editar y compartir mockups de forma remota, no se si mediante una interfaz web o algo parecido. Eso es lo que mas echo de menos para poder trabajar de forma colaborativa a distancia.  No me gusta que sea software privativo, pero no conozco otra alternativa libre. Y aunque la licencia vale unos 79$, si escribes una revisión en tu blog te dan una licencia gratis 😀

Aqui podeis ver un pantallazo sobre un mockup de la aplicación en la que estoy trabajando ahora:

facturagem_mockups

Conferencia Rails 2009

logo conferencia rails
conferencia rails

Este año la conferencia rails promete, además de haber un día mas para talleres prácticos, vendrá gente como: Nathaniel Talbott, David A. Black, Yehuda Katz, Obie Fernandez y Scott Chacon.

Desde hace algún tiempo tengo curiosidad hacia otras alternativas a las bases de datos relacionales,  asi que voy a ir con muchas ganas a la charla sobre key value stores y a la de casandra DB.

Tampoco pienso perderme dos charlas que hablarán sobre el concepto de desarrollador,  el desarrollador total y la herramienta de desarrollo defintiva ,  ni tampoco la de alternativas ligeras a rails.

Nos vemos allí 🙂

Enviar emails desde rails a través de gmail

Pensaba que rails soportaba el envio de emails con tls de serie, pero no es asi. Para poder enviar emails a través de gmail, es necesario usar tls, pero es muy sencillo de añadir mediante un plugin:

Y ya solo queda añadir el parametro en la configuración de ActionMailer para que use tls:

Después de haber hecho durante años las validaciones de email mediante mas o menos complicadas regex, he descubierto que la libreria Tmail tiene una clase Address, que te parsea la dirección de email y te lanza una excepcion si no es correcta. Asi, por ejemplo para validar un email podemos hacer: