Hoy leí algo muy interesante para documentar mockups o diseños de interfase usando algo llamado Documentos de Descripción del Diseño (o algo así).
Me pareció muy interesante, y se me ocurrió implementarlo para documentar código fuente de Rails.
Creo que este tipo de documentación puede ser muy útil cuando estas desarrollando, o incluso para mostrar un prototipo al cliente, porque puede ver muy fácilmente que esperar que haga la aplicación en cada paso.
Escribí un crudo plugin para hacer esto, y su objetivo es documentar las acciones de los controladores. Espero esta imagen te lo explique mejor:

Ese panel aparece en todas las acciones que tienen documentación definida. En el ejemplo anterior podría ser así:
RUBY:
class SesionesController
# DD: Validar credenciales de usuario.
def iniciar_sesion
# DD: Inicio de sesión:
# # El usuario escribe su login y clave de acceso
# # El usuario da clic en el botón "Iniciar sesión"
# # El sistema válida la información. Si es correcta el usuario es llevado a su cuenta.
hacer_algo_util
# DD: Errores:
# p. El usuario escribe un login incorrecto
# # Se muestra un error en el campo de login
# DD: El usuario escribe una clave incorrecta
# # Se muestra un error en el campo de clave
mas_codigo_rails
etc
end
end
El panel puedes arrastrarlo por la pantalla, “minimizarlo” (doble clic en el título), o cerrarlo por completo (X).
Escribí el plugin muy rápido, así que esta horrendo. Quiero escuchar opiniones antes de “embellecerlo”. Notarán quienes tengan experiencia escribiendo “parsers” que yo no la tengo, así que una ayudadita no caería mal :-)
La instalación no es tan rápida como la de otros plugins, pero de momento creo que es suficiente. Primero baja este archivo y descomprimelo en la carpeta vendor/plugins. Dentro de vendor/plugins/rd3/lib encontrarás una hoja de estilo. Copiala a public/stylesheets.
Luego en el layout de cada controlador (o en el de la aplicación), agrega lo siguiente en la sección *“head”*:
RUBY:
<%= stylesheet_link_tag 'rd3' %>
<%= javascript_include_tag :defaults %>
Ahora escribe la documentación que quieras para tus controladores con la siguiente guía:
RUBY:
class SesionesController
# DD: Descripción de la acción.
def iniciar_sesion
# DD: Documentación sobre la acción
# Este comentario es parte del anterior.
codigo
# DD: Otra sección de documentación
# p. Acepta formato de RedCloth
# # Esta es una lista
# # Otro elemento
mas_codigo
# Este es un comentario normal que no será incluido
# en la documentación generada.
end
end
Bien, ya que tienes tu controlador documentado, en la consola ejecutas una tarea de rake:
Eso creará unas vistas en doc/rd3, que serán las que aparecen en el panel.
Puedes personalizar este panel ya sea con el archivo CSS incluido o editando la plantilla rd3/lib/panel.erb.
Ah, casi lo olvidaba, este plugin solo se carga cuando estas en ambiente de desarrollo. En producción por supuesto ya no.
Agradeceré cualquier crítica que me puedan ofrecer :-)
Published by viajero on August 18, 2007
under General
Jajaja, que nombrecito… Me recuerda al Sr. Arnold Schwaquiensabeque.
La forma “estándar” de publicar una aplicación Rails (o cualquier otra cosa en realidad), es con Capistrano. Solo es necesario escribir unas “recetas” simples para tu aplicación (que no son más que configuraciones, y algunos comandos, como el servidor a donde se va a publicar, entre otras cosas).
Luego desarrollas tu aplicación como siempre, y cuando quieres probar en un servidor que configuraste, simplemente le das un “cap deploy”, y se hace todo el trabajo por ti.
Algunos desarrolladores creen que Capistrano se esta volviendo muy complejo, y ya no les gusta trabajar con el. No estamos hablando de cualquier equipo de desarrollo, no.
Este equipo estrella ha creado la máquina de matar Vlad the Deployer! para asesinar a Capistrano.
Que risa me dio al ver el nombre. Y su página también es muy humorística. Nada más queda ver quien gana la batalla, porque además no se están metiendo con cualquiera.
Published by viajero on August 17, 2007
under General
Ya tiene tiempo que conocía Shoes pero había olvidado escribir sobre esto.
Shoes es como un framework, pero en vez de desarrollar aplicaciones web, es para aplicaciones de escritorio, con toques de funcionalidad web. Mira esto:

RUBY:
Shoes.app do
background “rgb(102, 102, 102)”
stroke 0, 0, 0
x, y = nil, nil
motion do |_x, _y|
if x and y and (x != _x or y != _y)
append do
line x, y, _x, _y
end
end
x, y = _x, _y
end
end
Esa, es TODA la aplicación. Los demás ejemplos de Shoes son igual de simples (y sorprendentes).
Shoes es además el alma de Hackety Hack.
Puedes instalar Shoes en Linux, Windows, y Mac OS. Para Linux es así de fácil (y para Mac es muy similar):
- $ wget http://code.whytheluckystiff.net/dist/shoes-0.r117-linux.tar.gz
- $ tar zxf shoes-0.r117-linux.tar.gz
- $ cd shoes-0.r117
Published by viajero on August 17, 2007
under General
Hay un programa para aprender Ruby muy sencillo y muy bueno llamado Hackety Hack.
Esta solo en inglés, y solo para Windows (de momento), pero seguro que a más de uno le podría servir. Para mi hubiera sido una gran diferencia tener un programa así cuando estaba aprendiendo Ruby.
Si sabes inglés, te puede ser muy útil para enseñar a programar a tu hermano menor :)
Published by viajero on August 17, 2007
under General
Nada más quiero informarles a quienes no lo conozcan que existe un grupo de Google llamado Ruby SIG Mexico al que podríamos dar más vida.
Yo ya estoy suscrito y para impulsar esto trataré de ayudar a quienes pongan cualquier pregunta en el grupo.
Si tienes algún interés en difundir Ruby en México, no dudes en aportar con preguntas o respuestas.
Published by viajero on August 16, 2007
under Off-topic
Hace tiempo que modifique varios estilos de Google Reader y los combine en algo que me ha agradado bastante, así que lo comparto con ustedes.
Para mi es mucho más fácil de leer, y ofrece más espacio para tus feeds.
Tiene varios problemillas menores con algunos colores, pero nada grave.
Necesitas la extensión Stylish para Firefox. Para cualquier otro navegador… suerte :)
Google Reader Dark OSX.

Published by viajero on August 16, 2007
under General
A pesar que querer negarlo y hacer como si hubiera sido una pesadilla, sigo trabajando con PHP…
Tengo que hacerlo, pero algo que me he dado cuenta es que el desarrollar aplicaciones con Ruby on Rails (y programas/scripts pequeños en Ruby) ha cambiado mi forma de analizar y diseñar código en otros lenguajes.
En el caso de PHP, el código que ahora tengo que escribir es mucho más legible y organizado (dentro de los límites que permite PHP), porqué tan solo ver el horrible código que usualmente se hace con PHP trato de hacer lo posible para que no sea tan desagradable.
Un ejemplo muy claro es WordPress. A pesar de lo popular de la plataforma y de lo “estructurado” que según es, desarrollar un plugin o un tema ni se acerca a algo similar en Ruby. Basta con mirar el código de cualquier plugin o tema para darte cuenta de ello.
Hace poco leí un artículo sobre como el aprender diferentes lenguajes, aunque no los uses, mejora tus habilidades en los que si usas.
Ben Casnocha escribió en su libro My Startup Life, sobre la utilidad de acoplar el conocimiento común con experiencias no comunes. En este caso yo aplico como “común” lo que normalmente haces.
He leído también varios artículos sobre como tus diferentes hobbies te pueden ayudar en los negocios o tu trabajo. La programación no es la excepción.
Perdón por no dar más referencias, pero no las recuerdo ni las guardé :)
— Next Page »