Friday, July 18, 2014

¿Estará el tiempo cuantizado?



Hoy me desperté pensando en la mecánica cuántica, en la cual disto parsecs de ser un experto, pero sé que entiendo algunas cosillas. Por ejemplo, Max Planck, que nació el mismo día que yo, fue quien inventó (¿descubrió?) lo que se llama la constante de Planck y que él denominó cuanto de acción, pues este ocurre en una unidad de tiempo, que llamamos "segundo". El cuanto de acción es 6.62606896(33) ×10-34, Joules por segundo, la cual es una cantidad por demás minúscula, sin embargo, tiene consecuencias notables.

Antes de Planck, los físicos pensaban que el mundo era contínuo. Las señales de radio, por ejemplo, parecían contínuas. ¿Dónde estaban estos cuantos y de qué estamos hablando al mencionar la cuantización de la energía? Pues no es muy difícil. Ocurre que por ejemplo, si una partícula adquiere energía, no puede adquirir una cantidad X de la misma, sino que es un múltiplo del cuanto de acción. Vamos, es como si yo quisiera pasar de un sitio A a un sitio B sin necesidad de pasar por sitios intermedios entre A y B. A eso se refiere la cuantización y el mundo, desde que Planck salió con su cuanto de acción, ya no fue el mismo.

Max Planck

Otro ejemplo, imaginen que tengo dos números 1 y 3. Si los números estuviesen cuantizados, podría pasar del 1 al 2 y de ahí al 3 sin problemas, pero como esto no ocurre en las matemáticas, para pasar del 1 al 2, tengo que pasar por el 1.1, 1.2, 1.3, etcétera, pero más aún, tengo que pasar por el 1.01, 1.02, 1.03, etcétera, hasta llegar al 1.1. Pero podría ser peor, puedo ser más fino y pasar del 1.001 al 1.002, 1.003 etcétera. Si hubiese una cuantización numérica, por ejemplo considerando solamente los enteros, el paso de un valor al que sigue tendría que ser por "cuantos de valor numérico entero", lo que significaría que pasaría del 1 al 2 sin tener que considerar los valores entre ellos.

Si tomamos esto en cuenta, pensemos en el tiempo. ¿Cuál es la mínima cantidad de tiempo en la que podemos pensar? ¿Un segundo? Naah, porque podemos medir décimas de segundo, centésimas de segundo e incluso no es una locura pensar en medir milésimas de segundo. Vamos, que en las Olimpiadas, en algunos deportes (natación, 100 metros planos), se miden hasta centésimas de segundo con cotidianidad.


Los fisicos buscan cada vez medir con más precisión, y la siguiente tabla, nos muestra que -al menos en principio- podríamos pensar en el yoctosegundo, es decir, 10-24 segundo. O sea, 0.0000000000000000000000001 de segundo. ¿Se puede ir aún más allá? El valor del segundo es bastante cotidiano y humano, y el hombre es la medida de todas las cosas, pero cuando empezamos a dividir el segundo, ¿hasta dónde podemos llegar? No lo sé y no sé si se sepa. Yo creo que hoy en día no existe el cuanto temporal, al cual en uno de mis más brillantes ingenio le llamaría "tempus", digo, que es la palabra latina para el "tiempo".

Dicho de otra manera, supongamos que existe una cantidad mínima de tiempo, así como el cuanto de acción de Planck, esto querría decir que pasar de un momento a otro no sería un contínuo, sino un pasaje discreto de eventos temporales, del tempus 1 al tempus 2 sin pasar por el tempus 0.5, por ejemplo.

¿Qué implicaciones tendría? No lo sé, pero me queda claro que la parte del tiempo y su naturaleza es aún demasiado misteriosa para los seres humanos. Pienso que de saberse este cuanto temporal, podríamos saber, por ejemplo, el tiempo que tarda en darse cuenta un campo de la existencia de un objeto en el mismo. A todas luces, para la realidad y dimensiones humanas, esto parece ser instantáneo, pero quizás no lo es, bueno, si es que existe tempus como tal.

Por otra parte, sospecho que quien estudie estas cosas debe tomar la velocidad de la luz como un parámetro importante para dilucidar la cuestión. Por alguna razón (y es uno de los preceptos en la teoría de Einstein), la velocidad de la luz es constante y la máxima que hay en el Universo conocido. ¿Por qué es así? Misterio. ¿Cómo serían las cosas si no fuese cierto esto? Tampoco lo sé. Mi ignorancia es pues, enciclopédica.

Monday, July 14, 2014

El espíritu deportivo y la FIFA


Los deportes -en general- promueven muchos valores, y por ello es importante que los niños y jóvenes hagan deporte. La competencia deportiva siempre es dura, a todos los niveles, pero al final del día deja enseñanzas importantes a todos. Cuando se gana, hay que saber ganar. Cuando se pierde, hay que felicitar al rival, aplaudirle y reconocer que fue mejor por las razones que sean, pues finalmente es el ganador.

Por ello ahora que terminó la Copa del Mundo 2014 en Brasil, lo que hizo el equipo argentino, comandado por Messi, resulta poco menos que lamentable. Al terminar el encuentro, la cara de Messi y de sus compañeros era casi como si les hubiesen apaleado el alma, como si alguien que querían se hubiese muerto. Y sí, el futbol desata pasiones y sin duda que a nadie le gusta perder (y menos una final de copa del mundo), pero al final de cuentas, los argentinos tendrían que reconocer que Alemania fue mejor en la cancha y por eso ganó. Es honorable aceptar la derrota y felicitar al contrario. No tiene nada de malo y además, todos estos jugadores tienen mil batallas jugadas. Sí, duele, y puede doler mucho, pero antes está el deportivismo.

Los argentinos, por ejemplo, recibieron su medalla como subcampeones mundiales pero se la quitaron todos. Vamos, todos querían la gloria de ser campeones peor no se pudo. El gesto de quitarse del cuello las medallas es poco deportivo. Creo que Brasil hizo algo peor, no estuvo en la premiación por el tercer lugar de la Copa Mundial (no me consta, me dijeron). Si fue así, deberían ser sancionados. La FIFA, que finalmente es un nido de ratas, no promueve los valores importantes como bien puede ser el aceptar la derrota, saber perder. No, les permite a los equipos hacer sus respectivos berrinches.

Eso me dejó mal sabor de boca. Messi recibió el balón de oro y ni siquiera una sonrisa esbozó. Así las cosas y finalmente es lamentable, pues se pisotea uno de los valores más importantes de la competencia deportiva.

Programación lúdica: Contemos letras, palabras y espacios


El pasado reto de la programación lúdica sigue abierto (el de los laberintos), pero hasta ahora he recibido dos programas y en mi opinión no cumplen con los requisitos pedidos. Así pues, lo dejaremos una semana más abierto a ver si hay algún programa que cumpla con lo pedido: que genere y que resuelva el laberinto.

Mientras tanto, abramos el siguiente reto de la programación lúdica. Se trata de tomar un texto -no necesita ningún formato especial, simple ASCII- y que el programa cuente cuantas palabras, espacios y letras tiene. Se calificará el programa que lo haga en el menor tiempo posible dado un texto especifico, el cual puede consultarse más abajo. Así, el software debe poder leer a memoria cualquier texto y contar lo que tiene que contar, desplegándolo cuando termine.Considérese que el archivo a procesar pueda ser de algunos megas, cuyo límite máximo lo pondremos en 10 megabytes, por lo que el software debe poder leer el documento ASCII sin problemas. Se buscará un texto lo suficientemente largo para que los tiempos de medición no sean tan cortos que sea difícil saber quién ganó, pero se pueden hacer algunas pruebas con los textos que aparecen en los enlaces más abajo.

Los tiempos los mediré en mi computadora y los resultados son inapelables.

¿El premio? Una taza con el logotipo de la Morsa a la mejor solución. Además hay una libretita y una gorra, cortesía de los buenos amigos de Qualcomm que se añade al premio. Esto solamente aplica a los programadores que vivan en el DF (mandar a provincia o a otros países una taza es estúpidamente costoso). En caso de que los concursantes sean de otros países o de la provincia mexicana, el premio será una memoria USB de al menos 8 GBytes y se les enviará por correo certificado. Y sí, sé que no son los grandes premios pero esto es lo que hay por el momento. Evidentemente quien gane será anunciado aquí y hasta tendrá sus quince minutos de fama.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto. Programas copiados de la web o que tengan ese sabor sospechoso de plagio podrán ser eliminados sin mayores consideraciones. El chiste de estos retos es que los programadores se animen a resolverlos, no que busquen la manera de hacer trampa. ¡Así que a afilar sus habilidades de programación!

Textos con los que se pueden hacer pruebas, pueden descargarse de aquí, aquí o aquí.

Friday, July 11, 2014

¿En qué piensan lo spammers?


Yo supondría que el correo no deseado, el spam, tendría que haber disminuido ya a estas alturas del cómputo y de la tecnología que vivimos. La razón me parecía obvia, por una parte, los clientes de correo son cada vez más sofisticados y ya filtran muchos mensajes que son sin duda spam. Por otra parte, ya la gente está más educada en el tema, o al menos suponía eso yo, y entonces eliminaría de inmediato, sin siquiera abrir esos mensajes por mera curiosidad. Lo interesante es que el correo chatarra sigue llegando por montones. Deshabilité los filtros para ver qué clase de correos basura me llegaban y en un día típico uno puede tener unos 200 mensajes o más, con el 95% al menos de spam puro.

Pero ¿en qué piensa el spammer cuando manda correos así? Primero en que tiene que poner en el título de su mensaje algo que llame la atención y apele al menos a la curiosidad del receptor a abrir el mensaje. Y encuentro que la mayoría de los mensajes actuales de spam que recibo ponen en su título que ya Google, Facebook o Yahoo, me han aceptado para trabajar con ellos, por unos 90 mil dólares al año. Claramente esto es mentira y si nos atrevemos a seguir el enlace que se nos indica, es probable que acabemos en un sitio donde venden medicinas como el viagra por correo. No hay de hecho ser muy inteligente para saber que Google, Yahoo o Facebook no pueden tener en sus planes contratarme cuando ni siquiera he pedido trabajar con ellos. Pero eso no les importa. Los spammers mienten sin ningún remordimiento.

Una vez que ya el spammer tiene el título de su correo, pondrá un texto lleno de enlaces sugestivos. Uno de ellos, el enlace para aceptar la contratación de Yahoo, Google o Facebook, o bien, en algunos casos, el mensaje de spam me ofrece el último iPhone o el Samsung Galaxy quién sabe qué versión de manera gratuita. Pero bueno, hay que ser muy ingenuos para pensar que hay algo gratis en este mundo. Aún así, mucha gente sigue dando click a estos mensajes en sus vanas esperanzas de hacerse de ese oscuro objeto del deseo que es un iPad o un iPhone.

Curiosamente, hay más tipos de correo spam. En ellos se nos advierte que hay información de nosotros en la red que nos deja mal parados, en una mala situación, ¡hay alguien que públicamente habla mal de mí! Por supuesto que esto es falso porque los spammers les mandan a millones de personas el mismo mensaje. El punto es que el spammer piensa que ya gana algo si el receptor abre al menos su mensaje. Por cierto, en un afán de evitar los filtros, algunos mensajes chatarra contienen un par de párrafos con un conjunto de palabras  de diversos temas y con ello, impedir que los filtros bayesianos bloqueén este tipo de mensajes.

Un correo chatarra que se sigue repitiendo es la carta de una señora que vive en África y que se muere, pero que vio nuestro correo y nos deja chorrocientos mil millones de panchólares. Por supuesto que esto es otra versión del penoso fraude nigeriano, que quiero creer ya nadie en su sano juicio puede creer. Pero la verdad no sé, a lo mejor estoy sobreestimando a la raza humana.

Pero todo esto me parece francamente idiota. Porque miren: me llega un mensaje de spam y me doy cuenta (al abrirlo) que sí lo es. Lo borro y punto. ¿Es que acaso hay estadísticas fíables que indiquen que un mensaje chatarra, al ser abierto, tiene más posibilidades de vendernos algo? Yo francamente dudo que existan siquiera este tipo de estadísticas.

Como sea, el spam parece que se quedará por el resto del Internet y de los siglos. Los mercachifles en todos los años y en cualquier país, suelen tener una nula ética o al menos -en su mayoría- esta ética simplemente no funciona como los seres humanos pensamos. Yo creo que esa idea de que se pueden seguir vendiendo cosas mandando correo spam es cada vez más obsoleta. Cuando los spammers se den cuenta que ya no venden, buscarán otra alternativa y dejarán de molestarnos con este tipo de correos que satura la red de redes y que la mayoría de las veces termina en la papelera de los usuarios. Mientras tanto, estos spammers buscarán entender cuáles son las necesidades primigenias de quien está en Internet: un nuevo teléfono inteligente, una tablet más poderosa que ninguna, un trabajo de ensueño en las empresas de tecnología más famosas o bien, esa necesidad única del ser humano de cerrar toda el razonamiento cuando un extraño les ofrece no sé cuantos millones de euros o dólares y además, creerles que puede ser verdad.

Tuesday, July 08, 2014

Ayúdate para que Dios te ayude


La foto que ilustra este artículo presenta el momento cuando la selección de Holanda anota el último penalty y se convierte en semifinalista al pasar sobre la aguerrida escuadra de Costa Rica. Quizás Holanda debió haber ganado en los tiempos reglamentados, pues empujó prácticamente todo el segundo tiempo y los dos tiempos extras. Tiros en el poste y un poco de suerte salvaron a los costarricenses. Sin embargo, el director técnico holandés hizo un cambio de último minuto: metió a su portero estrella, especialista en detener penales. Un grandulón que le detuvo dos tiros a los de Costa Rica.

Pero más allá de eso, la imagen mencionada es la que me llama la atención. ¿Por qué los costarricenses están de rodillas? ¿Por qué habrán pensado que podrían ganar si se arrodillan y le imploran a la divinidad por el triunfo que no pudieron obtener en la cancha? ¿Por qué tenemos que acudir a estos recursos sobrehumanos -si es que existen- porque con lo que tenemos nomás no podemos? ¿Y los holandeses? No, esos nunca se arrodillaron.

Es interesante ver que en los cuartos de final ganaron todos los favoritos. De nuevo se demuestra la fuerza de los mejores equipos y sí, hubo buenas intervenciones, como la de Colombia o la de Costa Rica mismo, pero no es suficiente. Para ganar una Copa del Mundo se requiere más. Y de nuevo se notó que estamos lejos los países chicos de lograr hacernos de una Copa Mundial.


En nuestros países latinos muchas veces pensamos -equivocadamente- que "ya nos toca", como si el ganar una Copa Mundial, o una medalla de oro en una Olimpiada, dependiese de una extraña justicia divina qu,e por alguna razón, no se hace presente en muchas ocasiones. Y curiosamente, cuando a algún deportista le sonríe la suerte, o su propio esfuerzo, y se hace de un premio, no le damos a la divinidad un ápice de crédito en la consecución de la meta.

Lo voy a decir de otra manera: en ajedrez hay un adagio que dice "ayúda a tus piezas para que ellas te ayuden". Y esto probablemente viene de algún adagio más popular aún: "ayudate para que Dios te ayude". Dicho de otra manera, me parece lamentable, de pena ajena, esta demostración de Costa Rica en la fase de finales.

Sunday, July 06, 2014

Programación lúdica: generación de laberintos


Hay muchas tareas en programación que las consideramos sencillas… hasta que tenemos que programarlas. Una idea que lleva tiempo en mi cabeza es la que se refiere a la creación y resolución de laberintos. ¿Qué tan difícil será crear un laberinto y más aún, hacer un programa que dé con la solución?

Esta es pues el nuevo reto de la programación lúdica: Escríbase un programa que genere un laberinto, y además, lo resuelva satisfactoriamente. Las dos partes son obligatorias.

Para esto, es interesante entender algunas ideas sobre este tema. Dice la Wikipedia: “Un laberinto es un pasatiempo gráfico consistente en trazar una línea desde un punto de origen situado en el exterior de un laberinto a uno de destino situado generalmente en el centro o bien en el lado opuesto. La dificultad consiste en encontrar un camino directo hasta el lugar deseado. El laberinto, por su propia configuración, contiene diferentes vías sin salida (de mayor o menor longitud) y sólo un recorrido correcto. Puede adoptar diferentes formas: cuadrado, ovalado, redondo, cuadrangular, etcétera”.

Crear un laberinto se puede hacer de la siguiente manera:

Considérese que el laberinto es una cuadrícula de celdas. Con esto en mente, empiece en cualquier celda (al azar incluso). Marque la celda actual como visitada y obtenga una lista de sus vecinos. Para cada vecino, puede empezar con uno de ellos al azar y: si el vecino no ha sido visitado, quite la pared entre esta celda y la del vecino, y entonces recursivamente con ese vecino como la celda actual, genérese el mismo algoritmo para los otros vecinos. Desde luego es una sugerencia. Cada quien puede usar la técnica que deseé.

Este programa, probablemente puedan encontrarlo en la red. No se trata pues de copiarlo de algún sitio. Si descubro una copia o si tengo dudas, me tomo la libertad de preguntarle al autor directamente cómo hizo, para garantizar así que la solución fue escrita y no copiada por el autor del programa. Juguemos pues limpiamente y aprendamos todos de estos retos.


¿El premio? Una taza con el logotipo de la Morsa a la mejor solución, en donde los criterios serán qué tan versátil es el programa: ¿Puedo cambiar el tamaño del laberinto creado? ¿Es muy lento, es muy rápido? ¿Qué opciones da al usuario para la creación del laberinto? Cabe decir que no ganará el primero que envíe su solución (aunque en caso de tener que desempatar, se dará prioridad a quien lo haya entregado antes)



Esto solamente aplica a los programadores que vivan en el DF (mandar a provincia o a otros países una taza es estúpidamente costoso). En caso de que los concursantes sean de otros países o de la provincia mexicana, el premio será una memoria USB de 8 GBytes al menos y se les enviará por correo certificado. Y sí, sé que no son los grandes premios pero mientras no tengamos patrocinadores, esto es lo que hay.

¡A darle entonces!

¿Por qué en México las cosas no funcionan?


Me cuenta un amigo que acaba de estar en San Francisco, que fue a una óptica a hacerse unos lentes. Le hicieron un examen que al parecer jamás le habían hecho en México. Le fotografiaron quién sabe con qué técnica, la parte trasera del ojo. La optica a la que fue sin duda estaba dotada de cualquier cantidad de tecnología para estos menesteres. Finalmente le hicieron su graduación, eligió un armazón para sus nuevos cristales y listo, en un par de horas tenía unos cientos de dólares menos en la cartera y unos anteojos completos. Mi amigo los pidió "progresivos", es decir, que no se ve la línea que se ven en algunos lentes bifocales. Y les preguntó que si no se acostumbraba a esto, podían cambiarselo. La óptica le indicó que tenía 90 días para pedir algún cambio (quiero creer que hay que estar en San Francisco para ello). Y que le harían sin costo alguno el cambio si no le acomodaban por algún motivo estos lentes. Mi amigo entonces preguntó si tenía que llevar la factura para hacer efectivo el cambio. La respuesta fue: "No. Nos da su nombre y eso es suficiente". Eso es lo que se llama dar servicio al cliente.

Obsérvese ahora el caso de Cablevisión: recibo mi estado de cuenta donde dice que no pagué el mes pasado. Intento hablar a Cablevisión -51 699 699- me contesta una grabadora que me pide digite mi estado de cuenta. Hago eso y entonces el sistema me manda a pagar. Es decir, no hay opción para reclamar por el error. Decido entonces escribir en el contacto de la página de cablevisión. Me pide mis datos, mi núm. de cuenta y de pronto, cuando quiero exponer mi queja, el sistema no acepta acentos, eñes, puntos, nada, solamente de la A..Z y de la a..z. Es decir, no se puede escribir un mensaje adecuadamente. ¿Qué programador de esa página decidió que los acentos y los signos de puntuación se pueden omitir? ¿Quién es el inepto que les hace la página? La cereza del pastel es cuando me pide que ponga un "captcha", es decir, un par de palabras que aparecen distorsionadas, en la intención de que no sea un programa el que esté escribiéndolos. Lo extraño y ridículo es que no se puede poner las palabras que piden porque simplemente no aparecen.

Me contacté entonces por la página de Facebook y alguien me contestó, en donde dice que "podía ayudarme", pero hasta ahí, dejó de contestar a mis mensajes. Eso es servicio a la mexicana.

Wednesday, July 02, 2014

Los neonazis mexicas

La noticia de esta semana es que cuatro adultos jóvenes, por llamarles de alguna manera, iniciaron un movimiento que denominaron el Movimiento Nacionalista Mexicano del Trabajo, que a todos esto, parece ser una rama del Partido Acción Nacional (PAN). Entre los valientes objetivos de este nuevo movimiento, están los de abolir la propagand, adopción, marchas y matrimonios homosexuales, para proteger así a la sociedad.

No sé a cuenta de qué un grupo de babosos decidió darse esta tarea monumental que tiene visos de fracasar evidentemente. Y ni sé quién les pidió que nos protegiera de estas "amenazas".  Todas las expresiones de esta naturaleza terminan por ser borradas con el tiempo.

Pero más allá de eso, sus ideales se parecen a los que tienen, por ejemplo, la industria discográfica, que sigue buscando ganar una batalla perdida contra la piratería. Vamos, que lo que tenemos y como lo tenemos, no tiene marcha atrás.

Por supuesto que estos nuevos nazis de petatiux no tienen la mínima credibilidad y probablemente sus grandes ideales sean producto de haber visto algo así en otros países. Vamos, incluso en la misma Alemania hay este tipo de grupos, minúsculos, pero los hay. Así que como pasa siempre con las modas de otras latitudes, llegan a México tarde o temprano.

Yo creo que este movimiento de estos babosos, disfrazados incluso a la usanza de oficiales nazis, tendrá su fin por falta de coro, por inanición o porque ellos mismos se aburrirán de jugar a ser nazis. (Y quizás sea lo mejor, porque en ocasiones eso produce un sinfín de delincuentes). Pero eso sí, habrán tenido sus 15 minutos de fama.

Monday, June 30, 2014

México eliminado del Mundial 2014


Pasó en el cuarto partido: México perdió contra Holanda en los últimos seis minutos del encuentro 2 a 1. Se acabó. Así es el futbol, así son los mundiales, así son las cosas. Para muchos el golpe fue muy duro. Se nos alimentó la esperanza cuando el seleccionado vencía a Camerún (que a la postre no traía nada), pero empatando contra el local Brasil y finalmente, ganándole a Croacia 3 a 1, en uno de los partidos más vistosos del tricolor.

Y ya se hablaba del quinto partido. Televisa salía con sus promocionales de "No hay quinto malo", etcétera.  Y como todo es negocio, nadie tiene la sensatez para decir en los medios que México no es ni ha sido una selección poderosa, un país potencia en futbol. De alguna manera arrastramos esta herencia y además, tenemos en contra un factor importante: somos del tercer mundo y aunque algunos lo duden, eso sí hace diferencias.

Villoro publicó un artículo interesante al respecto, en donde de alguna manera desgrana lo que pasó en este triste partido contra Holanda. Nos dejaron en el sueño de siempre, en ese mítico quinto encuentro que nunca llega. Para ser campeón del mundo hay que jugar siete partidos (y ganar el último, desde luego). Pero una vez más, fue derrotada la selección del "Piojo" Herrera y listo. A hacer maletas y a casa. ¿A esperar otro mundial?

Yo no veo con frecuencia el futbol y hace mucho que dejé de interesarme por el mismo. Sin embargo, no puedo sustraerme a todo este circo mediático que nos bombardeará hasta el 13 de julio de este año. Pero sé que a muchos mexicanos este partido fue como la noche triste. Algunos habrán llorado, como lo hicieron -creo- Giovanni Do Santos y el mismo Miguel Layún. Es duro y eso que los hombres no lloran es un mito. La frustración, el coraje de quedarse de nuevo en el "ya merito" es espantoso, es para soltar las de cocodrilo.

Pero quizás es más espantoso porque nos hicieron creer que el Piojo éste nos iba a traer la Copa Mundial al país. Si algo tiene de mérito este director técnico es que le dio una esperanza a una selección que pronosticaba ser un fracaso rotundo más mucho antes de llegar a octavos de final.

Yo creo que hay que aprender. Holanda -dice Villoro- fue subcampeón del mundo tres veces y no hace drama. La vida sigue. Pase lo que pase no se pierde la calidad de mexicano. No podemos ni debemos poner nuestro orgullo patrio por un partido de futbol, aunque sea en el mundial. Deberíamos aprender que así es la competencia y si de verdad la selección mexica busca un futuro éxito, tendrá que lamer sus heridas, ve qué han hecho mal una y otra vez, y buscar darle a la afición, siempre fiel, una verdadera alegría. Ya López Portillo una vez dijo que México era mágico, pues cada seis años se renovaba la esperanza. Esto mismo pasará con el futbol en cuatro años.

Y sí, el dolor, la decepción es grande. Pero parece ser que era inevitable.

Saturday, June 28, 2014

Reto de la programación lúdica: silabeo de un texto


Cuando fuimos a la primaria, quiero suponer que fue ahí, se nos enseñó a silabear un texto, es decir, separar en sílabas las palabras. Esto se hacía con mucha frecuencia en las publicaciones pero cuando la computadora llegó finalmente a la cotidianidad, nos encontramos con que los procesadores de palabras, la mayoría de origen estadounidense, no silabeaban, vamos, no separaban una palabra en sílabas por si no cabía en una línea, sino que en ese caso, toda la palabra se bajaba a la siguiente línea.  Programas como InDesign -de Adobe- tiene la opción de silabeo para no ajustar las líneas con espacios de más o separando las letras unos puntitos aquí y otros allá para poder justificar una línea completa.

El silabeo es pues quizás una especie de arte perdido. ¿Cómo se silabea una palabra? He aquí las reglas elementales:

1. Cuando una consonante está entre vocales se une a la vocal que la sigue.
* Ejemplo: a-ni-llo, mo-ne-da
2. Cuando hay dos consonantes entre vocales, la primera se une a la vocal precedente y la segunda, a la siguiente.
* Ejemplos: al-to, ar-tis-ta
3. De tres consonantes entre vocales, las dos primeras se unen a la vocal que las antecede y l aotra, a la que sigue.
* Ejemplos: ins-tar, abs-ten-ción, pers-pi-caz
* Excepciones: cuando hay grupos inseparables de consonantes: in-glés, am-pliar
4. Cuando hay cuatro consonantes entre vocales, entonces, las dos primeras se unen a la vocal anterior y las otras dos a la que sigue.
* Ejemplos: ins-truir, trans-gre-sión
5. Las consonantes forman grupos inseparables cuando se encuentran las letras “l” o “r” junto con alguna de las letras “b”, “c”, “d”, “f”, “g”, “p” o “t”.
* Ejemplos: a-brir, a-gra-da-ble, de-plo-ra-ble
6. Cuando dos vocales forman un diptongo, éstas no se separan al silabear.
* Ejemplos: ai (baile); au (pausa); ei (peine, ley); eu (feudo); ia (viaje); ie (pieza); io (odio); iu (ciudad); oi (oigo, hoy); ou (bou), ua(agua); ue (vuelta); ui (juicio); uo (arduo).
* La h colocada entre dos vocales que pueden formar diptongo no impide su formación: ahi-ja-do, ahu-yen-tar, prohi-bi-do, rehu-sar
7. Cuando dos vocales forman un adiptongo (hiato), éstas se separan al silabear.
* Ejemplos: po-e-ta, ma-re-o, a-ho-go, o-ír, ra-íz, ju-dí-o

Pues bien, el reto de esta semana de la programación lúdica  es silabear el siguiente texto (Prólogo “El Principito” de Saint Exupery), haciendo que el texto entre en una caja que contiene N líneas, con líneas de 40, 60 ó 75 caracteres por línea.

Prólogo “El Principito” de Saint Exupery

Pido perdón a los niños por haber dedicado este libro a una persona mayor.
Tengo una seria excusa: esta persona mayor es el mejor amigo que tengo en el mundo. Pero tengo otra excusa: esta persona mayor es capaz de comprenderlo todo, incluso los libros para niños.

Tengo una tercera excusa todavía: esta persona mayor vive en Francia, donde pasa hambre y frío. Tiene, por consiguiente, una gran necesidad de ser consolada. Si no fueran suficientes todas esas razones, quiero entonces dedicar este libro al niño que fue hace tiempo esta persona mayor. Todas las personas mayores antes han sido niños. (Pero pocas de ellas lo recuerdan).

Corrijo, por consiguiente, mi dedicatoria:

A LEÓN WERTH, cuando era un niño.

Por ejemplo, si tuviese una caja de 20 caracteres pondría:

Pido perdón a los ni-
ños por haber dedica-
do este libro a una 
persona mayor.
Tengo una seria excu-
sa: esta persona ma-
yor es el mejor ami-
go que tengo en el 
mundo. 
 
etcétera...

Así, el programa debe poderse generalizar a cualquier cantidad de columnas que se me ocurra (digamos de 10 a 80).

Este programa, probablemente puedan encontrarlo en la red. No se trata pues de copiarlo de algún sitio. Si descubro una copia o si tengo dudas, me tomo la libertad de preguntarle al autor directamente cómo hizo, para garantizar así que la solución fue escrita y no copiada por el autor del programa. Juguemos pues limpiamente y aprendamos todos de estos retos.

¿El premio? Una taza con el logotipo de la Morsa a la mejor solución. Esto solamente aplica a los programadores que vivan en el DF (mandar a provincia o a otros países una taza es estúpidamente costoso). En caso de que los concursantes sean de otros países o de la provincia mexicana, el premio será una memoria USB de 8 GBytes y se les enviará por correo certificado. Y sí, sé que no son los grandes premios pero mientras no tengamos patrocinadores, esto es lo que hay.

Evidentemente quien gane será anunciado aquí y hasta tendrá sus quince minutos de fama. Sus programas me los pueden mandar a morsa@la-morsa.com y pueden escribirse en cualquier lenguaje. Es importante señalar que hay que mandar el código fuente, el ejecutable (si procede) y el archivo de resultados pedido. Igualmente, se pide una explicación breve de la estrategia usada. Código documentado tiene más posibilidades de ser considerado el ganador.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto.

Referencias:

Buenas Tareas
Reglas silabeo

Friday, June 27, 2014

Reto del juego NIM: Tenemos al ganador


Tonatihu Sánchez, quien estudió Ciencia de la Computación en la Facultad de Ciencias de la UNAM, ganó el reto que propusimos sobre encontrar todas las configuraciones para ganar en el juego de NIM. Su programa está escrito en Python, cosa que lleva ya siendo una extraña moda en la facultad enseñar este lenguaje, pero desde luego, tendrán sus razones y Tonatihu tuvo, para entender lo que tenía que hacer, buscar en Internet cómo se jugaba y se resolvía este problema (ver los dos enlaces en su código fuente).

Dice el autor: "La estrategia consistió en entender bien el juego, jugarlo incluso antes de codificar. En el código fuente vienen las dos referencias principales que consulté. Ahí fue donde aprendí sobre la nim-suma y su equivalencia con la operación "xor", así como las estrategías que se siguen para ganar el juego. Ya a la hora de codificar puse atención en no repetir posiciones equivalentes y aunque la primera vez traté de hacerlo lo más general posible (aunque no te gustó mi solución), el que el problema estuviera acotado de esa manera facilitó mucho resolverlo."

He aquí el archivo de soluciones del ganador:
Hay 18 posiciones ganadoras
1-3-5-7 es una posición ganadora
Las posiciones ganadoras son las siguientes:
7-5-3-1
7-5-2
7-4-3
7-4-2-1
6-5-3
6-5-2-1
6-4-3-1
6-4-2
5-5-1-1
5-5
5-4-1
4-4-1-1
4-4
3-3-1-1
3-3
3-2-1
2-2-1-1
2-2
1-1-1


Tonatihu nos aclara: "Adjunto código fuente y archivo de soluciones. La forma recomendada de ejecutar el programa es la siguiente:

$ python nim4.py [bolitas]

Donde [bolitas] es el número máximo de bolitas que se quiera que tenga el juego. De manera predeterminada se establece dicho valor en 7.

y añade:

  •     El programa fue probado con el interprete de Python versión 2.7.3
  •     El programa imprime el resultado en consola por lo que el archivo de resultados fue generado con una redirección de la salida estándar.

He aquí su programa:

#!/usr/bin/python

# -*- coding: utf-8 -*-

"""
nim4.py: Encuentra todas las configuraciones ganadoras(1) para NIM de 4 filas, 
con una configuración inicial de 7-5-3-1.
[1] Tocandole el turno al oponente y en modo 'miseria' [http://es.wikipedia.org/wiki/Nim_(juego)]

"""
__version__ =  "2.0"
__author__  = "Tonatihu Sánchez - tonatihus@gmail.com"
__license__ = "GPL 2.0"


ganadoras = 0 #Contará el número de configuraciones ganadoras
posiciones = '' #Guardará las posiciones ganadoras

for A in xrange(7,1,-1):
for B in xrange(5,0,-1):
for C in xrange(3,-1,-1):
for D in xrange(1,-1,-1):
if (D<=C and C<=B and B<=A): 
#Para evitar repeticiones innecesarias debido a que es equivalente 1-2-3 que 1-3-2, 3-1-2 etc.

if(A^B^C^D == 0): #Referencia: http://www.archimedes-lab.org/How_to_Solve/Win_at_Nim.html
ganadoras += 1

aux = str(A)+"-"+str(B)

if(C != 0):
aux += "-"+str(C)

if(D != 0):
aux += "-"+str(D)

posiciones += aux+"\n"
posiciones += "1-1-1\n" #Caso especial debido al "modo miseria"

print "Hay " + str(ganadoras) + " posiciones ganadoras"
print "1-3-5-7 es una posición ganadora"
print "Las posiciones ganadoras son las siguientes:"
print posiciones

Wednesday, June 25, 2014

16 años de rencor




En 1998 jugué una partida contra Rubén Canales, en el Torneo Carlos Torre, que solía llevarse a cabo en Mérida, Yucatán, a fin de cada año. No recuerdo en qué ronda se jugó esta partida pero debe haber sido por la mitad de la misma.


Manuel López  - Rubén Canales

Torneo Carlos Torre 1998

1. e4 e6 2. d4 d5 3. e5 c5 4. c3 Nc6 5. Nf3 Qb6 6. Bd3 Bd7 7. dxc5 Bxc5 8. b4 Be7 9. O-O f6 10. Re1 a6 11. Na3 fxe5 12. Nxe5 Nxe5 13. Rxe5 Bf6 14. Rh5 g6 15. Rxh7!



Juegan las negras

15. ... Rxh7 16. Bxg6+ Ke7 17. Bxh7 Bxc3 18. Rb1 Nf6 19. Bg5 Rh8 20. Bd3 Qd6 21. h4 e5 22. Qf3 Bd4 23. Bf5 (23. Nc2! Bc3 24. Bf5 y de acuerdo con Komodo 6, las negras están perdidas.) 23... e4 24. Qh3 Ba4 25. b5 a5 26. b6 Bxb6 27. Bxe4 (27. Nb5 da ventaja abrumadora al blanco, de acuerdo al engine.) 27... dxe4 28. Nc4 Bxf2+ 29. Kxf2 Qc5+ 30. Ne3 Bc6 31. Qg3 Rf8 32. Qc7+ (32. Rc1 define para el blanco.)

Juegan las blancas

Y aquí tengo muchas jugadas ganadoras, pero hago una que pierde. 42. Rc5?? un blunder y de tener una posición ganadora, quedo perdido. (42. Rf1! gana sin duda. Komodo da +4.17) 42... Qxc5 43. Bxc5 e3+ 44. Qf3 e2 45. Qxc6+ bxc6 46. Bf2 y las blancas abandonaron 0-1

Y si describo esta partida es porque el otro día me encontré a Rubén Canales, que es el presidente de la Asociación de Ajedrez de Morelos, si es que no me equivoco, y que es uno de los artífices del primer torneo/festival en memoria del desaparecido GM Marcel Sisniega. Tuvimos una breve plática que fue más o menos así:

  • ML: Tú me ganaste en un Carlos Torre, ¿no?
  • RC: Sí, fue en 1998, creo...
  • ML: Pues te debo decir que sigues en la lista negra

Ahí estaban también Toño Galán, Hugo Vargas y Guil Russek, entre otros. No sé si fui yo o alguno de los que estaban ahí quien dijo: "¡un rencor de 16 años!" Todos reímos. Recuerdo cuando me ganó, lo que duele perder y tan es así que aún incluso recordaba vagamente la combinación con la que perdí. La partida no la tenía a la mano pero la busqué en Internet y ¡sorpresa! la encontré . Algunos datos de la página están mal. Yo tengo un homónimo que juega al ajedrez y es de Suiza, pero esto es lo de menos. Lo que me parece interesante es que quede en la memoria grabado esa partida, el sentir sobre la misma, después de tantos años.

Monday, June 23, 2014

Programación lúdica: el juego de NIM


Dice la Wikipedia: "En este juego, dos jugadores a los que llamaremos David y Vicente, colocan un número arbitrario de fichas (cerillas, palillos, guijarros) sobre una superficie, separadas en filas o grupos. Tanto el número de filas como el número de fichas en cada fila son también arbitrarios. El primer jugador, supongamos que es David, toma cualquier número de fichas de una fila, entre uno y el total de la fila, pero sólo de una fila. El jugador Vicente hace su jugada de manera similar, retirando algunos de las fichas que quedan, y los jugadores van alternándose en sus jugadas. Se puede jugar de modo que gane el que retire la última ficha".

Para limitar el problema, pensemos en la siguiente configuración inicial:


Un jugador puede eliminar de una de las cuatro filas, las bolitas que quiera. No importa el orden, es decir, si elimina las tres primeras bolitas de la última fila (la que contiene siete bolitas) o si lo hace salteado, una sí y uno no, alternadamente, da lo mismo. Si quita tres de la última fila, el rival podria, por ejemplo, quitar las cuatro restantes, aunque quedasen en grupos separados dentro de la misma línea.. El objetivo del juego, repito, es que quien tenga que eliminar la última bolita, pierde. Nótese que en cada turno solamente se pueden eliminar bolitas de una sola fila.

Este juego ha sido muy estudiado y se conoce un algoritmo para la solución. Aquí sin embargo, el reto se trata de lo siguiente. Por ejemplo, la configuración 1-2-3 es ganadora (esto quiere decir que en una línea quede una bolita, en la siguiente dos y en la tercera línea tres bolitas) Si hay esta configuración, quien juega pierde. De hecho, 1-2-3 es equivalente a 3-2-1 o 2-1-3, etcétera. Configuraciones que tienen que ver con la mencionada son 2-2 y 1-1-1. Por ejemplo, si llego a tener la configuración 2-2, si el rival quita una bolita de cualquiera de las dos líneas, yo quito dos y mi rival tiene que quitar la última. Si mi rival quita dos bolitas de la línea, yo quito de la línea restante una bolita y de nuevo gano, pues el contrario tiene que eliminar la última.

El reto pues consiste en hallar todas estas configuraciones ganadoras. Ya di algunas:

1-1-1
1-2-3
3-3
2-2
4-4

¿Cuántas configuraciones ganadoras hay? ¿Es 1-3-5-7 una configuración ganadora o perdedora? El resultado del programa que escriban debe dar todas las configuraciones ganadoras en el formato A-B-C-D, por ejemplo:

1-1-1
2-2
3-3
4-4

una configuración en cada línea (pueden omitirse las líneas que no contengan bolitas, que den cero, pues).

¿El premio? Una taza con el logotipo de la Morsa a la mejor solución. Esto solamente aplica a los programadores que vivan en el DF (mandar a provincia o a otros países una taza es estúpidamente costoso). En caso de que los concursantes sean de otros países o de la provincia mexicana, el premio será una memoria USB de al menos 16 GBytes y se les enviará por correo certificado. Y sí, sé que no son los grandes premios pero mientras no tengamos patrocinadores, esto es lo que hay.

Evidentemente quien gane será anunciado en unocero y hasta tendrá sus quince minutos de fama. Sus programas me los pueden mandar a morsa@la-morsa.com y pueden escribirse en cualquier lenguaje. Es importante señalar que hay que mandar el código fuente, el ejecutable (si procede) y el archivo de resultados pedido.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto. Así que “en sus marcas, listos, ¡arrraaaaancan!”

Sunday, June 22, 2014

Ganadores del reto del gato


Sorprendido alegremente por la respuesta de los programadores que visitan unocero, a escasas horas de empezar el reto, a eso de las 10 de la noche del sábado -cuando se publicó el artículo- recibí a la 1:30 am del domingo la primera respuesta. Dos más llegaron a eso de las 2:15 am y 4:40 am. En el transcurso de hoy llegaron un par más.

 El ganador fue Adán Enrique Aguilar, que escribió un programa en Java, el cual pongo a consideración de todos: Enrique es de Xalapa, Veracruz y en un par de días le mando su memoria USB de 16 GBytes, ¡Felicidades!

Debido al interés que presentaron los siguientes dos programas, se dan dos premios más, uno fue para Manuel Alcántara Juárez. Él me mandó, además, los siguientes datos: El programa genera 255168 posiciones donde 131,184 juegos los gana X, 77,904 los gana O y 46080 terminan en empate. El programa inicia con las "o" pero como dice mi tocayo, es isomorfo.

Finalmente, Charles López resolvió el problema. Su código llegó a eso de las 4 40 am. El ganador se lleva la memoria USB y los otros dos se llevan una taza con el logotipo de La_Morsa.

De izquierda a derecha: Adán Enrique, Manuel Alcántara y Charles López   


Es importante decir que aún no me queda claro cuántas son las posibles posiciones legales. Muchos sitios web dan cifras pero en todos los casos no coinciden. Cuando tenga un rato verificaré esto.

Agradezco realmente el esfuerzo realizado. No pensé que iba a tener estas respuestas y tan rápido. Quien quiera los archivos zipeados de los ganadores, con el respectivo código fuente, escríbame a morsa@la-morsa.com y se los mando de inmediato. (No los puse aquí porque tuve problemas en el formateo).

Saturday, June 21, 2014

Programación lúdica: La escondida riqueza del juego del gato


Todos jugamos alguna vez al gato. Hallamos pronto que no era un juego difícil de dominar. Vamos, incluso probablemente dedujimos que después de la primera jugada en el centro, si el rival no tira en las esquinas pierde irremediablemente. Uno olvida rápidamente este tipo de juegos, pues no representa ningún reto. Pero en realidad, sí puede serlo. Por ejemplo, a los alumnos en los primeros años de las carreras que tienen que ver con programación, bien puede ser una tarea a programar. Ahí coinciden algunas ideas interesantes, por ejemplo, la valoración de las posiciones a partir del algoritmo minimax, el cual se usa incluso en la valoración de las posiciones de ajedrez.

Hace unos días estaba yo en el trafico capitalino, atorado a la altura de Polanco, y pensaba en la inmortalidad del cangrejo y en cuántas posibles posiciones se pueden tener en el juego del gato, es decir, ¿cuántas posiciones del gato se pueden dar desde la primera jugada hasta que el juego termina? Pensaba que en realidad requiero conocer la cuarta parte de todas las configuraciones (o posiciones posibles), pues finalmente el gato tiene una simetría de la cual se puede sacar ventaja.

Asi pues, lanzo el siguiente reto a los lectores/programadores: Hágase un programa que genere todas las posibles configuraciones del gato, desde el inicio hasta el final. Guárdese cada posición en un archivo de texto. Por ejemplo, quien escriba un programa de esta naturaleza debería entregarme un texto aproximadamente como éste:

bbb
bxb
bbb

obb
bxb
bbb

obb
bxb
xbb
 
en donde "b" es una casilla vacía. Desde luego, las otras dos letras son "o" y "x".

Se piden solamente las configuraciones o posiciones legales. No se valen cosas como ésta:

xxx
bbb
bbb
por ejemplo.

¿El premio? Una taza con el logotipo de la Morsa a la mejor solución. Esto solamente aplica a los programadores que vivan en el DF (mandar a provincia o a otros países una taza es estúpidamente costoso). En caso de que los concursantes sean de otros países o de la provincia mexicana, el premio será una memoria USB de al menos 16 GBytes. Y sí, sé que no son los grandes premios pero mientras no tengamos patrocinadores, esto es lo que hay.

Evidentemente quien gane será anunciado en unocero y hasta tendrá sus quince minutos de fama.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. Así que "en sus marcas, listos, ¡fuego!"

Wednesday, June 18, 2014

Lo que no se dice sobre el "Hoy No Circula"


Desde hace no sé cuantos años, a algún brillante político mexicano, se le ocurrió implementar el programa "Hoy No Circula", para disminuir el parque vehicular que diariamente recorre la ciudad de México, calculada en unos 4 millones de unidades automotoras. Pues bien, primero se impuso para todos los autos, un día de no circular a la semana. Supuestamente así se abatirían las cifras de la contaminación ambiental. Pero la realidad fue otra: mucha gente compró un segundo automóvil (de segunda mano, usado), para lidiar con esta restricción del gobierno. Es decir, en lugar de disminuir el parque vehicular, creció. Genial.

Con el tiempo, la medida se cambió y se definieron categorías. Un auto con menos de cierta cantidad de años podría circular todos los días. A otros, con ciertos años ya, tendrian que respetar la restricción. Poco tiempo después hubo una nueva restricción. Los autos que ya no circulaban una vez a la semana, tendrían que dejar de circular un sábado de cada mes, de acuerdo a la semana y al número final de la placa.

Pero hagamos cuentas: Los autos que no circulan una vez a la semana no circulan 52 días. Casi dos meses. El día extra (el sábado que no les toca circular) equivale a unos 12 días más sin circular, es decir, 52+12 = 64 días. Dos meses y cuatro días en que el gobierno de esta ciudad no te deja sacar el coche en todo el día.

Pues bien, ahora se les ha ocurrido endurecer el programa y autos (como el mío, el Bachoco), con 15 años o más, no circulan ahora todos los sábados, es decir: 12 * 4 = 48 días. Si a eso le sumamos los 64 días, tenemos: 64 + 48 = 112, es decir, tres meses y tres semanas. Casi cuatro meses. Dicho de otra manera: tengo un coche que lo puedo usar solamente 8 de los 12 meses. Como que se les pasó la mano, ¿no?

Y más de uno dirá que digo esto porque soy afectado. Y sí, lo soy (como mucha gente), pero el punto es que en términos reales, el Programa No Circula fue un fracaso, como en todos los países donde se implementó. Además de esto, no soluciona el problema ambiental, porque a la larga (o a la corta), empezará a crecer de nuevo el parque vehicular. Hay gente que no puede quedarse sin coche por multitud de razones, pero amén de sus razones particulares hay una muy evidente: el transporte público es poco menos que lamentable, amén de inseguro. Es decir, en lugar de resolver el problema del transporte en la ciudad, endurecen la medida del No Circula y desde luego, los más afectados son los autos más viejos, aunque esto ya no sea un problema de contaminación, sino de que haya menos autos en la ciudad circulando. A este país y a la ciudad de México la están haciendo invivible. Mancera ha resultado un fiasco como gobernante. Me quejaba de Ebrard, pero éste resultó un verdadero cretino.

Lo que eventualmente va a pasar conmigo es que terminaré por vender en algún momento el Bachoco y cuando tenga el dinero suficiente, me haré de otro auto más moderno. Y pasarán algunos años antes de que me lleguen de nuevo las restricciones.

Sin embargo, éste no es el punto, sino las medidas, tomadas sin ningún criterio, sin ninguna consulta, por sus pistolas porque eso sí, cabe aclarar que todos los que aceptaron estas nuevas reglas para el No Circula, no les afectan.

Thursday, June 12, 2014

Partidas de ajedrez a un minuto por jugador

En el Internet Chess Club juego partidas de a minuto por jugador. Sí, lo sé, esto no es lo mejor para entrenar pero sin duda es divertido. Hace un par de días jugué contra ChessWizard, él con blancas:

ChessWizard (1712) - Morsa (1680) (los ratings son de ICC para la modalidad de un minuto)

1. d4 Nf6 2. e3 c5 3. f4 d5 4. Nf3 Nc6 5. c3 Bg4 6. Bd3 Ne4 7. Nbd2 f5 8. O-O e6 9. Qa4 Qd7 10. Bb5 Bd6 11. Ne5 Bxe5 12. fxe5 O-O 13. Nxe4 fxe4




Juegan las blancas

Y en esta posición, las blancas cometen un error fatal: 14. Bxc6?? (¡Komodo 6 indica mate en 8 jugadas por parte de las negras! ¿Puede verlo?) 14. ...  Rxf1+ 15. Kxf1 Rf8+ 16. Kg1 Qf7! 17. h3 Bxh3 (esta jugada gana, pero la máquina encuentra maneras más simples de ganar, como este mate en cinco jugadas: 17... Qf1+ 18. Kh2 Rf2 19. Kg3 Qxg2+ 20. Kh4 Qxh3+ 21. Kg5 Qh5#. Recuérdese que estamos jugando a un minuto por cráneo). 18. Qc2 Qf1+ 19. Kh2 Rf2 20. Qxf2 Qxf2 21. Kxh3 g5 22. Kh2 g4 23. Bd2 g3+ 24. Kh1 Qxd2 25. Rf1 Qxb2 26. Rf6  y las blancas perdieron por tiempo 0-1

No es una gran partida, pero me gustó que en menos de un minuto encontré el plan ganador.

Wednesday, June 11, 2014

Cuando se suben a un tabique y se marean

Hace un tiempo publiqué un articulito sobre el canal de youtube que hacen Chumel Torres y su amigo Durden. El "Pulso de la República" sonaba como novedoso, fresco, con ingenio, buen humor, inteligencia, amén de ser una crítica feroz y constante a todas las tropelías de este y pasados gobiernos. No se salvaba nadie, ni los partidos políticos, ni la presidencia, menos televisa o cualquier otro medio electrónico tradicional.

Sin embargo, la semana pasada, Chumel Torres anunció que harían ocho programas basados en lo que fuese a acontecer en el Mundial de Futbol, que empieza mañana jueves. ¿Quién produce? Televisa. Sí, la misma que fue denostada antes por el locutor (Chumel), de ese canal de youtube.

El personaje en cuestión quiso explicar las razones por las cuales aceptaban la propuesta de la televisora. Comentó que el Pulso seguiría igual. Y le costaba trabajo elegir las palabras porque a priori sabía que esta decisión de venderse a televisa no le iba a ser favorable a quienes lo veíamos en Internet. Dijo que la televisora le daba toda la libertad para la parte de contenidos y queriendo ser gracioso, "puso cara de what" sobre la supuesta decisión de darles toda la libertad creativa, pero la gracia del Pulso se acabó.

Así, la dignidad, los principios, los cuales finalmente uno esperaría que no estuviesen a la venta, fueron comprados por Televisa y así, descafeinar (como alguna vez dijo Ciro Gómez Leyva, cuando Brozo se fue a esa televisora) al Pulso de la República. Porque independientemente de que Durden y Chumel quieran disociar su producto de Internet, su credibilidad ya se arruinó, se rompió y algunas cosas cuando se rompen, ya no se pueden pegar.

Por mí, que le hagan como quieran. Chumel y Durden solamente demostraron que su eventual fama con los internautas fue como subirse a un tabique y cuando lo hicieron, se marearon. Y entonces llegó Azcárraga y sacando su chequera los terminó de fulminar. Así es este país que sólo demuestra esa frase de Alvaro Obregón: "Nadie aguanta un cañonazo de 50 mil pesos". Ahí están Chumel y Durden. Son el ejemplo vivo de esta frase.

Tuesday, June 10, 2014

El ajedrez computarizado


El desarrollo del ajedrez por computadora tiene unos 50 años aproximadamente. Y en ese tiempo la cosas han cambiado notablemente con los años. Hasta mediados de los años ochenta del siglo pasado, las máquinas que jugaban al ajedrez francamente no podían competir contra jugadores de primera fuerza, ya no digamos grandes maestros. Pero como los propios programadores decían: "hoy se ríen de nosotros. Mañana van a aprender de nosotros, ya verán". Y sin duda, desde 1997, cuando Kasparov enfrentó a Deep Blue fue claro que las cosas habían cambiado. Si a esto le agregamos la disminución en el costo del hardware y el aumento en el poder de cómputo, la ecuación parece completarse. Hoy en día los programas son francamente notables y posiblemente puedan vencer al 99.99% de los jugadores en el planeta. De hecho, por eso ya no hay encuentros hombre vs máquinas. Ya no parece tener sentido.

Pero hace unos años, había muchos problemas que resolver. Por ejemplo, tómese la siguiente posición:



Juegan blancas y ganan

Aquí, cualquier jugador avezado hallaría 1. Dxf6 gxf6 2. a4 y el peón no puede ser alcanzado por el rival. Un jugador que conozca la teoría básica de los finales de peones sabría que no requiere calcular la secuencia hasta la coronación. Basta con saber que después de 2. a4, el negro no puede alcanzar al peón pues el rey negro está fuera del cuadrado del mismo, el cual se forma trazando una diagonal desde donde está el peón hasta la última fila y creando así un cuadrado.

Cuando las computadoras no tenían el poder actual, no se podía pensar en cómo resolver este problema que es bastante sencillo para un jugador de ajedrez. Había que calcular muchas jugadas y además, el gran maestro ni siquiera hacía ese cálculo. Bastaba con saber la regla del cuadrado del peón para entender que el rey negro no alcanza al peón que se convertirá en dama muy pronto.

¿Cómo solucionaron el problema? Muy fácil: en lugar de buscar un esquema en donde el programa analizara el final tratando de entender la esencia del final de peones, lo que hicieron fue simplemente hacer crecer el árbol de posibles jugadas, a una profundidad de 12 plies, (6 jugadas, aproximadamente). Siguiendo este enfoque, el problema se resuelve a fuerza bruta. El gran maestro podría resolverlo también a fuerza bruta pero con la regla del cuadrado del peón, toma un atajo y lo resuelve casi sin pensar.

Aparentemente la máquina no requiere de atajos. La demostración de fuerza bruta es lo que parece darle la ventaja en nivel de juego a la computadora, al menos con el esquema actual.

Thursday, June 05, 2014

Hoy, hace 8 años, murió mi papá


Me acuerdo como si fuese ayer. Es increíble como pasa el tiempo pero el dolor no sana del todo. Me queda claro -y el otro día comentaba con Pilar- que nunca he estado tan triste en mi vida como en esa ocasión.

Pero bueno, mi papá descansa y sé que tuvo una buena vida y muchos logros. Desde aquí me acuerdo de él. Y la verdad es que me acuerdo todos los días. Y bueno, la vida sigue...

____
(*) La imagen está hecha con letras en diferentes tonos de gris, hecha con mi software "Sopa de Letras".

Wednesday, June 04, 2014

Nace un comediante: Gon Curiel


Creo haber conocido a Gon Curiel en la Ibero. Quiero creer que le di clases. Quiero pensar que lo aprobé en mis cursos. Ya no me acuerdo, pues han pasado muchos alumnos y muchos años. Lo que sí sé es que Gonzalo ha decidido seguir su vocación y me da gusto. Dejó -como dice él- el mundo "Godínez"  y ese embarcó en esta aventura de dedicarse a la farándula. Por un tiempo hizo stand up comedy, al mejor estilo Seinfeld. Hoy está en un canal de TV (Cadena 3), en donde tiene un noticiero llamado "Ya ni llorar es bueno", en donde alterna las noticias que da con comentarios chuscos. La realidad es que me gusta su humor porque es diferente, fresco, irreverente pero no vulgar. Va más allá que esa idea de que el único humor que se puede hacer en México es el del albur.

Este es un video de su programa:



Pero Gon también ha incursionado en estos videos miniatura de Vine. Pueden ver sus videos en este enlace.

Felicito a Gon y espero que tenga mucho éxito en su carrera artística.

Monday, June 02, 2014

Llegó mi camiseta de Xamarin


Miguel de Icaza tiene una empresa de software, llamada Xamarin, la cual hace poco inició una promoción para que los programadores conociesen sus productos. En este caso, lo que pedían era bajar el Xamarin Studio, descargar el código fuente de una app particular, ejecutar la misma, seguir las instrucciones que ahí se daban y una vez que todo eso estuviese hecho, el desarrollador recibiría en las siguientes semanas una camiseta de C#, cortesía de la empresa.

Hablé con Miguel y le dije que me mandara la camiseta pero no quiso, me dijo que tenía que seguir el procedimiento. Apelé a que había sido su maestro, a mi autoridad moral, pero Miguel me dijo: "No, Manu, tienes que seguir el procedimiento".

Pues bien, bajé el software, lo instalé y procedí a descargar la app. Después de jugar un rato con el programa logré el cometido y mandé mi petición (con mi dirección física), para que se me mandara la camiseta, la cual llegó hace un par de días.

Al mismo tiempo, recibí un mensaje de alguien encargado de recopilar las opiniones de los que usamos por vez primera el producto. Le dije que tenía que verlo con cuidado, pero que me quedaba claro que el problema y cuello de botella parecían ser los emuladores de Android, que son bastante malos. El personaje éste me comentó que estaban conscientes de esta dificultad.

Si usted quiere programar en Android, iOS o Windows Phone y usa C#, Xamarin es la opción. Échele un vistazo.

Filtración de agua dentro del chevy (de nuevo)


 Aquí escribí sobre un problema que tuve con el Chevy hace tiempo. Se mojaba el piso del lado del copiloto. No hallaba agujeros o la razón por la cual llegara agua a esa parte del coche, pero evidentemente se estaba filtrando el agua de alguna manera. En el artículo que menciono, entendí que el agua se filtraba por la pared metálica en los pies del copiloto. Y aunque no había un gran agujero, no era necesario para que el agua se pudiese filtrar.

Pues bien, hace un par de dias noté que olía raro el auto y noté la razón: el lado del copiloto se había mojado de nuevo. Así que decidí de nuevo aplicar "cirugía menor" al Chevy y sellar de nuevo la parte donde está la batería de forma que no se filtrara el agua. Es claro que la solución original ya había dejado de funcionar pues el material (corcho fue lo que se usó), dio de sí. Mi hermano Juan me ayudó y he aquí la secuencia de fotos en donde se explica qué hicimos:

Primero, hubo que quitar la batería de su lugar. Para ello, antes hubo que desarmar una moldura que está por encima de la batería:


Quitamos la batería y procedemos a limpiar el hueco donde ésta se encontraba:


Tomamos un mantel plástico (cuyo costo fue de 20 pesos) y lo cortamos más o menos del tamaño del hueco donde va la batería:


Colocamos el pedazo de mantel y lo pegamos en todos sus bordes contra el chasis del automóvil:


Nótese cómo usamos la cinta de ductos y pegamos todo alrededor. Sin dejar agujeros...


Nótese en la parte inferior izquierda cómo se deja un agujero para que por ahí drene el agua que se vaya acumulando, por ejemplo, cuando llueve.


Una vez sellado todo (con el hueco para drenar), lo único que falta es recolocar la batería y reconectarla.


Batería reconectada. Se recoloca la moldura y listo. Asunto solucionado.






Friday, May 30, 2014

Extraña paradoja

Se habla de que la educación en nuestro país es desastrosa, pero curiosamente, quienes dicen eso fueron educados en este sistema. ¿Cómo pueden personas tan mal preparadas tener esos criterios para establecer que la educación en México es tan deficiente?

Wednesday, May 28, 2014

En la presentación del libro "El cuarto paradigma"


Hoy se realizó la presentación del libro "El cuarto paradigma", Descubrimiento científico intensivo en datos, editado por Tony Hey, Stewart Tansley y Kristin Tolle, en el Centro de Difusión Cultural Casa Rafael Galván (Zacatecas 94, Col. Roma Sur). Estuvieron invitados a esta preentación: El Dr. Walter Beller T., Coordinador General de Difusión. Con palabras de Carlos Allende, Director del Sector Público, Microsoft México, Jaime Puente, Director de Microsoft Research para América Latina y el Caribe. También estuvieron Harold Javid, Director de Microsoft Research, el Dr. Luis Alfonso Villa Vargas, director del Centro de Investigación en Computación (CIC), del Politécnico y un servidor.

Fui invitado porque hice la revisión técnica de la obra. Agradezco a la UA esta oportunidad, fue muy ilustrativa.

Esta fue mi participación:

No me cabe duda que la ciencia avanza, en ocasiones muy lentamente (como en el caso del bosón de Higgs, por ejemplo) y en otras demasiado aprisa. Hace quizás 30 años pensar en tener un teléfono móvil resultaba siquiera impensable. Hoy, no creo que en este recinto se encuentre alguien sin teléfono celular. Así las comunicaciones han florecido y estamos más cerca del conocimiento, más cerca con nuestros amigos, parientes e incluso, con personajes relevantes al área en que cada uno se desarrolla.

El haberme invitado a revisar técnicamente el libro que nos ocupa, me dio la oportunidad de estar, de pronto, a las puertas de un nuevo paradigma en ciencia. Antes, cuando uno buscaba información, quizás tenía que indagar con los investigadores que sabían del tema, y muchas veces esto se hacía por carta, por correo tradicional, en el mejor de los casos. Además, muchas investigaciones morían cuando los investigadores que trabajan con ellas morían también, o bien, quedaban dispersos sus datos y era difícil, muy difícil, encontrar información valiosa o relevante. Y aunque hubo proyectos para conservar el trabajo de los grandes científicos, pocos han tenido un completo éxito -como en el caso de la página sobre los trabajos de Albert Einstein, por ejemplo.

Hoy, sin embargo, las cosas han cambiado brutalmente. Ahora contamos con un gigantesco volumen de información que se captura todos los días, las 24 horas, y que en muchos casos esos datos ya pueden consultarse. La maravilla del Internet ha modificado radicalmente como interactuamos con el entorno, pero aún más, cómo hacemos investigación. Por ello, en este cuarto paradigma, de acuerdo con Jim Gray, a todo esto premio Turing (el Nobel del cómputo) y desaparecido en el mar en el 2007, podríamos definirlo en dos partes: la primera, una infraestructura para hacerse de herramientas para capturar, preservar y analizar los datos y la segunda parte, una infraestructura de comunicación y publicación.

Pero no basta con medir, guardar y analizar los datos, y tampoco se trata simplemente de ponerlos en una "nube" para que todos podamos acceder a la información. Además de esto, tenemos que hacer un enorme trabajo que nos permita ver los datos de los datos, los metadatos (que podría ejemplificarse con un genio nos concede un deseo y nosotros pedimos como deseo otros tres deseos. Claramente un metagenio puede lidiar con nuestra cuestión, es un genio de genios) pues, que de alguna manera nos arrojen información que está ahí pero que no hemos aprendido a leer "entre líneas" para decirlo de manera coloquial.

Es un hecho que el catalogar, clasificar, publicar y conservar la información es una tarea compleja debido al volumen de información que ahora se maneja. Van aquí un par de datos al respecto: Desde el inicio de la computación moderna, la cantidad de información ha crecido exponencialmente. Desde el 2003 el 90% de la información científica excede el equivalente impreso en artículos técnicos, Journals, etc. Hoy, el Gran Colisionador de Hadrones puede capturar unos 5 petabytes de información diaria (y para que se den una idea de cuántos son los petabytes, pensemos  que  1 gigabyte son 1000 megabytes, 1000 gigabytes son un terabyte, así que un millón de veces más grande es un petabyte, es decir 1000 terabytes). Necesitamos pues, nuevas herramientas que nos permitan visualizar la información como nunca antes podíamos haberlo hecho y esto es uno de los grandes retos del futuro cercano.

Desde luego que hoy como nunca la información tiene cada vez más valor, por lo cual, además de analizar los datos que se van alimentando día con día, tenemos que depurar y ver qué es lo superfluo, qué no es importante, porque finalmente, aunque no lo parezca, también hay limitaciones en el almacenamiento, entre otras, en lo que se refiere a la parte económica.

Esta es pues la propuesta de este libro, que en mi opinión, ya está echando un ojo al futuro, y en caso de que se piense que exagero, entonces véanlo como los grandes retos que tendremos que afrontar en los próximos años. No importa que la información sea para analizar ondas gravitacionales o datos sobre lo acontecido en el famoso tsunami de Asia, o bien para redefinir nuevos métodos de diagnóstico en medicina. Sin  importar el tema en que nos ocupemos, es evidente que este libro tiene mucho que decir y da a la reflexión.

Finalmente, me gustaría terminar con sacudirnos de una vez esa frase que decía "todo tiempo pasado fue mejor". Yo creo que no, el advenimiento del cuarto paradigma me parece que, a pesar de las dificultades por las que pasa el mundo, podría bien reformular la cita como "todo tiempo futuro (y por qué no, presente) será (y es), siempre mejor".

Gracias

Tuesday, May 27, 2014

El concepto de la oposición a distancia en ajedrez


Dice la Wikipedia que en ajedrez, la oposición es la condición donde se encuentran ambos reyes uno frente a otro separados por un número impar de casillas. Está situación toma su máxima importancia durante el final de la partida pues al bando que le corresponde jugar no puede, pasar más allá de la línea (fila o columna) que separa los monarcas.

Así pues cuando un jugador tiene la oposición, tiene la ventaja, porque obliga al rival a ceder casillas. Sin embargo, a veces la oposición es el último recurso para salvar una partida.

Por ejemplo, en este interesante final (véase diagrama):

Juegan las blancas y empatan.


1. Rh1!! única para empatar con la oposición a distancia (1. Rf1?? Rd2 2. Rf2 Rd3 3. Rg3 (3. Rg2 Re2 4. Rg3 Rf1 5. Rh3 Rf2 6. Rg4 Rg2 ganando) 3... Re3 4. Rg4 Rf2 5. Rf5 Rxf3 ganando) 1... Re2 ( un intento fallido sería 1... g4 por 2. Rg2! (2. fxg4?? e4 3. g5 e3 4. g6 e2 5. g7 e1=Q+ y mate en 10 de acuerdo al engine Komodo6)) 2. Rg2 Re3 3. Rg3 y las negras no pueden progresar.

Pero ¿por qué pierde 1. Rf1?? La razón es que la casilla f3 no la tiene el blanco para ganarle la oposición al negro cuando éste último llegue a d3, pues ahí está el peón del blanco. Por esto mismo, sólo 1. Rh1!! salva la partida. Un detalle increíble.

Monday, May 26, 2014

Luchando contra la obsolescencia

Tengo una QuickCam de Logitech, que compré hace años para un proyectito. En ese entonces creo tenía instalado en mi máquina Windows XP. El manejador (driver) de dicho aparato funcionaba perfectamente bien y la aplicación que hice funcionaba de acuerdo a lo esperado. Pero el tiempo pasó y yo dejé de usar la cámara. Vino Windows Vista y luego el 7, que es el que tengo ahora. Cuando usaba Vista (que realmente no era tan malo como mucha gente dijo), la cámara no reconocía el manejador de Logitech. Pensé entonces que debería haber un nuevo driver pero no, no hubo nada en ese entonces. En pocas palabras, mi Quickcam se convirtió en algo absolutamente inútil.

Y esto me pone a pensar, ¿cuánto tiempo se vale que algo que compras te dure? Una Quickcam no tendría por qué dejar de funcionar porque cambió el sistema operativo, ¿o si? En esencia, el hardware de la cámara no puede ser tan poco compatible. ¿A poco no se puede hacer un nuevo manejador para la cámara para Windows 7? ¿A poco tengo que comprar una nueva?

Porque fíjense, las cámaras web pueden durar una eternidad. Un disco duro puede dañarse por múltiples razones, entre ellas, porque tiene partes mecánicas, pero en muchos casos, en el cómputo, si algo no se mueve, ¿qué lo podría dañar? Desde luego que como todo lo que se usa, tiende a sufrir las consecuencias del tiempo. Quizás la cámara se caliente más de la cuenta en alguan ocasión y eso la eche a perder, o tal vez el desgaste material de los materiales electrónicos que usa dejen de funcionar, qué sé yo. Lo que sí sé es que me parece injusto con el consumidor que se vuelva de la noche a la mañana un dispositivo obsoleto porque cambió el sistema operativo.

Yo puedo entender por qué a Microsoft le cuesta tanto trabajo para convencer a la gente que migre de sus anteriores versiones de Windows a las nuevas. Pero a ver, ¿cómo convencerlos si de pronto los dispositivos que funcionaban dejaron de funcionar sin razón aparente, o bien, que de alguna manera nos obliguen a vendernos uno nuevo?

Postscriptum

Acabo de ver que ya hay drivers para las Quickcams. Vamos a ver si puedo echar andar la camarita. Seguiremos informando.