Entradas

Mostrando las entradas de mayo, 2007

PiensoPienso III

Imagen
Sigue la serie de Desarrollando desde la trinchera.: PiensoPienso II. Tengo una tabla con los valores Id* Descripcion 10 Diez 20 Veinte 30 Treinta Hago un procedimiento GeneXus que hace For each    If Null(Id) //siempre va a dar falso       Descripcion='DentroDelIF'    Endif    call(pActualizoDescripcion,ID,'Fijo') Endfor donde pActualizoDescripcion es parm(In:Id, In: &Descripcion); For each    Descripcion=&Descripcion Endfor commit Las preguntas son: 1) Cual es el contenido de la tabla al terminar el procedimiento? a) 10 Fijo 20 Fijo 30 Fijo b) 10 Diez 20 Veinte 30 Treinta c) 10 DentroDelIf 20 DentroDelIf 30 DentroDelIf 2) Cuantos UPDATES se realizan? a) 1 b) 3 c) 6 3) Si modifico el procedimiento comentandole el If/Endif For each //If Null(Id) // Descripcion='DentroDelIF' //Endif    call(pActualizoDescripcion,ID,'Fijo') Endfor Cual es el contenido de la tabla al t

Los mas y los menos de blogger.com

Imagen
La plataforma para creación y publicación de blogs de Google (www.blogger.com) tiene cosas muy buenas y cosas que me hacen calentar hasta el infinito y mas allá. Me gusta publicar posts, sin tener que pensar mucho, pues pienso que el blog es una buena forma de expresar lo que uno está haciendo y que los demás se enteren y lo ayuden. Aqui va la lista de las cosas que me gustan y las que no de blogger. Los + +a) Es gratis. No necesita explicación. +b) Tiene buenos tiempos de respuesta y se cae poco. +c) Esta bien indexada, si buscar por google encuentra rápido lo que se escribio en ellos. +d) Soporta la publicacion por email. +e) Avisa por mail por los posts a blogs y también comentarios. Los - -a) El editor que tiene es bastante malo. No tiene para poner tablas. -b) Incluir código de programas o xml en los post es PENOSO.... (o yo no lo se hacer) -c) No estan nada bien documentadas las opciones de feed de los blogs. -d) Agregar codigo javascript para el manejo de widgets, no es todo lo

PiensoPienso II

Imagen
Si cambio el procedimiento del problema anterior para que la actualización la realice en otro procedimiento de la forma For each   If Id=20     Call(pActualizoDescripcion,Id,'Veinte')   Endif EndFor Y ActualizoDescripcion es parm(In:Id, In: &Descripcion); For each   Descripcion=&Descripcion) Endfor Cuantos UPDATE hace ahora? a) 1 b) 3 c) 6

PiensoPienso I

Imagen
Mi padre siempre nos planetaba problemas a la hora de la cena. A los mas chicos, les tocaba VeoVeo, y a los mas grandes PiensoPienso. Como somos 6 hermanos y yo soy el tercero algunas veces podia lucirme con los primeros y me costaban un poco más los segundos. Tiro un problema "Facil y de ingenio", por si alguien quiere resolverlo y contestarlo en los comentarios. He visto que alguno de estos conceptos les cuesta a los que recien empiezan con Genexus y producen muchos bloqueos en la base de datos. Tengo una tabla con los valores Id* Descripcion 10 Diez 20 Entre Diez y Treinta 30 Treinta Hago un procedimiento GeneXus que hace For each    If Id=20      Descripcion='Veinte'    Endif Endfor La pregunta es: Cuantas sentencias UPDATE se realizan en la base de datos? Para los mas chicos, va con multiple opción a) 1 b) 3 c) 6

Professionalism and Test-Driven Development

Imagen
Estaba leyendo la revista Software de la IEEE (siempre tiene algo interesante) y encontré en el articulo " Profesionalism and Test-Driven Development ". Está bien escrito, aunque de un modo un poco pedante para mi gusto. Una cosa que me resultó llamativa, fue el paralelismo que hace entre la resistencia que tenemos como industria a aceptar algunos métodos que funcionan (en este caso TDD) y la técnica de los médicos para lavarse las manos antes de los exámenes a las embarazadas, para evitar muertes de los niños recién nacidos. Según el autor, parte de la resistencia para aceptar estas técnicas de diseño no son tanto por el trabajo que da el implementarlas, sino por lo dificil que es aceptar todos los errores cometidos con anterioridad, que en nuestro caso de informáticos serían todos los bugs que metimos en nuestros sistemas. Counterintuition In my frequent lectures and courses, I’ve found that many developers consider TDD to be counterintuitive. The extremely short cycles bet

reCAPTCHA: Ayudando a digitalizar libros antiguos.

Imagen
La idea de reCAPTCHA , es hacer algo util con la cantidad de CAPTCHAS que los usuarios ingresan a diario en Internet (unas 150.000 horas de trabajo diarios, de 60 millones de ingresos al dia). En esta, presentan palabras de un texto escaneado de un libro antiguo al cual el OCR (Optical Character Recognition) no pudo capturar todas las palabras en forma correcta. Utilizando este Captcha, estamos ayudando a que los libros digitalizados de Internet Archive , sean mas exactos. reCAPTCHA improves the process of digitizing books by sending words that cannot be read by computers to the Web in the form of CAPTCHAs for humans to decipher. More specifically, each word that cannot be read correctly by OCR is placed on an image and used as a CAPTCHA. This is possible because most OCR programs alert you when a word cannot be read correctly.

TV en celulares.

El fin de semana, un amigo me mostró Canal 12 (televisión abierta en Montevideo) en su celular. Creo que aun está en prototipo, pues el trabaja para una de las empresas que esta haciendo las instalaciones. Me llamó la atención lo bien que se veía y se oía, a pesar de estar en medio del campo y solo captaba GPRS.

Telefonos celulares en Uruguay

Imagen
La semana pasada, nos llegó un reporte de la empresa que administra la base de datos de Aduanas de Uruguay, en la que nos decía que había una consulta que estaba consumiendo demasiados recursos, tal como hacen habitualmente. Al ponernos a estudiar la misma, vimos que las sentencias SQL accedian a la tabla de Celulares, que es donde se registran los telefonos celulares que se ingresan al país y después son habilitados por los operadores telefónicos. Dicho registro se realiza desde el año 2003 y me llamó la atención que teníamos 4.620.000 registros!! . Esto es unos 100.000 al mes. Considerando que hay muchos celulares que ingresan sin ser registrados, haciendo una cuenta rápida, me da que los TODOS los uruguayos que están en capacidad de usar celular, están cambiando el celular cada 2 años.

Programando por un sueño

Imagen
En A tirarse al agua , José Lamas explica el GeneXus Challenge que es un concurso sobre programación en GeneXus. Aun no me quedó claro si sera para la rocha o se podrá usar la 9.0 (aunque supongo que si), ni los jurados, ni los premios, pero son cosas que se van a ir conociendo con el pasar de los dias.. Va a estar divertido y seria bueno que se anoten varios grupos. Espero que la reforma tributaria y además 2 migraciones a GX 9.0 en proceso deje tiempo para participar en alguna categoria... Voy a hacer lo posible por estar, pues va a estar bueno.

TOM, gato bandido!

Imagen
Hace unos días, en Concepto se terminó la migración de una aplicación a su funcionamiento full web. Esta migración (otra mas y van.....) esta trae de yapa un cambio del modelo de negocio, por lo que pasaría a ser algo del tipo de SaaS. Veremos como nos va. Cuando hicimos las pruebas en la intranet, todo funciona muy bien. La segunda etapa era hacer lo mismo en internet, para empezar a ver como podría ser para un usuario real, estar todo el día con una aplicación en el web, con sus latencias, interrupciones y demás. Si bien tenemos mucha experiencia en poner aplicaciones en internet, cada aplicacion tiene sus particularidades y esta era la primera hosteada con tomcat que ibamos a usar en para cosas de "mision crítica". Las primeras pruebas que realizamos en internet, vimos que la performance si bien no era espantosa, no era apta para poder trabajar todo el día sobre ella. Haciendo algunas mediciones, se ve que las páginas demoran un tiempo fijo (unos 8 segundos) para cargar, e

GeneXus es Ortogonal?

Imagen
Lei con interés el whitepaper sobre DESARROLLO BASADO EN EL CONOCIMIENTO , de Breogán Gonda y Nicolás Jodal. Me pareció un buen resumen sobre Genexus y bien escrito. Me encontré con: Ortogonalidad . Los objetos que en un determinado momento constituyen el modelo deben ser independientes entre sí. La adición de un nuevo objeto o su modificación o eliminación no implicarán la necesidad de modificar ningún otro objeto. Mi concepto de Ortogonal, (algo curzado en angulo recto, matrices ortogonales que al multiplicarla por su transpuesta da la matriz identidad, proyeccion ortogonal, etc) no me calza con lo que quieren transmitir de los objetos. Para mi seria algo asi como independencia. Me preocupa estar trabajando con una "herramienta ortogonal" y no saber ni siquiera lo que significa. :) Posiblemente me falte conocer alguna acepción de la palabra.

Migrando a GeneXus 9.0

Imagen
Esta semana entró en producción el SIGE en Genexus 9.0, en algunos clientes. Comparada con las anteriores, la migración fue un éxito y bastante indolora, pues pasamos una aplicacion java generada con GX 8.0 a java con GX 9.0 Los pasos realizados fueron: 1) Copiar la KB (directorio raíz, kbdata y programas externos). Revisar cuidadosamente todas las propiedades. 2) Ejecutar un rebuild de la base de conocimiento con un rbld -Y y convertirla a 9.0 3) Especificar todos los objetos (build all) con la opcion de Optimize Find Navigation en NO y luego utilizar el Comparador de Navegaciones . 4) Revisar todas las diferencias de navegacion y arreglarlos o encontrarle explicacion. 5) Revisar todos los objetos que tienen Allownulls() y ver si no conviene pasarlos al nuevo manejo de Nulls. Opcionales: 6) Leer detenidamente GXNulls y NullsProperty para entender las diferencias en el manejo de nulls. 7) Hacer el curso de Actualización Genexus 9.0 , donde ver los videos es gratis. Están realmente m

Efectos secundarios y mi licencia para bloggear.

Desde hace tres días estoy sin voz y un poco de dolor de garganta. Fui al médico y me recetó un a pastillitas mágicas. Por deformación profesional lei el "manual de usuario" del medicamento. Con gran traquilidad leo: EFECTOS SECUNDARIOS. Se han descrito, hipokalemia, retención hidrosalina, hipertensión arterial, síndrome de Cushing, disminución de la tolerancia a la glucosa, atrofia muscular, osteoporosis, úlceras gastroduodenales, hemorragias digestivas, retardo de la cicatrización, acné, hipertricosis, hiperexitación, euforia, estados confusionales o de delirio , glaucoma y cataratas. El efecto secundario potencialmente más grave es el bloqueo del eje hipotálamo-hipofisario, que puede desencadenar una insuficiencia suprarrenal aguda. Si en los próximos 5 dias publico alguna incoherencia (mayor que las habituales), sepan disculpar, pero puedo atribuirlo a "los estados confusionales o de delirio".

Microsoft Popfly

Imagen
Microsoft Popfly parece bueno!! Popfly is the fun, easy way to build and share mashups, gadgets, Web pages, and applications. Popfly consists of two parts: 1 Popfly Creator is a set of online visual tools for building Web pages and mashups. 2 Popfly Space is an online community of creators where you can host, share, rate, comment and even remix creations from other Popfly users. Popfly Screencast De cualquier forma creo que lo mejor es ver el video, para entender que es lo que se va poder hacer con esta herramienta. Están en una version alpha por invitación, pero me anoté para ver si puedo probarla.

Cual es el mejor lenguaje de programación para niños?

Imagen
Desde hace unos días estoy buscando algún lenguaje de programación para mis hijos. Creo que son un poco chicos (11, 9 y 7 años) para empezar a poner "for each" en la trial de Genexus, por lo que empecé a buscar algo que les permitiera sentir que ellos pueden dar instrucciones de forma de lograr que la computadora haga lo que ellos quieran. Una buena opción son los SIMS II, que si bien es un juego, tiene mucho de lo que van a tener que hacer ellos en el futuro. Creo que es un buen adelanto de lo que van a ser los lenguajes de programación en el futuro. En este "juego" pueden diseñar cosas en forma gráfica (tipo CAD en 3D), le dan secuencias de instrucciones a diferentes agentes para que hagan lo que se les ordena, hay que lograr objetivos, ejecuta cosas en paralelo, etc. Una vez escuché a Juan Grompone decir que los juegos en computadora son una excelente preparación para las niños (y no tan niños) para formalos y estoy muy de acuerdo con esta opinión. Por otro la

Planeta Genexus

Imagen
Me incorporé a Planeta GeneXus . Es una idea muy buena el poder tener concentrados en un sólo lugar todos los blogs relacionados con GeneXus. Creo que ayuda mucho a la creación de masa crítica y a la polinización cruzada de ideas que ayuda a mejorar cualquier comunidad. Me surgieron algunos problemas con la inclusión en el sitio. En primer lugar, para incorporarse, es razonable tener un resumen de los post, para que el sitio no quede demasiado pesado. Esto implica que debo cambiar el feed de mi blog para que publique solo los primeros parrafos del post. Creo que si bien esto es bueno para este caso, es malo para los que nos gusta leer los posts con diferentes RSS Readers. Si alguien sabe como hacer que blogger publique simultanemente feeds largos y cortos, me avisa. No lo encontré. Puede ser que esa funcionalidad la brinde planet, pero no lo conozco ni un poquito. Otra cosa que pasó (disculpas a los que leen en blog.genexus.com!!) es que este post, se ve con una imágen de 1600 x 1200

Techniques for testing Data Access Code - ISerializable - Roy Osherove's Blog

En Techniques for testing Data Access Code : Roy Osherove publicó los slides y el código que utiliza para las demo de como testear el código de acceso a datos. Plantea algunas soluciones al problema del testeo unitario con bases de datos, como es el tema de los rollback para dejar todo como estaba al empezar, el tema de las columnas con Autonumber, etc. Está bueno para sacar ejemplos y adaptarlos a la realidad de GeneXus y ver si de una vez por todas se puede tener un porting de un xUnit en GX. Aunque no hay audio de la canción del final, la letra está buena.

Procesar IIS Log con sentencias SQL

Hace un tiempo me llamaron de una empresa pues estaba teniendo problemas con el servidor IIS pues tenía tiempos de respuestas malos. Se necesitaba un diagnóstico rápido para poder ver que era lo que estaba sucediendo. La aplicacion estaba generada con GeneXus 8.0 y .NET, y corria sobre un IIS 6. Si bien en otros casos utilizamos herramientas mas sofisticadas (por ejemplo el awstats , que es gratis y bueno) para el procesamiento de logs, en este caso como se necesitaban realizar algunas consultas puntuales ad-hoc, decidí utilizar el viejo y querido SQL server para procesar los logs. El paso a paso de lo que hice fue: 1) Copiar los archivos de los IIS para mi disco local. Eran de unos 130Mb x dia x Servidor del NLB y tenian el formato exAAMMDD.log que es el default del IIS 6. Para procesar varios archivos, en una sola pasada, lo mejor es concatenarlos todos de la forma copy ex*.log logiis.txt 2) Agregarle una linea de títulos... (para que quede mas fácil de cargar con DTS) Es la tercer

Combinaciones de colores - GenoPal - Online

Imagen
En GenoPal™ Online se pueden encontrar varias combinaciones de colores que sirven para el diseño de sitios web. Para aquellos como yo, que se les dificulta combinar el pantalón con la camisa o el cinturón y los zapatos, es de alguna ayuda que otros que nos faciliten la tarea.

Patterns, algunas reflexiones y lo que falta al Summarizedby

Imagen
Hay algunas funcionalidades que tengo ganas de agregarle al SummarizedBy Pattern , que no he realizado por falta de tiempo. Lo que mas me gustaria hacer y no es demasiado complicado es tener una comparación de periodos. Lo que no se si conviene definirlo como un pattern nuevo o metérselo al mismo SummarizedBy Pattern. En algún momento habíamos intercambiado algunas ideas con Nicolás Jodal, y el era de la idea de tener "vistas" de los datos diferentes y poder incorporar esas vistas al WorkWith. A mi esa idea me gusta, pero no lo veo muy fácil de implementar con la herramienta de patterns como está en la 9.0, porque creo que quedaria demasiado complejo todo junto y seria mejor dividirlo en "patternlet" o "subpatterns" que se pudieran combinar de diferentes maneras. El paradigma seria, si hago un "Trabajar con Clientes", podria ver una grilla de los clientes (como el WW actual), un ranking de las facturas de ese cliente (SummBy), una grafica de evo

CSS Drive- Ejemplos y consejos para el uso de CSS

Imagen
Cualquiera que esté desarrollando aplicaciones web con GeneXus, termina topándose con CSS (directa o indirectamente) con el editor de temas. En CSS Drive hay buenos ejemplos de como se pueden hacer "cosas interesantes" utilizando CSS. Por ejemplo, imagenes que ajustan su tamaño (hay que cambiar el tamaño del font para verlo) , manejo de botones , compresor de CSS y un montón de etcéteras mas. Algunas de estas funcionalidades no son difíciles de incorporar a las aplicaciones hechas con GeneXus. Hay algunas que si, porque necesitan un HTML generado de forma especial, pero igual vale la pena.

Motigo | ShortUrl

En Motigo | ShortUrl se pueden definir url cortas para recordar facilmente. Yo defini algunas que uso a menudo http://sac.fast2.de/ es el WEBSAC de Artech http://it.fast2.de/ el el Issue tracking y otras varias mas de uso mas personal. Me sirven porque muchas veces estoy conectandome desde máquinas de clientes y con diferentes exploradores donde no tengo los favoritos a mano.

Virtualización - Dejavu - Esa película ya la vi.

Imagen
Cuando leo artículos sobre virtualización y todas sus ventajas, no hago mas que acordarme de los viejos y (nunca) queridos mainframes y sus múltiples sistemas operativos, máquinas virtuales y todas las siglas de tres y cuatro letras que uno pueda imaginarse. Todos los que hoy argumentan las ventajas de la virtualización, fueron los que dijeron que los mainframes eran dinosaurios en extinción, porque eran muy difíciles de administrar, el personal que los manejaba era muy caros y difíciles de encontrar, el hardware era caro y propietario, etc, etc. No estaremos creando los próximos dinosaurios?. Dentro de algunos (pocos) años, va a salir alguna empresa nueva, que diga que la computación centralizada "ya fue" y que los servidores con sistema operativo legacy (Windows y Linux) tienen una complejidad innecesaria, que tener tantas máquinas virtuales sobre un mismo equipo es inseguro, difícil de administrar y que es mejor utilizar máquinas mas sencillas (seguramente móviles) y volv

Lulu.com - Auto Publicación - Gratis

Imagen
GusCarr me recomendó el sitio lulu.com. Por el nombre, parecía un sitio de chicas ligeras de ropa, pero me encontré con Lulu.com - Auto Publicación - Gratis : " Publica y Vende en el Mundo Entero" Lulu es rápido, fácil y gratis Publica y vende fácilmente en cuestión de minutos. Sin costos iniciales. Sin pedidos mínimos. Ten el control de los derechos. Fija tu propio precio. Cada producto se imprime en el momento en que se hace el pedido. Sin exceso de inventario." La idea está muy buena, para los que tengan que publicar cantidades pequeñas de sus publicaciones (como suele ocurrir en Uruguay :( ).

Esculturas de papel por Richard Sweeney

Imagen
Aqui hay unas esculturas de papel espectaculares. A quienes les guste Escher (a mi me encanta), creo que pueden gustarles.

Costa Rica: Aduana de Limón entró sin problemas a sistema electrónico

Imagen
En Aduana de Limón entró sin problemas a sistema electrónico entre otras cosas dice: La aduana de Limón comenzó ayer sin problemas la implementación del Sistema de Tecnología de Información para el Control Aduanero (TICA). Autoridades de la aduana, así como trabajadores de distintas agencias aduanales, confirmaron que no hubo inconvenientes ni “percances” por el cambio al sistema tecnológico. Este sistema interconecta los puestos aduaneros por medios electrónicos y elimina los trámites en papel. Ayer por la tarde el movimiento en esa aduana fue normal y en el puerto Alemán la salida de contenedores no tuvo contratiempos, según lo confirmó La Nación. y Soporte. Por su parte, Guillermo Zuñiga, ministro de Hacienda, dijo que ayer se hizo una revisión de los sistemas con asistencia de los técnicos de Uruguay que vinieron a dar mantenimiento al TICA. Parece que el ministro sigue contento con la actuación nuestra, y el sistema no tuvo grandes inconvenientes (los hubieron, pero los pudimos s

De cerca, nadie es normal

Imagen
Ayer viaje de San José (Costa Rica) a Montevideo . En los preparativos del despegue, estaba cómodamente sentado en el asiento 14A (junto al 14F, son los mas recomendables del avión 737-700, pues quedan una fila atrás de la puerta de emergencia y tienen un espacio libre para estirar las piernas). Veo llegar un un señor elegantemente ataviado, que parecía un empresario centroamericano, traje negro impecable, camisa amarilla y combinado con pañuelo del mismo color en el bolsillo del saco. La mezcla aurinegra no es de mi agrado, pero gente con mal gusto hay en todas partes del mundo. De su maletín de cuero, saca un rollo de papel (como el que usan en las camillas de los hospitales) y empapela su asiento (14c) desde el apoya cabezas hasta el piso y luego procede a sentarse. Fue una primer señal que me preparo para un viaje "divertido". Apareció una señora que ocupó el asiento 14b, con lo que me perdí algunos de los detalles mas de los preparativos del señor. A poco de des

Sonido 3D - Realmente asombroso..

Imagen
Escuchando con auriculares el sonido en Virtual Barbershop realmente pude entender lo que se puede hacer con el sonido 3D. Realmente es increible.. Conviene escucharlo con y sin auriculares para notar la diferencia y escucharlo en un lugar silencioso y con los ojos cerrados, a mi me dió la impresión que si me daba vuelta, iba a encontrar a Luigi y Manuel...

Reorganizacion engualichada en Genexus 9.0

Imagen
Diego Crutas, me mostró una reorganizacion en Genexus 9.0 (con los ultimos upgrades) La misma hacia cosas que no tenian nada que ver con los cambios de estrucutra que se habian realizado. Estuvimos haciendo varias pruebas y siempre hacia lo mismo. Era como si estuviera teniendo problemas con los identificadores de las tablas, pues mostraba como que iba a reorganizar una tabla que no era la correcta, pero ademas mostraba un error que no se de donde lo sacaba (Atributo secundario AuxiliarDsc en mas de una tabla) que no era cierto. Bueno, estuvimos cerca de una hora tratando de hablar por telefono con soporte de Artech, pero siempre estuvieron ocupados. Me gusta Enya para escucharlo un rato, pero cuando repite el mismo tema unas 20 veces, ya aburre un poco. En un momento alguien me atendió y le conte todo mi problema. Enseguida me dijo, "Yo tambien estoy llamando por soporte". Hubiera sido comico, si la reorganizacion no fuera urgente... Probamos rebootea

Reorganizaciones en Genexus Rocha

Imagen
Aun no he tenido mucho tiempo de probarlas a fondo, pero las reorganizaciones de la version GeneXus Rocha, tienen una pinta espectacular. Los mayores cambios se explican aca y aca. Las que mas me gustaron fuern la generacion de scripts (con script previos y posteriores que van a ser muy utiles para realizar backups, habilitar/desabilitar la replicacion, recompilar triggers, actualizar estadisticas e histogramas, etc). Tambien esta muy buena la opcion de poder correr una reorganizacion, que muestre la cantidad de registros que tienen las tablas que se van a reorganizar, de forma de poder estimar el tiempo que puede demorar la reorganizacion de la base de datos. Otra opción muy importante es que se ejecutan en paralelo varios procesos, con lo teoricamente, vamos a acortar los tiempos de ejecucion de las reorganizacion. Otra mejora lateral, pero fundamental, es que la integridad referencial viene activada por defecto. Esto va a hacer que se detecten y corrijan los errores que esta funci

Marcos lo hizo de nuevo!

Marcos Crispino , publicó 3 extensiones más para GeneXus Rocha. Open Windows Explorer Adds menu commands to open a windows explorer at the Knowledge Base, Model or Web directory View Related Files Adds a tool window that shows all files related to the selected objects Remove Files On Delete When deleting an object from the Knoledge Base, prompts to delete all related files Aqui , explica mas de las mismas. Es bueno ver extensiones (como estas) que realizan tareas que ayudan y ahorran tiempo, agregando mucho valor.

Que mal le hace esto al deporte!!

Imagen
Después de una semana del partido contra Artech Centro, me seguía doliendo el pecho. Fui al médico y me dijo que tenía una costilla fisurada. No se puede hacer nada mas que calmar el dolor y aguantarse. El dolor que produce esta lesión es lindo, pues solo duele cuando uno respira. Si aguanto la respiración, no me duele.... En fin, creo que es hora que me despida de los campeonatos "oficiales" de futbol, porque en los mismos no se protege a los habilidosos...y a mi tampoco. Lo peor es que no voy a tener partido de despedida...