"Lo que yo aprendí de Drew Speedie"
PorAmby
En el salón plenario está agrupándose la gente. Vamos a tener una
sesión especial, dedicada a Drew Speedie, la preside Tamar Grannor y se
titula "Lo que aprendí de Drew Speedie" ¿Por qué Tamar? Tamar es
indiscutiblemente una de las figuras más importantes de la comunidad
internacional de Desarrolladores de VFP. Autora de varios libros,
incontables artículos y ponente habitual en Congresos, Conferencias y
encuentros de VFP. Habría mucho que contar; pero vamos a decir que es
editora técnica de la revista FoxPro Advisor. Tamar dejó su tributo a Drew
Speedie en un artículo para esta revista , se puede ver en:
http://foxproadvisor.com/doc/grant154
Precisamente para FoxPro Advisor escribió Drew Speedie incontable
cantidad de trucos y consejos. Tuvo una columna durante mucho tiempo. De
hecho, fue el primer editor de la columna "FoxPro Advisor Tips". Luego,
empeló esos trucos y sugerencias como estilo de sus presentaciones en las
Conferencias. Incluso las sesiones que Drew Speedie dejó preparados para
esta Conferencia Southwest Fox 2005, tienen esa estructura, muchos
ejemplos. ¿Has oído hablar de la secuencia LISAG = Load + Init +
Show + Activate + GotFocus? Pues fue Drew Speedie quien acuñó esta fórmula
LISAG para explicar el orden de eventos al instanciar formularios.
Tamar comenta que ha estado "buceando" por las revistas y que sería
interminable la noche si cuenta todo lo que ha podido aprender de Drew en
estos años. Recuerda que Drew fue el creador del framework Visual MaxFrame
Professional (http://www.visionpace.com/vmpsite).
Pues Tamar no estará sola en esta sesión, ha invitado a un grupo de gurús a
que comenten lo que han aprendido de Drew, ha sido muy buena idea.
Barbara Peich - Pues a mi me sirvió mucho el truco de emplear las
funciones JUSTEXT() y JUSTSTEM() que utilizadas con PROGRAM() puede dar
información sobre el objeto que realiza la llamada. Veamos un ejemplo:
* Nombre del método que realiza la llamada al procedimiento actual
lcCallingMethod = JUSTEXT(PROGRAM(PROGRAM(-1)-1))
* Devuelve la referencia con jerarquía de contenedores
* para el objeto cuyo método se está ejecutando
lcCallingObject = JUSTSTEM(PROGRAM(PROGRAM(-1)-1))
* Devuelve el objeto actual
lcThisObject = JUSTSTEM(PROGRAM())
IF lcThisObject == lcCallingObject
* el método ha sido llamado por un método de este mismo objeto
ELSE
* el método ha sido llamado por un método de otro objeto
ENDIF
Regresa Tamar quien comenta un tip que aprendió en 1995 sobre PAD() y
PADL().
Craig Boyd se refiere al empleo de Ctrl+C para copiar el texto de un
error en la ventana de comando o en el portapapeles. Este ejemplo fue
reproducido por Calvin Hsia y luego por Luis María Guayán en
http://www.portalfox.com/article.php?sid=1963
Tamar aprendió hace años que cuando estamos trabajando un formulario o
clase y nos movemos por los métodos si empleamos las teclas de movimiento
PgDn y PgUp nos movemos cíclicamente por todos los métodos en el mismo
orden en que fueron escritos, es realmente muy cómodo este proceder. Yo
lo utilizo, pero no se quien me lo habrá enseñado.
Rick Borup se refirió a la forma peculiar que tenía Drew Speedie de
presentar sus ponencias, solía emplear un grid con los ejemplos muy
comentados y con opción de ver el código o el ejemplo funcionando. Drew
decía que de esta forma dejaba mucho más que lo era posible comentar en el
breve tiempo que tenían para las sesiones (daba igual que fuera hora y
media, dos horas ...), Drew siempre tenía material de sobra para ofrecer.
Tamar recordó que en 1995 Drew mostró que con oprimir Ctrl+Shift+Alt se
vuelven invisibles las ventanas y podemos ver cualquier resultado que
tengamos en el escritorio de VFP, al soltarlas reaparecen las ventanas en
la misma posición y con la configuración de antes.
Tony Feltman se refirió a temas de controles y grids. Hay muchos
ejemplos con ideas de Drew sobre los grid. De hecho en esta conferencia
Drew Speedie iba a presentar una sesión con una colección de trucos e ideas
para trabajar con grids. Todas estas ideas las vamos a traducir. Pero
... esto no fue lo mejor, al menos para mí, lo mejor fue cuando Toni dijo
que "el mejor Tip que había aprendido de Drew era que los vendedores de
aplicaciones VFP podían llevarse bien y ayudarse entre ellos". WOW !
Genial.
Tamar comentó un poco más esta idea, ya que muchos de los ponentes en
estas conferencias son propietarios de aplicaciones, (Visual MaxFrame -
West Win Connection - StoneField Query - Minds Eye, Inc - Foxfire -
FoxUnit, etc.) Estos productos son competitivos, se venden a
desarrolladores VFP y hace muchos años que se ayudan entre ellos a pesar de
que en realidad son competencia.
Doug Hennig Comentó como Drew encontró una solución con BINDEVENT en el
Click del Header del Grid durante la beta de VFP 8.0, cambió una clase
Customer por una Empty, solucionó el problema y quedó mucho más ligera la
solución.
Tamar Granor recordó que en enero de 1997 Drew mostró que con CD y
retorno desde la ventana de comandos se sabía en que carpeta te encuentras
trabajando.
Rick Shummer aprendió cómo realizar un seguimiento de eventos eficiente
para depurar. Drew empleaba logs todo el tiempo, no escribía en los métodos
para que devolviera los mensajes sino que hacía BINDEVENT. Nosotros
podemos ver más de un ejemplo de cómo Drew esta técnica en el artículo "Lo
que nunca te contó tu madre sobre instanciar y destruir formularios"
http://www.portalfox.com/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=42.
Además, Rick Shummer reconoció que el estilo de Drew le ha inspirado
para incluir cada vez más ejemplo en sus presentaciones.
Tamar muestra como en las operaciones que necesitamos dejarle al usuario
la posibilidad de cancelar a mitad de procesamiento, Drew lo solucionaba
poniendo una propiedad como indicador con valores .T. y .F. y como esos
procesos son cíclicos, cuando el usuario oprimía la tecla o el comando para
cancelar solamente bastaba con cambiar el indicador a .F. y ya está,
quedaba roto el ciclo y se interrumpía la ejecución. Muy sencillo.
Rick Stralh mostró cómo cuando se deja el ratón oprimido sobre un botón
lo que se hace en realidad es BindEvent del evento Click del botón con un
Timer. Esto le ha sido muy útil a Rick Stralh en su aplicación Help Builder
http://www.west-wind.com/wwHelp/
Tamar Granor concluye diciendo con emoción que es muy raro encontrarse
aquí sin Drew Speedie, y será raro en los encuentros futuros, que lo vamos
a recordar todo el tiempo, porque siempre encontraremos enseñanzas en sus
Tips.
Pues yo no se si he logrado transmitir la atmósfera del encuentro. La
empresa para la que trabajaba Drew Speedie -
http://www.visionpace.com ofreció bebidas y pastas para acompañar la
velada. La gente iba y venía, comentaba y recordaba cuando había utilizado
este o aquel truco. La forma en que fue conducida la exposición nos mantuvo
minuto a minuto atentos a un nuevo legado, fue realmente muy difícil captar
los ejemplos para comentarlos luego en este resumen. Fue una fiesta muy
emotiva dentro de la fiesta grande del evento. Gracias a todos los
ponentes. Todos son grandes y han estado a la altura.
El evento termina; pero la gente se queda, es buen momento para
seguir compartiendo, conversando...¿no estábamos cansados? Pues si... la
verdad es que si; pero aun así, de irnos... nada. Luego en el hotel, como
ayer, hasta tarde....
Nos vemos en la próxima entrega, Reporte de la Conferencia Southwest
Fox 2005 - Día 15 de Octubre - Sesión de la mañana.
Saludos,
Ana
www.amby.net |