La Coctelera

Apuntes prestados

En el parque somos mayoría

Categoría: personas

2 Noviembre 2011

Luis Villa (aka <maguisso/>, aka <grancomo/>, aka <dispersiontotal/>)

nando 2, nov , 1 comentario

"El testing es para cobardes"

Hace una semana Luis vino hasta mi puesto y me dijo que se iba. Mentiría si dijese que me sorprendió la noticia. No es que me la esperase de él concretamente, pero es que a estas alturas del partido ya me la espero de cualquiera.

Mientras subíamos por las escaleras hacia la cocina le dije que para mí nos dejaba un "mítico", a lo que como no podía ser de otra forma me respondíó:

"¿Mítico? Los mitos suenan a gente que se muere y [...]"

Charlando en la cocina sobre los principios, sobre los éxitos y los fracasos en el camino, recordé que este blog surgió como un experimento en el que las personas podían tener su post. Y en estos días me he dado cuenta de que no puedo dejar de retomar aquella costumbre para dedicarle uno a él, al gran "Luis Bill" :)

Embajador de La Ruby Room por donde quiera que fuese, ha sido desde el principio (aunque le llevó un tiempo entrar "en plantilla", su apoyo y su Dispersión Total estuvieron en The Cocktail desde que yo recuerdo) una cucharilla que nos agitaba a todos para que nos sintiésemos parte del mismo cóctel.

Mi Motivación de Base estos días está un poquito tocada, pero tal y como intentaba contar en mi pasada charla en el Wild Congress, esa es, en el fondo, muy buena señal. Es señal de que he tenido la suerte de trabajar y disfrutar de un Gran Compañero.

1 comentario Posteado por: nando En: personas compártelo Tags: grande, omnisciencia, lared

18 Mayo 2009

Habemus Iria!!!

nando 18, may , 14 comentarios

Con tres kilos y seiscientos gramos repartidos a lo largo de cincuenta y un centímetros, el pasado miércoles a las doce y treinta y cinco de la mañana Iria se dejó abrazar por primera vez como si tal cosa.

Yo sin embargo no podía dejar de babear de nuevo ante semejante maravilla.

Más amor a dolor.

14 comentarios Posteado por: nando En: personas compártelo Tags: iria

30 Noviembre 2008

Bryan Helmkamp <brynary/>

nando 30, nov , 1 comentario

Mi intención inicial era contar más en detalle cómo echar a correr un navegador con nuestras features de Cucumber vía Webrat y Selenium. Después de la charla en la Conferencia Rails varias personas se han puesto en contacto con nosotros para contarnos sus dificultades a la hora de conseguir dicho objetivo.

Sin embargo en este caso, por suerte, no es tan fácil como escribir un post o dar una charla sobre el asunto. Ésta misma semana Bryan Helmkamp ha estado subiendo cambios a Webrat que harán que tanto parte de lo que contamos en la conferencia como todo lo que yo pretendía contar en este post sea, si no ruido, sí, al menos, algo totalmente prescindible en una primera toma de contacto.

Dichos cambios están siendo la solución "oficial" a dichos problemas, que son básicamente tres:
- Lanzar el servidor de Selenium-RC (o Selenium Grid)
- Lanzar la versión actual de nuestra aplicación (y pararla cuando terminen los tests)
- Embeber la sesión de Selenium dentro de la API de Webrat (para que la definición de un step sea independiente del tipo de sesión)

De momento no hay (o yo no he encontrado) nada de documentación, pero echando un ojillo al código he visto que ha cambiado la dependencia de la gema del cliente de Selenium (selenium-client en lugar de Selenium como hasta ahora) y que para lanzar el servidor de Selenium-RC lo busca en vendor/selenium-server.jar.

También he visto que, por ahora, la mayoría de las opciones (navegador que queremos lanzar, puerto para nuestra apliación, ubicación del servidor de Selenium, etc.) están metidas "a fuego" sin posibilidad de alterarlas desde fuera. Pero seguro que esto último no tarda en cambiar.

Al igual que el RSpec Story Runner fue un entorno crudo en el que muchas carencias eran resueltas por cada cual a su manera, me da la sensación de que Webrat con Selenium está justo cambiando de color y que en poco tiempo estará maduro y listo para ser disfrutado sin indigestiones.

Go Brynary, Go!

http://www.brynary.com

1 comentario Posteado por: nando En: personas compártelo Tags: webrat, selenium, cucumber

14 Agosto 2008

Aslak Hellesøy <aslak/>

nando 14, ago , 3 comentarios

Si lo llega a hacer premeditadamente seguro que no le sale. El pasado jueves día 7, coincidiendo con el día en el que cumplía mis treinta y cinco agostos, Aslak mandaba el siguiente correo a la lista de desarrollo de RSpec:

[ANN] Cucumber

Nice vegetable, nice tool.

It's my reimplementation of the story runner, addressing several
shortcomings of the current one. And I'm calling them features instead
of stories now, because that is what they are.

http://github.com/aslakhellesoy/cucumber/ (The home page)
http://gojko.net/2008/08/06/cucumber-next-generation-ruby-bdd-tool/
(Thanks Gojko)

Take a look - it's taking shape.

Aslak

Una de la principales virtudes del Cucumber de Aslak frente al Story Runner de RSpec es la posibilidad de escribir las "plain text stories" en cualquier idioma.

Lo cachondo del asunto es que Aslak tiene asignada la implementación de dicha funcionalidad dentro de RSpec desde que la solicité a primeros de año junto con el parche para la versión de aquel momento y, como no, su "plain text story" asociada:


 Story: Writting stories in other languages
 
   As a non-english RSpec developer
   I want to write stories in my mother tongue
   So that I don't have to make an extra effort to know what's going on
 
   Scenario: Pending
     Given the file stories/plain_text_story_in_spanish.rb
     When I run it with the ruby interpreter
     Then the exit code should be 0
     And the stdout should match /1 scenarios: 0 succeeded, 0 failed, 1 pending/m
     And the stdout should match /4\) La portada de Mi Sitio en La Red/
 
   Scenario: Succeed
     Given the file stories/plain_text_story_in_spanish_with_steps.rb
     When I run it with the ruby interpreter
     Then the exit code should be 0
     And the stdout should match /1 scenarios: 1 succeeded, 0 failed, 0 pending/m
 

Era muy excitante ver como la versión sin el parche fallaba al ejecutarla y la parcheada campaba triunfal. Adiós TODO ambiguo. Hola Spec-ificación formal.

Sin embargo la realidad es que ha llovido bastante desde aquello, y viendo que seguramente Aslak escribirá sus historias en noruego utilizando Cucumber, me da la sensación de que seguirá lloviendo durante mucho más hasta que dicha posibilidad exista en la versión oficial de RSpec.

Espero probar Cucumber pronto, pero mientras tanto no me queda más remedio que mantener el legado que tenemos actualmente utilizando el Story Runner de RSpec. Para ello me he creado una rama de RSpec y le he metido los cambios para el soporte multilenguaje.

En cualquier caso lo que está claro es que Aslak ha resuelto mi deseo y me lo ha presentado justo el día de mi cumple... Takk så mye!

blog.aslakhellesoy.com

3 comentarios Posteado por: nando En: personas proyectos compártelo Tags: ruby, bdd, cucumber, stories, rspec

22 Octubre 2007

David Chelimsky <david/>

nando 22, oct , 1 comentario

Yo también pensaba que test/spec era la opción de BDD más "legacy-friendly", pero...

If you prefer test/spec’s style, that’s one thing, but I hate to see people making a choice based on inaccurate information.

... comentaba <david/> en “Be Dee Dee and Me” un mes después de que fuese publicado en Err The Blog, allá por mayo de este año.

Una de las cosas que más me emociona de dicho post es la generación de un esqueleto de especificación a partir de texto en lenguaje natural, casi puro y duro (en YAML ).

Es una simple tarea de rake pero si la utilizas, de repente te ves con tu página en blanco esperando a que simplemente expliques qué es lo que tienes que hacer. Sólo el ejercicio de definir el contexto es todo un desafío ya que, según me parece a mí, casi cada palabra del mismo debería formar parte del "glosario" de la aplicación.

Mi bautismo el pasado viernes en estos menesteres dio como resultado el siguiente texto en YAML :


La portada de un blog:
- deberia redirigir al indice del blog si tiene algun post publicado
- deberia redirigir al indice del fotolog si tiene algun fotopost publicado y ningun post
- deberia informar de que el blog no tiene contenidos si no tiene ningun post ni fotopost publicado

... y de éste a su definición formal, y de ésta a su implementación final. Toda una gozada, la verdad.

Por ese motivo cuando he pinchado en el enlace del autor del mencionado comentario me he llevado una agradable sorpresa. "Story Runner in Plain English", un post publicado hace media hora (¡calentito aún!) trata justamente de más de eso mismo.

Pero eso sí, en este caso con Rspec, la reina de la fiesta y actual protagonista de nuestras paellas en The Cocktail.

Con este material al menos debería poder cocinar un buen postre, ¿no?

http://blog.davidchelimsky.net/

1 comentario Posteado por: nando En: personas compártelo Tags: testspec, rspec, bdd, rails, ruby, yaml

16 Agosto 2007

Recargando la definición de los campos de un modelo (por Richard Livsey)

nando 16, ago , sin comentarios

Pues resulta que de un tiempo para acá venía sufriendo dolores en mi terminal al lanzar migraciones. Nada grave en realidad pero eso sí, bastante desagradables.

En particular con aquellas migraciones en las que tras la creación de una tabla le incorporamos algún campo nuevo que posteriormente utilizamos. Y era ahí justo, al utilizar ese nuevo campo, cuando sentía el pinchazo:


rake aborted!
undefined method `mi_nuevo_campo=' for #<ModeloUserType:0x9a6d0e8>

Normalmente el dolor se me pasaba con sólo lanzarla de nuevo: al cargar el modelo con la nueva estructura la migración pasaba sin problemas.

Pero en otras ocasiones ocurría que la migración en la que me aparecía el dolor, justo antes del mismo se realizaban operaciones irrepetibles, es decir, operaciones que al relanzar la migración fallaban, produciéndome un dolor mucho más grande.

Por suerte, gracias a Richard Livsey , en particualar gracias al siguiente comentario que le hacía en su blog a otro paciente con dolores similares, los míos ya son historia:

August 04 2007 at 11:57 Richard Livsey says...
[...]
In cases where the models db structure changes during a migration, you can call Model.reset_column_information to reload it.

Con su receta tras la incorporación de nuevos campos o justo antes de utilizarlos ya no he vuelto a sufrir molestias.

¡Gracias doctor!

sin comentarios Posteado por: nando En: personas apuntes compártelo Tags: rails, migrations, activerecord

13 Julio 2007

Maxim Krasnyansky <max />

nando 13, jul , 1 comentario

Hace ya tiempo que vengo sintiendo que GNU/Linux es para mí, entre otras cosas, el productor de mis sudokus favoritos. Lo que para muchos serían dolores de cabeza para mi son nuevos retos que me hacen pasar unos ratos bastante entretenido.

Lo bueno de estos sudokus es que para resolverlos en lugar de utilizar un algoritmo fijo es necesario uno variable basado fundamentalmente en el buceo: bucear por la red, bucear por código, bucear por ficheros de configuración, bucear por logs, etc. Y con cada inmersión vas aprendiendo no pocas peliculillas de este género, el digital.

Gracias a Max he logrado resolver en tiempo récord mi último sudoku:

Utilizando el móvil para acceder a Internet la conexión se me colgaba pasados unos pocos minutos

Primera inmersión: destino /var/log/syslog

Observo en el log del sistema los siguientes mensajes sospechosos:


 Jul 11 12:09:02 duende kernel: hci_acl_tx_to: hci0 ACL tx timeout
 Jul 11 12:09:02 duende kernel: hci_acl_tx_to: hci0 killing stalled ACL connection 36:ED:F1:63:19:00
 

Segunda inmersión: destino San Google

Buscado "ACL tx timeout" llego hasta una hebra del mismo nombre en una lista de usuarios de bluez, la pila de Bluetooth para Linux.

En uno de sus mensajes leo la siguiente pista de Max:

Looks like USB problems to me. For some people it helps to switch from usb-uhci.o to uhci.o

Y entonces me pregunto yo: ¿qué modulo tendré cargado en la máquina, usb-uhci o uhci?

Tercera inmersión: destino lsmod

Un lsmod me saca de dudas rápidamente: lástima, tengo cargado uhci, justo el que Max propone utilizar.

Pero no me rindo, veamos que otras opciones tengo...

Cuarta inmersión: destino modconf

Aleteando por los distintos menús de mi viejo kernel que amablemente me muestra modconf, dentro de kernel/drivers/usb/host me encuentro con los siguientes módulos: uhci, usb-uhci y usb-ohci.

Saco el módulo de uhci meto el de usb-uhci y... ¡bingo! La conexión ya no se corta.

Sudoku finiquitado (y ya comienzo a tener el mono de otro).

Does that help ?

Max

Yes, a lot. Thanks Max!

1 comentario Posteado por: nando En: personas compártelo Tags: usb, bluetooth, debian, modconf, lsmod, sudoku

28 Mayo 2007

Koichi Sasada <ko1/>

nando 28, may , sin comentarios

Gracias a la serie de entrevistas sobre la máquna virtual de Ruby realizadas por James Edward Gray II a Matz
y Ko1 me agrada descubrir que el Ruby Core
Team tiene, al menos, un miembro más. Cuando le preguntan sobre sus labores en el proyecto no se corta:

My role in Ruby's development? To steal VM hacking pleasure from Matz?

Tengo la sensación de que tanto la máquina virtual de Ruby en particular (en sus distintas implementaciones) como las máquinas virtuales en general (tanto las de aplicación como las de sistema) tienen sus motores cada día más calentitos.

Suerte que al fin y al cabo hablamos de bits y nada malo puede pasar el día que les dé por explotar.

sin comentarios Posteado por: nando En: personas compártelo Tags: ruby, yarv, vm