Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

Yo soy el patito de goma

  • 1
Ejercitando hoy mi modestia afirmaré que durante mis años en la carrera a la gente siempre le ha gustado venir a preguntarme dudas cuando el código de sus prácticas no funcionaba con ellos esperaban. Lo curioso es que en la mayoría de las ocasiones mis aportes para alcanzar la solución rallaban el nulo. Las conversaciones en estas situaciones solían ser, más o menos, así:

- "Oye Loper, que no me funciona la práctica, mira a ver si puedes echarle una ojeada y encuentras el error, anda"
- "Venga, vale... A ver, cuéntame qué le pasa."
- "Pues mira, se supone que tendría que sumar estos valores a estos otros de aquí, y después sacarlos por pantalla..."
- "Aham. ¿Y cómo lo estás haciendo?"
- "Pues mira, primero leo los datos por aquí, los guardo en este vector, luego los opero desde el primero hasta... Oh, espera, esto está mal. Un momento, a ver..."
- "..."
- "Anda, ya funciona! Muchas gracias Loper, me lo has resuelto!"

Y así es como yo quedaba como el héroe local que salvaba el día al incauto programador mientras yo había hecho, a lo mejor... nada. Pero a la gente le servía. El otro día me enlazaron por el twitter un post donde descubrí que durante todos estos años he sido, en realidad, la versión animada antropomorfa del patito de goma. La entrada venía a decir lo siguiente:

Hay una completa metodología de desarrollo (cuyo nombre ahora no recuerdo) que hace uso de este fenómeno.
La llamamos el Método de Depuración del Pato Goma. Y funciona así:

1. Pide, suplica, roba, compra, fabrica, o búscate la forma de conseguir un pato de goma (de esos de la bañera).

2. Ponlo en el escritorio y explícale que vas a repasar un bloque de código con él, si no le importa.

3. Explícale al pato lo que tu código debe hacer y cuéntaselo en detalle, línea por línea.

4. En algún momento, le dirás al pato lo que el siguiente paso debe hacer y entonces te darás cuentas de que no es lo que está haciendo en realidad. El pato permanecerá sentado tranquilamente, feliz de saber que te ha ayudado en tu camino.

Funciona siempre.

Como no tengo un patito de goma a mano, a partir de ahora le voy a empezar a explicarle mi código al Dalek que me trajo Zor de Londres (gracias de nuevo!) a ver si con su ayuda los bugs son exterminados!

Hotot + Karmacracy

  • 2
Hay proyectos que entran por los ojos al momento. Te llaman la atención su potencia, su sencillez, la idea que explotan o su presentación. A mí me ha pasado recientemente con dos proyectos relacionados con Twitter. Por un lado está Hotot, un cliente sencillo pero con bastante potencial que está todavía en fase alfa de desarrollo. Por otro Karmacracy, un acortador de URLs que se distingue del resto añadiendo un sistema de ranking de los usuarios basado en el denominado "Karma", que se mide en función del número de clicks que se han hecho, cantidad de gente que ha compartido el mismo enlace que tú, etc.

Uno de los deberes pendientes de Hotot es que, a pesar de incorporar acortador automático de URLs, siempre usa bit.li y no deja alternativa al usuario para escoger el sistema a emplear. Y claro, usar Hotot para leer y escribir todos los tweets excepto aquellos que contengan links es un coñazo. De modo que como aquí es todo código y APIs abiertas y el fin de semana estaba empezando me descargué el código fuente del repositorio de Google Code donde se hospeda Hotot y me puse a indagar a ver cómo estaba eso hecho.  Lo primero con lo que me encontré fue que el cliente de twitter está escrito en Python y JavaScript, dos lenguajes que no he tocado en mi vida. Pero bueno, supuse que el lenguaje fuente no sería muy problemático para lo que yo pretendía hacer, me puse a dar vueltas por el código... Y finalmente lo encontré. Tras varias pruebas y descubrir que el cambio no funcionaba me puse en contacto con los chicos de Karmacracy para ver si podían resolverme el problema...

Y el sábado por la mañana me dieron la solución! Básicamente faltaba que la dirección que ellos devolvían viniese en un formato determinado. Y una vez añadido eso el cambio funcionó! Además, es una alegría ver que me mencionen en la sección de su web donde explican cómo activar Karmacracy en Hotot.

Una vez hecho eso el siguiente paso era permitir a cada usuario que utilizase el acortador de URLs que quisiese. Así que entre la prueba y error de ayer por la tarde y esta mañana, y un par de pinceladas de suerte hoy por la tarde, por fin lo he conseguido! He abierto un pequeño proyecto en Google Code para hospedarlo y ahora, una vez descargado, compilado e instalado, es posible modificar el acortador de URLs por defecto y poner el que cada uno quiera desde la ventana de Preferencias. El código fuente de esta modificación, con la esperanza de que los desarrolladores valoren que merece la pena mezclarlo con la rama principal del proyecto, está alojado parcialmente aquí por si a alguien le interesa.

Para instalarlo en una Ubuntu hay que seguir los siguientes pasos:

1. Descargar el código. Para ello, desde una línea de comandos, introduce:

hg clone https://enriqueinterloper-hotot.googlecode.com/hg/ hotot

2. Entra en la carpeta hotot recién creada y escribe:

./setup.py build && sudo ./setup.py install --install-layout deb

Ya está! De este modo tendréis Hotot instalado y podréis elegir el acortador de URLs que queráis.