Entradas de "rails"
Ya salió Rails 2.0.1 con muchos features nuevos. Una vez que actualicen los libros, será momento de volver a estudiar.
En Sitepoint están ofreciendo gratis el libro completo de Patrick Lenz, “Build your own Ruby on Rails applications” por 60 días.
Feeds corregidos
Al parecer la migración a Solaris hizo que se revelara un bug en los feeds de Retrazos y Así recordaremos siempre. Gracias a Oliver que me avisó anoche, sino habrían pasado más días sin darme cuenta.
Aprovecho la oportunidad para invitarlos a visitar Retrazos y suscribirse al feed RSS. A quienes no conozcan el tema, es mi galería de dibujos experimentales que hago bajo un límite de tiempo.
Uno reciente de muestra, Legendary Power:
Under a shining Solaris
Mi proveedor de hosting, Joyent, empezó a migrarnos a todos de FreeBSD a Solaris. He estado esperando desde Febrero, y finalmente llegó mi turno; he estado moviendo todo de un lado a otro, pasando toda la noche ajustando el correo y rascándome la cabeza. Finalmente he llegado a solucionar todo, encontrar alternativas y creo que ya todo está ok. No he tenido mucho tiempo de downtime, que era lo que más me preocupaba.
Ya sé que para la siguiente vez tengo que hacer un freeze de la versión de Rails que estoy usando. Y definitivamente tengo que sentarme a aprender los nuevos features de Rails 1.2.
Hay una diferencia notable de performance. Siento el servidor más rápido y con mejor tiempo de respuesta que antes. Veremos cómo nos va. Somos solamente quince vecinos en este servidor (”Tunstead”). Espero que sea una grata compañía y que nadie intente hacer alguna cosa graciosa.
Superators es un gem de Ruby escrito en Ruby puro que permite crear nuevos operadores, aunque con ciertas limitaciones. Ahora es posible hacer cosas como este ejemplo de Aleks (heh, qué pequeño es el mundo):
["aleks", "bob", "monkey", "zebra"] <~ ["joseph", "xylophone"]
o se me ocurre:
status +-
para negar el valor de una variable (i.e. status = !status). Utilísimo para DSLs o proyectos muy personales. Demasiada magia no es buena.
Nicehacks: Un directorio de Software Libre inspirado en Sweetcode
¿Recuerdan Sweetcode? Era un directorio de proyectos de Software Libre innovadores, diferentes, mantenido por Daniel Egnor. De un momento a otro los updates se hicieron más y más distanciados y el sitio finalmente desapareció.
Le envié un mail a Dan preguntándole si podía ayudarle a revivir el proyecto, mas nunca contestó. Anoté en mi lista de cosas que me gustaría hacer algún día un directorio como Sweetcode.
Adelantemos la cinta un par de años más tarde, y el Domingo pasado me puse a trazar mis metas para la semana y revisando mi olvidada lista me topé con esa entrada. Me dije, “Hey, esto lo puedo hacer en dos patadas en Rails.” Así que ayer Lunes en la noche lancé dos patadas, registré el dominio y aquí lo tienen: Nicehacks.
Para los que nunca vieron Sweetcode, no se trata de un directorio como los que ya abundan, sino enfocado a software diferente, original, innovador. Este nodo en E2 explica muy bien el concepto.
Nicehacks es sólo una inspiración de Sweetcode, ya que Sweetcode es Sweetcode por Dan Egnor.
Le envié un mail pidiéndole permiso para poner los posts pasados de Sweetcode (son del 2003, wow, como pasa el tiempo), esperemos que conteste. Por lo pronto, ayúdenme pasando la voz y enlazando la página, así como también enviando algún software (libre/Open Source) interesante, innovador, útil, peculiar o simplemente diferente que conozcan a: submit@nicehacks.org
Drew Struzan y su flexibilidad a los cambios
Drew Struzan es el más famoso de los artistas de posters de películas. Su carrera se inició prácticamente con un poster para Star Wars y desde entonces ha hecho incontables posters para todo tipo de películas.
Cuando salió el Episodio I de Star Wars me compré el score de John Williams que tenía el mismo arte del poster que había creado Struzan. Años después cuando salió Harry Potter, vi el poster en el cine y reconocí la semejanza con el arte del Episodio I. Me dije: “Se han copiado el mismo estilo.” No cruzó por mi cabeza pensar que se trataba del mismo artista hasta que después, haciendo tarea por internet, conocí finalmente a Drew Struzan, autor, obviamente, de sendos posters.
Hay bastante información acerca de su persona en internet, así que no pienso repetir el trabajo de otros. Lo que quisiera resaltar es lo que he aprendido acerca de su carrera en Hollywood (refiriéndome a todo ese sistema que produce películas).
Hace tiempo estuve leyendo sobre cómo se escriben guiones para Hollywood y lo gracioso es que no existe ningún standard. Todos lo hacen a su manera y a su forma. Le encuentro mucho parecido al desarrollo de software: todos obtienen sus resultados a su manera. Hay ciertas tendencias o procedimientos comunes, pero el resto cada uno se las arregla a su manera.
Pues para hacer posters, tampoco hay standard. Drew Struzan tuvo que lidiar con el estilo de cada cliente para satisfacerlo. Por ejemplo, para el poster de “Thunder and Lightning” llamaron a Drew a las cinco de la tarde y le pidieron hacer un poster. Para el día siguiente. En la mañana. No tenían ni concepto ni letras ni nada. Drew entregó el trabajo al día siguiente a las nueve de la mañana.
“La Cosa” fue, eh, otra cosa. No solamente fue una película de terror sino también un proyecto de terror. Llamaron a Drew con lo mismo: poster para mañana en la mañana. Pero esta vez no hay material de referencia, ni concepto ni nada en qué basarse. Era un remake de “La Cosa” de 1951. ¿Cómo puedes dibujar un poster de algo que ni siquiera has visto?
Al día siguiente temprano recogieron el poster y de frente se lo llevaron a la imprenta. La pintura estaba tan fresca que se quedó pegada en el vidrio de la máquina separadora.
Ese es Hollywood.
Lo cual me lleva a pensar que muchas veces es así también el desarrollo de software donde los clientes te vienen con unas exigencias que son URGENTE y que, en ocasiones, se queda “pegado” en el servidor. Y luego viene la queja, por supuesto.
Así como los artistas dieron gracias al cielo por la invención de los acrílicos, hoy le invitaría miles de ceviches a los autores de Rails y Django por tener el equivalente a la pintura acrílica: un medio para pintar tan flexible y que se seca rápidamente. Cuando empiezas a trabajar con toda esta presión se hace crítico automatizar, innovar, ser más eficiente, ser más rápido. Escribo macros en mi editor que jamás volveré a usar, programo scripts que programen por mí y, horror de horrores, pavor de pavores y peguen todos un grito en el cielo y acribíllenme con balas de plata, estoy empezando a programar “defensivamente” sacrificando velocidad del programa por velocidad de programación.
Drew Struzan tuvo que hacerse de trucos para poder trabajar al caprichoso e impredecible ritmo de Hollywood: primero pintaba una base de gesso a la superficie para poder hacer todos los cambios que se le ocurriesen a los clientes. Luego trabajaba con acrílicos y los detalles los hacía con lápices de colores. Este procedimiento fue evolucionando poco a poco. Los clientes eran tan impredecibles con sus cambios y requerimientos que no debería sorprendernos también sus abandonos, robos y traiciones (se llevaban los preliminares que les presentaba Drew y hacían que los terminaran otros artistas).
La verdad es que me siento cansado y frustrado de este ritmo. Creo que estoy pasando por cierta etapa de transición o algo, no lo sé. Lo único que sé es que no me siento como antes con lo que hago. I think I’ve burnout.
Creo que necesito descansar.
No perdamos el enfoque
Este es un extracto modificado y extendido de un, eh, desquite escrito en otro lado que no viene al caso mencionar. Es una lección que he estado aprendiendo últimamente y que estoy viendo repetirse a menudo y me encuentro a mí mismo diciendo la misma frase: “No hay que perder el enfoque.”
Muchas personas dicen entonces que eso no es “el standard de la industria,” o parte de las “mejores prácticas.” Y en repetidas veces esas cosas nos llevan erradamente a perseguir procedimientos o caminos en lugar de concentrarnos en resolver el problema.
“Hay que usar la mejor herramienta para el trabajo,” dice la sugerencia. Pero si tengo un apuro en abrir el case de mi computadora en una emergencia y lo único que tengo a la mano es un cuchillo y no un destornillador estrella, ¿adivinen qué es lo que voy a usar?
No, tonto. Tienes que conseguirte el destornillador estrella. Es el standard. Nos regimos y seguimos reglas sin entender el verdadero significado de por qué han sido definidas y la razón de su existencia.
Un extremo claro son los hospitales donde no te pueden atender a menos que llenes antes un formulario, porque “ese es el procedimiento.” Procedimientos, primero — el ser humano después. Se pierde el enfoque y la claridez de lo que se está haciendo, el objetivo que se quiere lograr; en el caso de un hospital, brindar atención médica a las personas.
Por supuesto, es otro gigantesco error irnos al otro extremo y decir que las reglas y procedimientos no sirven para nada e ignorarlos olímpicamente. Se llaman “mejores prácticas” por un motivo válido. Se establecen procedimientos por ciertas razones. Lo importante es entender y discernir el propósito de cada procedimiento y hacer lo correcto en cada caso.
Cuando perdemos el enfoque todo se viene abajo. Pensamos que el numerito obtenido de un examen determina la proficiencia de una persona en dicho curso y no es así. Pensamos equivocadamente que se puede representar la aptitud o inteligencia de una persona con un solo número y es una tontería.
Alabamos una buena nota y castigamos una mala nota sin discernir que es una mera figura, una representación pálida. Alguien con una plagia o una memoria fotográfica puede transcribir, palabra por palabra, lo que tiene y obtener una buena nota. Alguien que ha estudiado duro, pero que al final se llenó de nervios por la importancia que tiene pasar este curso obtiene al final una mala nota. No rindió al 100% de sus habilidades, no por su conocimiento, sino por un factor externo. Y no podemos decir “No sabe, no estudió, la nota baja lo demuestra,” porque es un estúpido escalar que no representa nada.
Y entonces aparecen los que se van al otro extremo y puntillean, ¿Significa eso que debemos de eliminar todas las notas? ¿Que el sistema no sirve y que no debemos basarnos en ello? Que no, carambas. Es necesario tener un punto de referencia, una manera de medir el aprendizaje — pero tomémoslo como tal, como una referencia.
“Veo que sus notas de colegio, estimado entrevistado, son deficientes. Es usted, pues, un bruto y no lo necesitamos en nuestra empresa.”
Ajá. El divorcio de mis padres durante esa época no tuvo nada que ver. ¿Qué tal si me hace un par de preguntas o me toma un examen de aptitud y vemos si, en la práctica, soy realmente útil para su empresa? ¿O si mira los proyectos que he estado haciendo?
Oh no, papelito manda.
El año pasado cuando entrevisté a personas buscando un programador me importó un comino o dos si venían vestidos en terno o en chancletas, si habían estudiado en La Católica o con su primo Juancito. A todos les hice las mismas preguntas y ninguno, NINGUNO, pudo completarme una tarea de programación. Mi elección se hizo en base a la forma cómo intentaron razonar para salir del apuro, porque lo que buscaba es alguien que sepa razonar, no que tenga las siglas “Ing.” delante de su nombre, sino alguien con aptitud, alguien con potencial y capacidad. No alguien que sepa “Java” y “PHP” porque nuestra industria se mueve tan rápido que “Java” y “PHP” van a ser obsoletos o desplazados de todas maneras.
Debemos de detenernos un momento a pensar y observar si estamos siguiendo reglas ciegamente o estamos usando la razón. Hace años atrás renuncié a un buen trabajo en Lima por la sencilla razón que ese trabajo se convirtió en todo y llegué al límite de querer abandonar por completo a mi Señor.
La incomprensión de personas no creyentes no me sorprendió — lo que me sorprendió fue la incomprensión de creyentes que consideraron “tonta” y absurda mi decisión. “¿Por qué un creyente no puede ser rico?” preguntó una creyente y es como si no hubiese entendido nada en toda su vida.
Su patrón de éxito estaba marcado por lo que el mundo dice y no por lo que Dios dice. Nuestra mira y nuestra meta es otra. Es tan desorientado como decir que lo más importante en el colegio es haber llenado la mayor cantidad de álbumes de figuritas que todos los demás en la historia del colegio. “¿Y por qué un alumno no puede tener la mayor cantidad posible de álbumes?”
Mi conclusión es: no debemos perder el enfoque del por qué de las cosas, del motivo y razón detrás de cada standard, cada regla, costumbre o procedimiento. No obedezcamos ciegamente las cosas porque “así son,” “siempre han sido así” y “los demás también lo hacen” sino usemos el razonamiento y la sabiduría para hacer siempre lo Correcto.
(Y lo Correcto en reiteradas ocasiones rompe las reglas.)
|