Prólogo
Existen en la actualidad una inmensa cantidad de libros acerca de la programación. La cantidad de textos sobre cómputo se ha multiplicado de manera extraordinaria y no cabe duda que la razón de esto es la red Internet y el hecho evidente del uso de la computadora personal a todos los niveles, pero cada vez más cercana a la cotidianidad. En su mayoría, los libros de programación son finalmente libros de texto, para ser usados probablemente por profesores en sus respectivas cátedras universitarias. No obstante esto, no hay muchas obras de divulgación sobre la labor de programar. ¿Es fácil? ¿Es difícil? La mayoría de la gente no intentará programar computadoras debido a una proverbial idea de que es demasiado complicado y que “eso” se estudia solamente en las universidades o es únicamente para especialistas y “nerds”. . Cabe señalar que además de esto, los libros sobre la enseñanza de la programación son áridos y poco atractivos para el común de los mortales. Si uno hojea dichos tratados verá temas como: “Uso de listas ligadas y doblemente ligadas”, “Caso ejemplo: programa de costos unitarios”, “Estructuras de datos dinámicas”, etc. Es claro que este tipo de tópicos hacen que muchos programadores potenciales simplemente dejen el libro en donde lo hallaron. Sin embargo, la computación se ha hecho innecesariamente reverente y yo soy de la opinión que la diversión puede y debe estar presente cuando se programa una computadora. No todos son textos de solemnidad doctoral o software formal y serio de hojas de cálculo, procesadores de palabras o bases de datos. Afortunadamente la computación da para más que eso y en ese sentido este libro es la propuesta que bien puede ser para enseñar a programar en algún lenguaje popular o bien simplemente como una colección de ensayos sobre cómputo, ajedrez computarizado, Internet, la inteligencia artificial, etc., temas que finalmente nos son cotidianos por la relevancia que la cibernética ha cobrado en los últimos años. Con el empeño de que la programación es de esas pocas cosas divertidas que pueden hacerse con los pantalones puestos se encaran los temas dentro de este libro. A partir de artículos que originalmente se publicaron en periódicos virtuales y reales, pero reescritos para darles forma más completa (las ideas apoyándolas con argumentos técnicos), amén de no tener las limitaciones que imperan en un artículo de 5000 caracteres, este libro pretende que el lector se introduzca al mundo de la programación y que a la larga lo motive para crear sus propios sistemas. Algunos artículos son simples reflexiones filosóficas sobre ciertos temas de interés en el mundo de la informática, otros (la mayoría), son sistemas completos que pueden ser usados por los lectores de manera libre y que contienen ideas específicas de programación. Hoy día las mega-obras del software están hechas: hojas de cálculo, procesadores de palabras y bases de datos ya son comunes en las llamadas “suites”, paquetes completos para la productividad, impuesta por el modelo económico de occidente. Todos estos grandes esfuerzos se hicieron por enormes equipos de programación. Sin embargo, hay espacio para todo género de aplicaciones y programas menos ambiciosos pero que resuelven problemas cotidianos y que pueden ser escritos –los más complicados– en un par de semanas por una sola persona, si se trabaja lo suficiente en el problema a resolver. Puede verse así que aún hay margen para todos los programadores de fin de semana, por decirlo de manera coloquial. El libro contiene un disco compacto (CD) con todo el código fuente y programas de apoyo, así como algunas carpetas con componentes para ser usados por el lector interesado así como archivos adicionales. Así pues, no se necesita necesariamente meterse de lleno en el tema y aprender a programar a la fuerza para poder usar el contenido e información aquí descrita, aunque evidentemente no le caería nada mal hacerlo de esa manera.

Manuel López Michelone Enero 2011

Índice
Primeros pasos Reloj digital Anatomía de un metrónomo Reproductor MP3 La experiencia Bach Percepción extrasensorial en casa Niveles etílicos Para ganar en las encuestas Un mago por software Software irreverente Regalo de nuestros patrocinadores Los bytes privados Gráficas Imágenes y filtros Blending Fotos recursivas en color Sopa de letras Creador de iconos Fotos al óleo FotoMorsaicos Inteligencia Artificial Conjugación de verbos regulares Cuadrados mágicos Lapsus: un corrector ortográfico inteligente Corrector fonético Creación de crucigramas Engañando a la prueba de Turing Creación de sudokus Ajedrez Creador de diagramas de ajedrez Protector de pantalla en honor de Kasparov El Secreto de los grandes maestros Calculadora de rating Elo Ajedrez a la ciega Tarjetero electrónico de posiciones de ajedrez ¿Qué tan bueno es su ajedrez? Editor de partidas de ajedrez solitario (ver capítulo anterior) Patrones en ajedrez I Patrones en ajedrez II Internet ¿Está conectado a Internet? Contra los spammers Biométrica: No es lo que escribes, sino cómo lo escribes. Cuide a sus hijos Bloqueador del ms–messenger Proyectos varios Juegos de palabras en televisión Mensajes subliminales

Programando la Palm ¿Es usted honrado? (parte I) ¿Es usted honrado? (parte II) Bosquejo de un curso de ruso Portafolio para modelos Sintetizando la voz ¿Son sus empleados productivos? Apéndices Apéndice I Entrevista con Robert Silvers Apéndice II Programa visualizador de los fotomorsaicos .

requiere utilizar algunos componentes del sistema y entender cómo es que Delphi maneja algunas estructuras de datos usuales. De esta manera. el sistema nos da funciones para manejar ese tipo de datos fácilmente. como se ven en muchísimos instrumentos tecnológicos. si le decimos que dispare cada 1000 milisegundos (es decir. el pseudocódigo del timer vendría a ser algo como esto: . cuya función es disparar un evento cada cierta cantidad de milisegundos. simplemente en el cuerpo del timer leemos la hora del reloj segundo a segundo y si la desplegamos.Primeros pasos Reloj digital Cuando empecé a programar en Delphi (realmente turbo Pascal para Windows). cada segundo). usamos el tipo TTime. pero a través de la función TimeToStr. que vaya desplegando segundo a segundo las horas. La razón de ello es que. Si queremos hacer un reloj digital. A partir de ahí. Lo instalé en la paleta de Delphi y simplemente lo usé sin mayores contemplaciones. TDateTime es del Tipo DateTime (fecha y hora. Entonces. busqué en Internet si había algún componente que me desplegara los números de las horas. En el display de 7 segmentos se puede poner cualquier número del 0 al 9. mi primer sistema fue un reloj digital. escribir un programa que actúe como un reloj digital es francamente sencillo. en este ejemplo). El sistema regresará en la variable hora la hora actual que tiene la computadora en ese momento. y entonces definimos una variable. Ahora entramos a las funciones de manipulación del tiempo. Primero necesitamos saber que los diseñadores de Delphi han integrado un tipo de datos llamado TDateTime y TTime (la ‘T’ inicial es una convención muy usada para decir que se está hablando de algún Tipo de datos en particular). Imagen 1 Ejecutando el reloj digital Hasta aquí podría decirse que el proyecto funciona. Si ponemos la instrucción Hora := ow. habrá que leer el reloj de la máquina una vez cada segundo (60 veces por minuto). Encontré un componente “freeware” (es decir. podemos convertirlo en una cadena de caracteres y para desplegarlo. la cual es precisamente de ese tipo. es decir. por ejemplo en una etiqueta. tendremos un reloj digital totalmente funcional (claro. Para el caso que nos ocupa (no estamos necesitando más que la hora sin necesidad de la fecha). cambiando el tipo TTime al tipo string. aunque es un proyecto simple. Una vez hecho esto. Además. el timer disparará un evento cada segundo exactamente. Así. minutos y segundos en una especie de “display” de siete segmentos. Pero en un afán de hacerlo más “bonito”. se utiliza un componente de la paleta de sistema llamado Timer. Para hacer esto automáticamente. entonces usamos el componente etiqueta. Delphi nos entrtega el formato de la hora de manera muy específica. llamada Hora. totalmente gratis).

Pseudocódigo del timer Lee la hora Pásala a una variable Conviértela a una cadena de caracteres para que sea leíble por los seres humanos Toma el primer carácter de la cadena… ¿es 1? Eso quiere decir que son ya las 12 (ojo, usamos el formato de 12 horas) Si no es 1 entonces agrega a la cadena un cero para tener 0H:MM:SS AM/PM Revisa ahora cada carácter de Horas, minutos y segundos Ponlos en el display de siete segmentos correspondiente Revisa si el décimo carácter es ‘A’ o ‘P’ (AM o PM). De acuerdo a eso, pon en la etiqueta un ‘am’ o un ‘pm’. Termina Después de eso me di por satisfecho. Mi reloj digital funciona perfectamente y claro, podría aún agregarle funcionalidad, como por ejemplo, ponerle sonido (que haga tic tac), o bien, que tenga una alarma. Las posibilidades suelen ser infinitas, pero en este caso no haré más. Basta con esto para que el lector tenga con qué entretenerse. El código es muy sencillo de seguir. No tiene dificultad alguna.

Primeros pasos Anatomía de un metrónomo

Mi padre era guitarrista y desde que tengo uso de razón lo vi estudiar ayudado de un aparato mecánico conocido como metrónomo. Este aparatito da una pulsación cada cierto tiempo determinado. Así, mi padre, cuando estudiaba las escalas, por ejemplo, podía hacerlas a mayor o menor velocidad, de acuerdo a las necesidades interpretativas o de habilidad en los dedos, incluso, que esté practicando en ese momento. Un metrónomo es una especie de reloj que da un tic en instantes por demás precisos. Los metrónomos más conocidos tienen la forma de una pirámide y una barra que hace el equivalente de un péndulo de reloj, pero que a diferencia de este último, que da un tic cada segundo, el metrónomo puede ajustar esa barra con un contrapeso para que vaya más rápido o más lento. Los metrónomos tradicionales tienen mediciones que van de 40 a 208 pulsaciones (o golpes) por minuto. Obviamente, teniendo a un padre profesional de la música, he visto en casa más de un metrónomo. El que usaba normalmente era uno pequeñito, rojo, como diseñado para llevárselo de viaje. Sin embargo, me mostró también uno suizo, que es como un reloj de muñeca y dentro de la carátula del mismo está el péndulo que se mueve de un lado a otro, como si fuese una manecilla más. Por supuesto que hay también metrónomos digitales, los cuales presentan en un “display” la cantidad de golpes por minuto que el usuario quiere tener. La mayoría son de baterías aunque hay, desde luego, algunos que se conectan a la corriente eléctrica de la pared. Pero sin importar el modelo del metrónomo, éste tiene su costo. Posiblemente se puede hacer de uno por alrededor de 200 a mil pesos quizás. Debido a esto, y considerando que la vida está muy cara, decidí que era momento de hacer mi propio metrónomo computarizado de manera que, usando las bocinas de la computadora, me diera un golpe en intervalos muy precisos de tiempo. La tarea parecía muy simple. De hecho, antes de programar nada, decidí hallar sonidos típicos de metrónomos, es decir, del sonido que generan cuando dan un golpe. Encontré en la red más de un sonido wav y elegí el más parecido al que he escuchado siempre en los metrónomos que mi padre tiene. Una vez hecho esto, me metí a Delphi (la herramienta de desarrollo que uso) y le pedí que generara un golpe cada segundo, usando la programación orientada a objetos. Esto es, usando un componente que dispara un evento (como el tocar un sonido) en Windows cada cierta cantidad de milisegundos. Después añadí una barra de scroll, que permite desplazar un control de izquierda a derecha para incrementar o disminuir la cantidad de golpes por minuto. Hallé la fórmula que me dice cuántos milisegundos debo poner en el componente ‘timer’, es decir, en el que dispara un evento sonoro cada cierto definido tiempo precisamente en milisegundos, de acuerdo a la cantidad de golpes que quiero por minuto. Y una vez hecho todo esto, al correr mi aplicación, encontré que mi programa, a ritmos rápidos, no funcionaba.

Imagen 1 El programa del metrónomo

¿Qué estaba pasando? ¿Por qué no suena? Después de algunas cavilaciones di con el misterio: el componente que hace sonar el tono audible del metrónomo no tiene suficiente tiempo para que el sistema lance el evento de tocar el tono, y volverlo a hacer en el tiempo requerido. Dicho en otras palabras, a la máquina le lleva más tiempo que el necesario el tocar el tono correspondiente y no le da tiempo a hacer el que le sigue porque cuando lo quiere hacer, aún está sonando el tono anterior. Y de repente, un programa que prácticamente estaba escrito en 10 minutos se convirtió en un reto complicado. ¿Cómo hacer para que suene en los tiempos precisos? Era claro que con tiempos largos, hasta 90 pulsaciones por minuto, el sistema hacía la tarea correctamente, pero más allá de eso el sistema no podía hacer sonar el tono del metrónomo. Un poco de investigación me llevó a encontrar la rutina sndplaysound(‘sonido.wav’, snd_async); que hacía lo que yo quería y en los tiempos correctos. Quité entonces mi componente de audio multimedia (que evidentemente le mete una sobrecarga al sistema en cantidad de instrucciones a ejecutar), y lo sustituí por éste. Y entonces todo funcionó de maravilla. Procedí entonces a ‘vestir’ el programa poniéndole una buena foto de un metrónomo real, así como agregarle los detalles para que el software se viera más bonito. Y listo: metrónomo en software en un santiamén, aunque eso sí, sin sonido realista.

bocinas de audio. dan automáticamente las instrucciones necesarias para conectarnos. porque los sistemas compartibles (shareware) y otros comerciales hacen más cosas de las que quiero. Mucha gente no ignora que su lector de CD-ROM puede tocar los cedés de música. Uno de los más interesantes artefactos que poseé la computadora es el CD-ROM.com) encontrará montones de estos programitas para prácticamente todas las plataformas de hardware e incluso Windows ya trae de fábrica una versión para esa tarea particular. ¿Sería fácil? ¿Difícil? Ya sospechaba que esta labor no sería demasiado complicada si se tienen las herramientas de software adecuadas. teclado ergonómico de Microsoft (que parece que se derritió al dejarlo al sol). roedor. a veces estos sistemas tienen montones de características que francamente quizás no queremos o necesitamos. Resulta que sólo las venden en paquetes de cuatro. Por ejemplo. De esta manera. .Primeros pasos Reproductor MP3 Las máquinas que podemos encontrar hoy en las tiendas tienen cualquier cantidad de artilugios: fax/módem. WAV e incluso de video (AVI o MPG). Resulta que el sistema ya tiene incorporadas las llamadas al API para manejar no sólo cedés de música. CD-ROM de 24 velocidades (al menos). se necesita un software que haga precisamente esa tarea. etc. dat. Sin embargo. Así entonces puse manos a la obra y en Delphi hallé‚ que esta tarea es sorprendentemente sencilla. No necesito saber siquiera cómo se encuentra la información en el cedé de música. formato de videodisco. no sólo estos programas leen discos con música. conexión directa a Internet de alta velocidad. no se puede solamente pagar la pila necesitada. y en los que les cabe una barbaridad (alrededor de 700 megabytes). disco duro de no sé cuántos gigabytes. todo lo que nos dan sirve para bien poco si no tenemos el software que permite manejarlo. mid. por ejemplo. prácticamente se puede escribir un reproductor de cedés casi sin escribir código. etc. sino archivos wav. sino que también tocan archivos MIDI. En suma. hay que comprar el paquete completo. Con esto. avi. Esto se parece un poco a cuando vamos al supermercado a comprar una batería para nuestro radio. decidí escribir mi propio programa lector de cedés musicales. Sin embargo. Y no hay vuelta de hoja.shareware. la conexión a Internet. hacen prácticamente todo lo referente a lo que llamamos una parte fundamental de la multimedia. monitor de super alta resolución (ultraVGA que le dicen). claro está. sólo es posible porque se tienen todos los programas que inicializan el módem. Una ayuda más la otorgan los componentes creados ex profeso para manipular audio y vídeo (como el TMediaPlayer). etc. Por el precio que vemos consideramos que es una ganga (cuando hace un año un equipo menos avanzado quizás nos costó 25% más de lo que anuncian ahora). Maravilloso porque simplifica la tarea. Imagen 1 El mp3 minimalista Por esto precisamente. Para esto. Este permite leer discos con datos (que son idénticos en tamaño y color a los cedés de música). En la red (http://www.

Bach y su obra. arte y obras de J. conecta el trabajo del músico con las matemáticas de Kurt Gödel y los dibujos de M. obras para órgano. conciertos. Escher. para ganarse la vida. Imagen 1 La experiencia Bach Por otra parte. Además.S. la música de Bach contiene una estructura matemática inigualable. Cabe señalar que la idea de este programa surgió de repente. instrumental. Es considerado “Padre de la música” título. siete son de autenticidad dudosa y hay cierto número de fragmentos de cantatas pedidas. Bach recorrió casi trescientos kilómetros a pie hasta Lübeck para oír a Buxtehude en “Los conciertos de la tarde” (Abendmusik) en los que tocaba sus obras y las de otros compositores. Fue hasta 1802 que Johann Nikolaus Forkel publicó “Vida . A su muerte. Convivió con su hermano mayor. Mendelssohn hizo ejecutar la “Pasión según San Mateo” que produjo un verdadero acontecimiento nacional.C. compuso música religiosa. Como vengo de familia de músicos. Al ser descubierto.S. Ahí encontré toda esta música MIDI y decidí que era buen momento para recopilarla en un solo programa. Muchas de las obras de Bach contienen una estructura matemática compleja.Primeros pasos La experiencia Bach J. el cual es uno de los componentes más vistos . notarán el uso de los ListBoxes. el cual puede escucharse si se tiene una tarjeta de sonido. Bach. conviertiendo a esa ciudad el centro musical de la Alemania del Norte. por demás merecido. an Eternal Golden Braid (1979). a la luz de la luna. En 1829. Como dato curioso. se trasladó a Lüneburgo e ingresó al coro. La música de Bach frecuentemente demanda un nivel especial de compromiso emocional e intelectual. Igualmente. quienes estén interesados en el código fuente. música de cámara. me siento obligado a tratar el tema. En este caso. clavicémbalo etc. En 1700.Bach” y logró atraer el interés de los musicólogos. le confiscaron las copias.S. Aquellos años en Ohrdruf. que muchas veces no todos podemos tener. Fue amigo del organista Georg Böhm y conoció a grandes maestros organistas de Alemania del Norte. aprendió a escribir música copiando partituras que su hermano no le hubiera permitido estudiar. el software en esta ocasión es en honor a J. cuando sin querer hallé en Internet una gran cantidad de sitios dedicados a J. aunque sea desde el reducto del cómputo. Douglas Hofstadter.S. De las 222 cantatas que escribió. Se trata de una colección de algunas de sus obras en formato MIDI (Musical Instrument Digital Interfase). organista en Ohrdruf y en secreto. dieron al joven Juan Sebastian una práctica del órgano y el conocimiento de las obras para este instrumento existentes en la escuela del sur de Alemania. en su Gödel. las que fueron recuperadas hasta la muerte de su hermano en 1721.Bach (1685 – 1750 ) quedó huérfano a los diez años. Bach. Escher. la música de Bach cayó en un relativo olvido.

Todo lo que hay que hacer es tocar las notas justas en el momento justo y el instrumento tocará por sí mismo”. termino con una frase.en Windows. sobre todo cuando viene de un genio de esos tamaños. Aquí puede observarse cómo se usan en la práctica. Fácil decirlo. . Finalmente. atribuída al mismísimo Bach: “ o hay nada especial en tocar un instrumento.

E. Imagen 1 Las cartas Zener. Consciente o inconscientemente.S. nos encontramos en casa. entre otras cosas. Sucede además. Luego. la creencia que nuestra hipótesis de trabajo ha quedado confirmada nos hace perder el rigor que la ciencia impone y tales errores tienden a favorecer una creencia.E.). pero en sentido opuesto a los primeros. o bien. Sin embargo. Hemos sentido –sin causas aparentes– que algo va a ocurrir y así sucede.S Es evidente que todo experimento científico es sesgado de una u otra manera por los prejuicios de los investigadores.. . Lo que queremos decir en este caso. la probabilidad y estadística son las herramientas más utilizadas y desempeñan un papel preponderante a la hora de determinar la existencia real de tales acontecimientos. los resultados carecen de la objetividad científica mínima y por supuesto. Si se piensa analizar los fenómenos relacionados con la P. donde los sujetos tratan de influir sobre la caída de los dados.S. la presencia de cámaras secretas ha demostrado que los registros manuales efectuados por los creyentes. la telequinesis (mover objetos sin tocarlos) o la percepción extrasensorial (P. cuestión muy criticada de forma persistente. y después se analizan sus resultados para ver si se han producido desviaciones significativas de la casualidad.Primeros pasos Percepción extrasensorial en casa Todos alguna vez hemos tenido precogniciones. son firmes creyentes de la misma.E. la comunidad interesada no tarda en criticarlos por su falta de controles. en pruebas de psicosinesis. meditando sobre cierta persona y en ese momento suena el teléfono y para sorpresa de propios y extraños. Por ejemplo. Hace falta un estudio más científico y serio para discernir lo falso de lo auténtico. Nadie dice que la gente que haya sentido algo que después ocurre esté mintiendo. se consiguen uno o sujetos que realizan un gran número de conjeturas. todos estos testimonios no son suficientes para poder demostrar que existe la telepatía. es que no bastan los testimonios para dar como existente este tipo de fenómenos. por lo que muchas veces. típicas en el estudio de la P.S. se establecen los objetivos del experimento (¿qué se desea medir?). mientras que los escépticos muestran registros similares. que la mayoría de los investigadores dedicados a la P. se trata de la persona a la que le dedicábamos nuestros pensamientos. En ocasiones –quizás– hemos dado como un hecho que sabíamos lo que nuestro interlocutor estaba pensando. Durante muchos años.E. presentan errores significativos en favor de dicho fenómeno. En este caso. los registros de estos experimentos se solían registrar a mano.

S. y diseñemos a la máquina de manera tal que efectúe el registro permanente e inalterable. con su nueva máquina. indicando su selección al presionar el botón cuadrado más próximo a ese panel. C. . Los contadores de la consola de control proporcionan información instantánea de los resultados. en determinadas ocasiones. VERITAC se bloquea y permanece bloqueado hasta que un teletipo imprime los datos. Sin embargo. los resultados obtenidos por Targ y colaboradores no parecen haberse hecho en condiciones de control estricto. Los detractores oficiales. decidieron dedicarse a las investigaciones parapsicológicas. El informe final. la conjetura del sujeto acerca del dígito que se trata. un elemento de azar de la máquina selecciona una de las cuatro imágenes como objetivo.E. Hansel. el tiempo que dura cada ensayo y el intervalo de tiempo que transcurre entre la selección del objetivo y la conjetura. no apareció desviación alguna del azar. entre los que se encuentran Martin Gardner. dice en la última hoja: “Si doce meses de investigaciones sobre VERITAC pueden establecer la existencia de la P. los cuales no dejan de catalogar a los experimentos de Targ como chapuceros y fraudulentos. han descrito las pobres condiciones de rigor científico impuestas en dichos experimentos. M. Un contador situado a la derecha de los paneles indica el número de ensayo (1 a 25). adepto a las creencias de Ron L. una vez que le hayamos incorporado un eficiente elemento de azar.000 ensayos. El sujeto trata de adivinar éste. Para 1972.S.S.S. Estos dos hombres cobraron cierta relevancia gracias a su pobremente controlado estudio sobre las facultades paranormales de Uri Geller. toda la investigación del pasado no habrá sido en vano. Hagamos un poco de historia: en la década de los 30. Sin embargo. Este sistema selecciona al azar dígitos del 0 al 9. el físico Russell Targ junto con el ingeniero David B. Hubbard). Tras cada ronda de ensayos. Cuando el sujeto ha acertado. No obstante. empleando conocidas técnicas de significación estadísticas.. dejando aparte estos casos de abierta trampa. Imprime un registro del dígito elegido. antes de mostrar cualquier imagen. de 61 páginas (¡1311 dólares por página!) fue publicado por el SRI bajo el título: “Development of Techniques to Enhance Man/Machine Communications”. cada uno de los 37 sujetos completó cinco rondas de 100 ensayos cada una para tres modos diferentes de P.E. Targ fue contratado por el Laboratorio de Electrónica y Bioingeniería de Investigación Stanford (SRI por sus siglas en inglés) y en colaboración con Harold Puthorff. el cual es en realidad un brillante mago israelí. a muchos investigadores se les ocurrió que un modo muy sencillo de protegerse de los errores inconscientes de registro era automatizar el proceso en la medida de lo posible. disfrazado de otra cosa. ni a nivel de grupo ni a nivel individual. En el experimento de 1962. Tan pronto como el sujeto indica su elección. seleccione los objetivos. suena un timbre. Cuando se analizaron los resultados. Desafortunadamente. tanto de los ensayos de la conjetura. Hurt.E. E. en su libro: “ESP: a Cientific Evaluation”. Pero pasemos a describir la máquina de Targ. realizando un total de 55.E. Dejemos que la máquina. De no establecerse la P. las primeras pruebas importantes con una máquina electrónica se realizaron hasta 1962. Sin embargo.Con la aparición de la electrónica y la tecnología de las computadoras. es claro que tales máquinas no son a prueba de fraude. se enciende una luz tras la imagen objetivo correcta con el fin de aportar retroalimentación y refuerzo.000 dólares para realizar sus experimentos de P. Esta es una caja que presenta cuatro paneles cuadrados. Un segundo contador muestra el número de aciertos. un aparato electrónico representa una excelente manera de eliminar los sesgos inconcientes en las medidas. podrían ahorrarse muchos esfuerzos y muchos científicos jóvenes tendrían la posibilidad de enfocar su trabajo hacia investigaciones que merezcan más la pena”. que había sido diseñado y construido por un empleado de los laboratorios de investigación de la Fuerza Aérea en Cambridge. pero estos contadores pueden desconectarse si así se desea. Tampoco había diferencias significativas entre las puntuaciones obtenidas por escépticos y creyentes. existen escandalosos casos en donde los investigadores manipularon los aparatos para mejorar los resultados..S. utilizando un sistema denominado VERITAC. se empezaron a construir varios artilugios para contrastar la P. físico y cientólogo (sí. diseñaron un mecanismo mucho más complejo que el VERITAC original. Puthorff y Targ consiguieron una subvención de la NASA por 80. y cada uno de ellos puede exhibir una transparencia en color.E..

La idea entonces es ésa: Reproduzcamos las características del diseño original de Targ y podremos investigar la posibilidad de la existencia de la P. A la derecha de la pantalla existen dos contadores.S. en donde se muestra la carta elegida por la máquina. AutoPES permite guardar toda la sesión realizada con el sujeto experimental. .E. Tales imágenes representan un símbolo elemental de reconocer: Unas rayas onduladas. o bien. la carta sugerida por el sujeto en experimentación y el tiempo desde que se generó la carta al azar y el que se llevó el usuario en hacer su elección. otra corresponde a la cantidad de fallos realizados. los cuales contienen las imágenes de las posibles cartas que el programa puede elegir al azar. La ventana de la derecha se encuentra la carta que va a sugerir el sujeto a experimentación. Existe una imagen más. si la carta elegida por el sujeto coincide con la que la máquina escogió. con el avance en términos de cómputo. La pantalla principal Aparte de esto. una estrella. el cual se pone de color rojo si la carta elegida por el sujeto experimental no correspondió a la elegida por la computadora. donde la de la izquierda aparece la carta seleccionada al azar por la computadora.E. En la parte inferior de la pantalla pueden verse cinco botones. Hoy. se pone de un color verde. un cuadrado y un círculo. copiar vía software la máquina de Targ es un asunto de programación relativamente trivial.¿Pero siempre tiene que ser así? ¿No habrá manera de crear un sistema que elimine los errores sistemáticos en el estudio de la P.E. en un archivo en disco. Contiene dos ventanas en la pantalla. Características Principales El programa AutoPES. simula todos los elementos de la máquina mencionada. la cual será comparada contra la elegida por la máquina para saber si fue la misma o no.S.S. bajo condiciones controladas la posibilidad de la existencia de la P. Imagen 2 Auto-Percepción extrasensorial. estudiar cada quien. Uno muestra la cantidad de aciertos obtenidos y la.? La respuesta fue entonces crear un programa que emule todas las características de la máquina de Targ y así. que muestra un foco. en la comodidad de su propia casa. una cruz. Tomemos en cuenta la época en la que fueron desarrollados los experimentos mencionados y el hardware utilizado. Esto sugiere el refuerzo y retroalimentación que implementó Targ en su máquina original.

que para usos prácticos. tanto la máquina de Targ como el programa AutoPES.S. ya tienen todas las de ganar desde que empieza uno a jugar. y es donde creo que. aunque en el fondo sepamos que se repite cada cierto tiempo. notaremos que la cantidad de veces que dicho sujeto adivina la carta puede sugerir un resultado muy favorable a la existencia de la P.. o bien. Las funciones azarosas interconstruidas en las computadoras modernas son funciones determinísticas siempre. siempre parece gobernada por el azar mismo.Comentarios y dudas razonables Ahora bien. Curiosamente.E. los cuales pueden ser severamente criticados. Yo creo en realidad que el programa tiene puntos débiles. no es posible más que generar una secuencia pseudo-aleatoria. Así. se trata de solamente un pasatiempo irrelevante. La culpa no es totalmente del buen escéptico de Martin Gardner. qué método habrá usado para elegir la secuencia aleatoria.E. puesto que un desnivel en el mecanismo de giro. Los casinos buscan hacer la menor trampa posible porque de entrada. No sé para el caso de la máquina de Targ. hay que reconocer que las cosas han cambiado mucho en 20 años. todo parece concluir que siguen una fórmula pseudo-aleatoria también. todo investigador serio debe hacerse algunas preguntas para saber si el programa AutoPES puede ser un aliado en la investigación de la percepción extrasensorial. de Targ. que sobrepasan la velocidad de aprendizaje de las personas. Gardner en su libro jamás se pregunta sobre el estado de la función azarosa gobernando la máquina P. que las posibilidades reales en la ruleta siempre están ligeramente a favor de la casa y no de apostador. por lo cual. que las ruletas en los casinos se nivelan perfectamente. sino de los avances tecnológicos.E. .S. No obstante lo burdo del error. Este cuestionamiento puede echar por tierra cualquier experimento de alentadores resultados de la P. Se sabe por ejemplo. pero por las indicaciones que da Martin Gardner en su libro. cuando en realidad se trata de un truco o la demostración de una habilidad del sujeto. provoca que se repitan unos números más que otros. Para empezar. si el método de elección puede ser discurrido de alguna forma por el sujeto con el que experimentamos. es que ambos adolecen de una función que no genera al azar una carta entre cinco posibles (para el software o cuatro en el caso de la mencionada máquina). Es decir. pueden contener la peor crítica.S.

sentimientos de calidez. un BAL de . comienza a notarse dificultades de coordinación motora. En la mayoría de las fiestas el alcohol es invitado por omisión y en general eso hace que las reuniones sean siempre más divertidas. . Porque el alcohol hace que nuestros reflejos sean más lentos y el conducir un automóvil requiere precisamente de lo contrario a los efectos que producen estas bebidas etílicas. en condiciones normales. Los investigadores han descubierto que bajos niveles de alcohol tienen un efecto específico en el discurrir mientras que un incremento en estos niveles genera una reducción en un “auto–monitoreo”. de manera indisoluble. . es claro que el exceso en la ingestión de bebidas alcohólicas puede traer consecuencias nefastas. la cual se mide en miligramos de alcohol por cada 100 mililitros de sangre o porcentaje en miligramos. son un goce para el ser humano. No hay que sorprenderse. no sólo arriesga su vida sino la de los demás. La gente que conduce un auto en calidad de ebrio.15: Dificultades para mantener el balance y el movimiento. Algunas personas encuentran este efecto tan agradable que continúan bebiendo. ya que el hígado puede. .10 significa 1/10 del 1 por ciento (1/1000) del total de sangre cuyo contenido es alcohol.05: relajación notable. Posible muerte. por sus siglas en inglés). especialmente si uno tiene el estómago vacío. este efecto reduce la tensión y mejora la relajación del cuerpo. .50: Se detiene la respiración. El resto va directamente al torrente de sangre). con nuestras sociedades. El Bal depende de • • La cantidad de sangre (la cual se incrementa con el peso) La cantidad de alcohol que se consume en un tiempo determinado (mientras más rápido se beba.40: Pérdida grave de la conciencia. Claramente borracho. el alcohol va directamente del estómago al torrente sanguíneo. Evidentemente no hay dos personas en el mundo que reaccionen a las bebidas alcohólicas de la misma manera.30: Pérdida temporal de la conciencia. Esto quiere decir que poco alcohol genera un estado de pocas preocupaciones y de nuestra conciencia como persona. se está menos alerta. He aquí una lista de efectos de acuerdo a la medición del BAL: • • • • • • • . Una de estas medidas es el nivel de alcohol en la sangre (BAL – Blood Alcohol Level. Entre los más importantes destacan: . . La ciencia ya se ha encargado de estudiar los efectos del alcohol en las personas y ha encontrado una serie de medidas que pueden considerarse bastante fiables para saber si alguien está alcoholizado o bien se encuentra en condiciones de hacer todas las labores y actos que las personas en sus cinco sentidos pueden realizar. procesar un trago por hora.08: Límite para manejar un automóvil y dificultades evidentes en la coordinación y juicio. por ejemplo. Sin embargo.02: Menos inhibición. Por algún motivo. el alcohol está ligado. Es por ello que uno siente los efectos del beber alcohol con relativa rapidez. en esa misma medida se incrementa el BAL.03 y .05. Cuando se beben bebidas etílicas.05 en donde comienza entonces a notarse falta de control emocional y definitivamente pérdida en la coordinación motora con los consecuentes resultados como “cruda” y comportamiento impropio frente a los demás.Primeros pasos iveles etílicos Las bebidas alcohólicas. Recuérdese que hay diferentes factores que determinan cómo la manera de beber lo afectará. El entender los efectos de un incremento en el BAL puede ser usado para controlar la manera de beber. . Desafortunadamente este efecto relajante comienza a tener resultados negativos cuando el nivel sobrepasa . Por ejemplo. en cantidades razonables. Puede verse que los efectos más placenteros del alcohol ocurren cuando el BAL se encuentra entre . Muchos mueren por ello.

i. iii. . Para personas del mismo peso. mientras menos masa corporal se tenga. los efectos serán más notables. No importa cuántos tragos tome. iv. Si se le da tiempo al hígado de procesar el alcohol las posibilidades de emborracharse disminuirán Contenido de alcohol en las bebidas. lo que importa es cuánto alcohol consume Imagen 1 Probando el software Este somero análisis dio pauta para que me decidiera a hacer un programa de computadora que analizara el nivel de alcohol en la sangre. Si quien bebe está tomando medicinas es probable que en algunos casos esto incremente los efectos del alcohol. el efecto del alcohol obviamente será menor. v. Mientras más cansado. Haga la prueba. Mientras menos coma. Peso/masa corporal. ii. más evidentes son los efectos al beber Comida. la cantidad de grasa es más determinante en los efectos del alcohol que en gente con músculos más desarrollados o menos cantidad de grasa Medicamentos. mayor será el efecto del alcohol Tiempo bebiendo. Consulte a su médico Fatiga. En general. Verá que si está alcoholizado los efectos se verán directamente en cómo interactúa frente a su monitor. vi. Mientras más tiempo tarde en tomarse su copa.

que consistía en votar tantas veces como se pudiera en una casilla. En esa misma semana se publicaron también las encuestas iniciales de quién era el candidato con más posibilidades de voto y de acuerdo a los números publicados por las diferentes encuestas. Por ello. por más de 70 años. es decir el rellenar con votos ficticios a favor de alguno de los candidatos. en tercer sitio. Andrés Manuel López Obrador. por decir lo menos. En el caso de los otros dos candidatos. sólo puede emitirse la encuesta a .Primeros pasos Para ganar en las encuestas A inicios del 2006 se inició la carrera por la silla presidencial y los candidatos arrancaron como caballos de carreras en el Derby de Kentucky. No supe de la declaración patrimonial del ‘Peje’. Las trampas eran innumerables. Si los números reflejaban un avance notable en alguno de los candidatos. Dicho de otra manera. el descubrimiento de propiedades no declaradas. es claro que esto perjudicaría la intención de voto de los que van abajo y mejorando los resultados del que fuese lidereando en ese momento. por aquello del voto). etc. Desde pagarles a los votantes por su sufragio a obligar a grupos enteros de trabajadores a votar por un candidato en particular –típico de los sindicatos mexicanos. Pero en mi percepción de los acontecimientos. Calderón dijo tener un patrimonio de sólo unos 5 millones de pesos. dijo respetar mucho las encuestas y mencionó que su segundo lugar (¿habrá leído mal? Si todas las empresas encuestadoras lo ponen en tercer sitio) lo iba a revertir con el paso del tiempo. el sistema no permite oprimirlos. seguido unos puntos atrás por Felipe Calderón y debajo de éste. buscaría que las encuestas lo pusiesen de líder de alguna manera y. pero para como él canta las rancheras. El partido en el poder. habrá salido como el más humilde de los súper candidatos a la presidencia. sobre todo hacia el final de las campañas. o el carrusel. o bien el efecto de urnas “embarazadas”. se me ocurrió hacer un programa que le preguntase a la gente su intención de voto. en particular. las cuales –al menos a mí– me parecen una auténtica bofetada de burla a toda la nación mexicana. creía que el hombre era (y sigue siendo). De esta manera. Llama la atención que Madrazo hable del respeto a las encuestas pero que a la malagueña se coloque sin más en un segundo puesto. incluso los más sucios. y en donde los medios se cuidarían de no hacer evidentes sus preferencias particulares de algún candidato. Los demás candidatos realmente no pintaban en la intención de voto. Sus contradicciones son el pan de cada día. los insultos. en este mundo de tanta computadora y conteo cibernético. el sistema simula que se conecta por módem a una central y descarga el voto emitido para la encuesta. Al publicarse las encuestas en cuestión. dueño y señor de tantas trampas. Las descalificaciones. mientras que Madrazo habló de un patrimonio de 29 millones de pesos. de canonjías o prebendas de uno u otro candidato se irían sabiendo en los medios y todo eso con el propósito de cambiar la intención de voto de los ciudadanos. Salieron a paso veloz por el triunfo y desde el día uno tuvieron montones de actividades. Obviamente en esas fechas estábamos empezando y habría veintitantas semanas de actividad política febril. Para ayudarlo a evitar los dimes y diretes. los cuales –como nunca antes– tendrían información puntual de cada contendiente por la silla presidencial. sino que simplemente los mueve de lugar. Roberto Madrazo. so pena de ser ventilados como paleros públicamente. muy poco transparentes. por ejemplo. capaz de cualquier truco. López Obrador iba en primer puesto. el PRI (partido revolucionario institucional. simplemente al querer oprimir sobre cualquiera de esos botones (pensé en “votones”. mi programa de encuestas lo que hace es poner tres botones para que el usuario elija uno de ellos (sobre el candidato de su preferencia). algún candidato. ¿No hay contradicción entre los términos revolucionario e institucional?). Si se vota por el PRI. inventó todo género de trampas para ganar las elecciones. como Madrazo. conociendo sus antecedentes priístas. pensaba que Madrazo. pensaba que le darían una importancia fundamental a las encuestas. Y ni hablar de las declaraciones patrimoniales. Los resultados se mandarían automáticamente por Internet a un sitio y así el candidato priísta podría saber la realidad de las encuestas. Debe saberse que los procedimientos electorales en México durante muchos años fueron.

Imagen 1 Encuestas políticas amañadas . en el mejor estilo de sus trampas electorales que hemos vivido durante tantos años.favor del candidato de PRI.

artificios y situaciones que pueden hacer creer al más inteligente las cosas más absurdas. indefectiblemente. la sugestión. Más claro ni el agua. Los magos basan sus prácticas en principios psicológicos y en la actualización de métodos manipulativos y mecánicos. es probable que pueda sorprender a propios y extraños con este pequeño artificio de software. el asunto es que hoy por hoy la magia resulta una de las grandes artes y que gracias al ingenio de los creadores de ilusiones. Para precisamente este artículo. uno de los magos más exitosos de los últimos tiempos puede hacer ilusiones verdaderamente inconcebibles: desaparecer la Estatua de la Libertad. se le pide al mago computarizado que adivine la carta elegida por dicho usuario. Quizás su origen se remonte a la intención de engañar (con fines aviesos). en definitiva. La magia es pues el arte de entretener mediante trucos que aparentemente suponen una violación de las leyes de la naturaleza. etc. sin el mínimo margen de error. a terceros. ser cortado por una sierra eléctrica en dos partes. es obvio que algún truco está realizando. La duda estaba sembrada y más pronto que tarde hallé en Internet cualquier cantidad de información al respecto de la magia.Primeros pasos Un mago por software Una de los grandes entretenimientos del hombre ha sido el de la magia. Estos principios son la distracción. a una lógica falaz y. . Una vez hecho esto. la imitación y el ocultamiento. ¿Cómo hacer para que la computadora pueda realizar algún truco de esta naturaleza. Los espectadores no ven todo lo que ocurre y creen ver cosas que en realidad no suceden. Por supuesto que nada de esto en verdad ocurre. En todos los casos. la carta que el usuario seleccionó. De hecho. Esta es la definición que da la Enciclopedia Encarta de Microsoft al respecto de la Magia Blanca. Esta percepción engañosa conduce a falsas creencias. La intención de este artículo es intentar hacer ilusionismo utilizando la computadora. Cuando Copperfield vuela alrededor de un escenario. ley a todo esto más respetada que cualquier otra en el universo. Sin embargo. El sistema le pide al usuario que elija una carta determinada (presentada en la pantalla) y la memorice. ¿Cómo es que Copperfield logra ilusiones como volar alrededor de un escenario sin que se hagan evidentes poleas. Sin embargo. podemos disfrutar de actos que deberíamos considerar sorprendentes en todo sentido. David Copperfield. leerá el pensamiento de quien ha hecho la selección y adivinará. porque es imposible que pueda violar a la gravedad. La Estatua de la Libertad no se ha movido de su lugar para que Copperfield logre el efecto de desaparecerla. Por supuesto que estos trucos son conocidos por unos pocos y quien quiera hacerse de los secretos atrás de ellos es probable que tenga que desembolsar grandes cantidades de dinero. el programa presentado logra un gran truco de mentalismo. de la enorme y vasta colección de trucos. no diré cómo es el truco porque como buen mago nunca hay que decir el secreto del funcionamiento del mismo. El Mago. lo que finalmente hace a un mago de un gran éxito es no revelar jamás el truco. cables y arneses? Sólo él y su equipo de trabajo lo saben. desde luego. a la convicción de que el ejecutante consigue hacer cosas imposibles. En este caso.

Imagen 1 El software del Mago corriendo Sin embargo. más temprano que tarde hallarán cómo es que funciona el programa y entonces habrá que llegar a las conclusiones de rigor. . pues finalmente ésa fue la intención al escribirlo. eventos y en nuestro caso. Por lo que se refiere a este software. espero le divierta. podemos realizar un truco por demás sorprendente a primera vista. cartas de una baraja. el programa podría haberse escrito de manera mucho más complicada precisamente para que costase más trabajo hallar las razones por las cuales funciona el truco. Noten como gracias a esa peculiaridad de la manera en como prestamos atención a hechos. La que destaca en este caso es la de la naturaleza de la observación humana. Como siempre. Pero la verdad esta tarea se la dejo a alguno de mis cinco lectores que sé que asumirán el reto de inmediato.

al menos. Hube de hurgar un poco en la red Internet y en una hora. Este reloj. en el cómputo. Guillermo Mallén me enseñó a hacer un reloj de esta naturaleza y ahora lo tengo en la pared del cuarto en donde normalmente trabajo. quizás menos. Ese reloj. Debe haber. Porque. Nos salen como naturales. Entonces. por decirlo de alguna manera. Por ejemplo. No fue difícil. Imagen 1 ¿Qué tipo de cursor le agrada más? . ¿quién dijo que todos los relojes deben correr con las manecillas de una manera y no en sentido opuesto? Aunque hace ya mucho tiempo de esto. a muchos nos educan de manera que decimos muchas veces “gracias” de manera automática. no eran suficientes. más allá de hacer algo irreverente o fuera de lugar. me senté a programarlo. rebelde en todos los sentidos? Mi plan era hacer un cursor al mejor estilo de la “Britney–señal”. la gama de cursores tradicionalmente disponibles a los usuarios. en el peor de los casos. La razón de proyectos de este estilo. obviamente. usando la computadora. ¿Por qué no hacerse de un cursor no tradicional. se me ocurrió que. es un buen ejemplo de un comportamiento inesperado. Digamos que ya no lo pensamos. desde luego. en particular. comportamientos aprendidos que no son tan aceptables. “del otro lado del espejo”. Hay un vastísimo campo para la creatividad en la programación y quizá es una de las razones por las cuales haya una verdadera cantidad enorme de programadores alrededor del mundo. Son como comportamientos aprendidos y. lo que lo hace diferente a los esquemas conocidos. que día a día encuentran nuevas y mejores maneras de hacer muchas cosas. ya tenía mi proyecto funcionando. es la posibilidad de aprender algo más de cómo una computadora funciona. A mí muchas veces me sorprende ver ideas realizadas en programas que me hacen pensar cómo es que no se me ocurrió antes. a las mayorías. pero en las sociedades se impone un esquema de conducta que. nos debiera beneficiar a todos o. porque en Delphi estas labores resultan relativamente sencillas. Hace tiempo vi el reloj de pared que tenía un viejo amigo en la Universidad Iberoamericana. tienen su bondad: no tenemos que pensar para hacerlos. como si viésemos el reloj del otro lado del espejo. rebelde. en principio. es que camina al revés.Primeros pasos Software irreverente Alguna vez se me ocurrió que los seres humanos hemos llegado a acuerdos tácitos en muchas situaciones.

que sería muy fácil de hacer probablemente. pero como no sabemos hacerlo. o bien. . tendríamos una perspectiva más certera de lo que realmente se puede o no hacer con una computadora. usar programas muy sofisticados para realiza tareas por demás sencillas. que no estaría mal saber un poquito de mecánica elemental. porque muchas veces necesitamos un programita muy específico. Vaya. al igual que lo que pasa en un coche. entonces tenemos que decirle a alguien. y por otro lado. hay un tercer beneficio: no tendríamos que depender siempre de alguien que se dedique a estas labores profesionalmente. como Word o Excel. La virtud de esto es que nos daríamos cuenta de lo terriblemente difícil que es hacer ahora sistemas tan complejos. no se “instala” permanente o indefinidamente en la computadora. Igualmente. Por ello. Cabe señalar que el cursor rebelde funciona por el tiempo que uno quiera. porque probablemente muchísimas tareas triviales. los mismos usuarios podrían resolverlas fácilmente. en cómputo podría sernos útil saber programar lo indispensable. peor aún.Creo firmemente en que la gente que usa una computadora debe tener cierta preparación en programación. algo así como matar moscas a cañonazos.

Pero con los comerciales ha llegado toda clase de promociones fantásticas. por ejemplo. se han ideado cualquier cantidad de artimañas. de acuerdo a las televisoras. y considerando que los lectores merecen ser recompensados por haber sido fieles (hasta ahora) a la lectura de mis artículos. que sin duda será la delicia de muchos. de galletas saladas. . La información se desplaza por cuanto medio ha inventado el ser humano para estar en contacto con otros de su misma especie. Por ejemplo. incluyendo vasos. cilindros de agua. con el logotipo de alguna marca refresquera es algo por demás común y corriente. desde luego coleccionables se pueden localizar en los centros de canje oficiales por un par de pesitos y un poco de suerte. Aparentemente las prisas son ya parte cotidiana de la vida de todo aquel que ha decidido radicar en alguna populosa ciudad. se trata de hallar el pase de abordar para ir a un vuelo a algún lugar paradisiaco o ya de perdis la obsoleta Disneylandia. Espero les guste. lo que se observa es que tales productos promocionales terminan por invadir nuestras alacenas y cuartos. hemos decidido regalar un lindo portavasos. Obviamente con los medios de información aparecieron los comerciales. la posibilidad de hacerse de una vajilla completa. La_Morsa Software Co. que son quienes caen más frecuentemente en estas promociones. Por supuesto que alguien ganará esos premios. etc. Imagen 1 Regalo para el lector Otras promociones pretenden mantener entretenido al consumidor dándole los premios a cuentagotas y por meses. seguramente.. Si algo de suma importancia pasa en Timbuctú. En algunas hay que destapar los envases de mayonesa para ver si nos hicimos de un coche. de convertirnos en consumidores de todo cuanto se anuncia en la TV. hay el mayor auditorio. Pues bien. Es claro para todos que no es lo mismo que aparezca un anuncio comercial a las tres de la mañana que a las nueve de la noche. a comer mayonesa por el resto de la eternidad sin premio alguno que nos consuele. independientemente de que las empresas hagan negocio con estas colecciones infinitas de estampas. Con la intención malévola (de parte de los genios de la mercadotecnia). en conjunto con gigantesca refresquera. En otras promociones. Hay horarios triple AAA que son los que. La televisión gratuita está llena de ellos y lo que las empresas pagan para promover sus productos y bienes depende muchas veces de las horas en las que se desea salir “al aire”. lo sabemos prácticamente a los minutos de haber ocurrido. las estampitas de quizás La Guerra de las Galaxias o Tarzán. En realidad. se llenan de estampas repetidas porque hay un par que son prácticamente imposibles de obtener. En general los chamaquitos. pero la verdad es que casi siempre los premiados son un par de personas y los demás estamos condenados. Los medios de información supuestamente informan los acontecimientos más relevantes segundo a segundo.Primeros pasos Regalo de nuestros patrocinadores El mundo moderno es sin duda vertiginoso.. siguiendo con esta tónica. Los pepsilindros. vajillas.

En ese entonces. llamado Absolute Database (http://www. el cual además. no es necesario cargar con el BDE en el proceso de instalación. La esencia del programa es que debía ser sumamente simple. para Windows. de tal forma. Aunque la teoría ya estaba más que analizada. El software corría en MsDOS. hacer la versión para Windows. por ser un asunto privado.. etc. los días en que había sido escrito. sin excesiva cantidad de opciones. Vaya. con las limitaciones de su momento. pues había que proceder con cuidado. me sugirió escribir un programita que sirviera como diario personal. Como todavía tenía el archivo con las pantallas diseñadas por Javier (en un respaldo de mis antiguos discos duros). Igualmente. Años después se me ocurrió.htm). Aparte. que todo llevaba su buena ración de esfuerzo. Imagen 1 Bytes Privados… Un diario personalísimo .. uno de los pioneros de Internet en nuestro país. Su enfoque era minimalista y evidentemente no se trataba de hacer grandes aspavientos. DBase. Y al llegar a la estructura de datos que había que crear para guardar el diario privado. sin ayuda.componentace.. debía contemplar la posibilidad de que no pudiese ser leído por terceras personas. Javier Matuk había diseñado las pantallas que debía tener el programa. Javier Matuk. paso a paso. sin bibliotecas de rutinas de terceros que bien podrían resolvernos las dificultades más elementales. además porque para uso personal es gratuito. Había que tener rutinas que encriptaran los textos del autor de diario de forma tal que sólo él podría tener acceso a los mismos. escribir un programa de esta naturaleza representaba cierto reto. encripta la base de datos y solamente con la contraseña correspondiente puede ser leída. que cuando uno tiene que acceder a los datos.Primeros pasos Los bytes privados Hace unos diez años. Aquí saqué ventaja del BDE (Borland Database Engine). como un mero ejercicio de programación en Delphi. Interbase. Obviamente la labor fue por mucho más sencilla que en su versión de MsDOS. que es el mecanismo por el cual se pueden crear bases de datos en todos los formatos populares: Oracle. el BDE nos provee de una serie de rutinas ya genéricas que hace el trabajo limpio y sin complicaciones. Obviamente. FoxPro. la sustituí por un componente de terceros. es decir. muchas veces había que hacer las cosas “a mano”. y así surgió la versión de Los Bytes Privados. copié hasta donde se pudo el diseño original. las interfaces gráficas no eran lo que hoy conocemos. pues el formato de la base de datos del diario sería crítica para que el desarrollo pudiese hacer fácil o complicado. ya que todo esto se compila en el ejecutable de Delphi. la implantación de un procedimiento que hiciese esto solía ser complicado. De hecho. Puse manos a la obra y escribí una primera versión en turbo Pascal. sino por sólo aquel quien tuviese la contraseña correspondiente. Paradox. En suma.com/bde_replacement_database_delphi_absolute_database. Cuando todo funcionó correctamente en lo que se refiere a la base de datos. así como la manera de acceder a los datos alimentados. etc. una maravilla este componente.

Usé para ello Inno SetUp (http://www. un programa para crear sistemas de instalación de software. El software es totalmente gratuito y genera un archivo ejecutable que puede contener todo lo que necesitemos en nuestra instalación: tipos de letra. Una vez realizado esto. archivos especiales. tengo ya un paquetito completo. escrito además en Delphi y con disponibilidad del código fuente. que debido a la fortaleza de las herramientas modernas. entonces procedí a crear el sistema de instalación. se escribió en menos de una semana y contempla características de encripción y seguridad informática que hace apenas unos años nos hubiese parecido casi mágico.org/isinfo.Al finalizar el software. etc. imágenes.php). .jrsoftware. Otra maravilla del software gratuito.

de ahí que un conjunto de pixeles lo veamos como una sombra mientras que otro subconjunto de puntos forman lo que parece ser es una mano. cambiar brillantez o contraste. verde y azul (RGB. Ahora bien. si tenemos el componente rojo en su máximo pero las componentes azul y verde en cero. tomar el inverso o negativo de la misma. son en realidad un conjunto de puntos en la pantalla (pixeles). tienen cualquier cantidad de artilugios por software que permiten modificar las fotos escaneadas. con diversos tipos de letras. en muchos casos. de cientos de maneras a través de filtros gráficos. todo el verde y todo el azul en un punto de manera simultánea. Hay tantos filtros como la imaginación de cada quien. que en manera análoga con la paleta de un pintor. Las imágenes escaneadas. Cuando hacemos esa imagen activa. tendremos un punto colorado. uno se pregunta qué tan fácil o difícil debe ser el escribir este tipo de filtros. En las computadoras personales (así como en la TV y en otros inventos del hombre blanco) cada pixel o punto en la imagen tiene un color definido por sus tres componentes primarias: rojo. por ejemplo. Ejemplos de filtros gráficos son: convertir una imagen de color a blanco y negro. regresar a esa capacidad de sorprendernos de nuestro derredor. que permite la edición e impresión de documentos de maneras hace unos pocos años inconcebibles. Cuando vemos algunas de las cosas que actualmente pueden hacer los programas. Ni qué decir de los programas de gráficas actuales. Empecemos por un poco de teoría. Esto significa 256 a la tercera potencia. por las siglas en inglés de dichos colores). que permite modificar una imagen de alguna manera en particular. tendremos el color blanco (cosa que pasa siempre. para un total de 16. Picada mi curiosidad me puse a investigar y hallé respuestas interesantes. en sus estudios de la luz). realzar bordes de la imagen. de tal manera que si tenemos todo el rojo. además de los colores que se pueden generar.216 colores en total. existe algo que se denomina la “paleta de colores”. Es una transformación de un conjunto de puntos a otro (muchas veces irreversible). Nos parece elemental ahora tener un procesador de palabras como Word. entonces la imagen anterior se pone con la paleta de colores correspondiente a la segunda. llegamos a la conclusión que estos juguetes son maravillosos. una de las mismas (en la ventana no activa) se verá con colores que no corresponden a su paleta. pero más fantásticos aún parecen ser algunos programadores que realizan en ocasiones verdaderos actos de prestidigitación. Igualmente. .777. en algunas tarjetas de vídeo con poca memoria si ponemos simultáneamente en la pantalla dos imágenes con dos paletas de colores diferentes. tiene ya la serie de colores definidos. El hardware de la PC soporta 256 tripletas RGB en su paleta de colores y por ello. En las tarjetas gráficas actuales se pueden tener hasta 16 millones de colores ya que cada componente de la tripleta RGB permite 256 valores diferentes. Un filtro gráfico es un subprograma dentro de alguna aplicación. Cuando uno ve lo que se puede hacer con estas herramientas de software. Nuestro ojo hace una labor interpretativa contínuamente. Pasamos a la hoja de cálculo y en verdad hay que admirarse de la cantidad de poder de manipulación de datos que tiene semejante herramienta financiera. Existen compañías de software en los EEUU que se dedican a crear filtros gráficos para populares programas de manipulación como Photoshop. las imágenes multicolores. como Sir Isaac Newton demostró hace siglos. etc. con ciertos colores muy específicos.Gráficas Imágenes y filtros gráficos La computación es una ciencia que nos permite. por decir algo. etc.

decidí que había que investigar en vivo y en directo cómo se hacen los filtros. Si queremos más brillo. el dos un RGB(2.255. mi código es definitivamente tortugoso. simplemente le sumamos una constante a los tres componentes de color.0).Imagen 1 Programa de filtros (la foto muestra la famosa foto de la mujer afgana (de ational Geographic). En vista de todo esto. los resultados de cada filtro son los mismos en donde la única ventaja del código escrito por un servidor es que al menos se entiende cómo es que funciona. un filtro elemental es el cambiar la paleta de colores por la correspondiente blanco y negro (y sus respectivos tonos de gris). a mí no me queda claro por qué los números de la matriz son esos y no otros. hacemos que el RGB de cada punto en la pantalla sea RGB(Valor+Constante. tendremos que el registro cero tendrá RBG (0. que tiene que ver con una matriz de transformación y siempre es más complicado de comprender. De hecho. Cabe señalar que todo el código fuente está escrito en Delphi (Pascal para Windows.1).2). Eso se hace igualando los tres componentes RGB para cada registro. cuando uno observa la velocidad con la que los filtros de Photoshop hacen su tarea. si la paleta de colores tiene 256 registros. en donde claro. El programa incluido es un estudio bastante informal de algunos filtros gráficos que pueden ser aplicados a las imágenes en formato BMP y JPG. Valor+Constante. el registro uno RGB(1. hacer un filtro que cambie la brillantez de una imagen.1. aplicando el filtro mosaico Una vez sabiendo esto. hasta llegar al registro 255 con un RGB(255.255). Al final de día. manipular una imagen es mucho más sencillo. me siento como Aquiles y la tortuga en una desigual carrera. por ejemplo. Valor+Constante) El contraste de una imagen requiere de otra técnica.2. Por ejemplo. Esto simplemente quiere decir que los programadores responsables de los filtros gráficos en los programas comerciales que usamos sí se aplicaron para generar el código más rápido del oeste. Si queremos. Porque miren ustedes.0. Así. . pues) y la intención primordial era hacerlo instructivo más que eficiente. sin embargo.

por ejemplo. verde y azul del punto en la primera imagen (R1). lo mejor es separar cada punto de las imágenes en sus respectivas coordenadas RGB de manera que tengamos algo como esto: blendpixelR := (R1 * alpha) + (R2 * (1. por sus siglas en inglés) y es uno de los más usados a nivel mundial. Por ello mismo. cuando se hace una transformación de una imagen. pero queremos sobreponerla. con las coordenadas roja. Esos tres números representan el azul. ésta siempre se basa en la manipulación de los puntos de color (los pixeles). en un 40% (como si fuese una transparencia a un 40% del total del color). que finalmente en las entrañas de la máquina no son más que valores que van de 0 a 16 millones. respectivamente y alpha es el porcentaje que se desea fusionar la imagen A con la B. Green. blendpixelG y blendpixelB son el resultado de fusionar las coordenadas roja. ¿Demasiado sencillo para ser cierto? El hacer esto. Para la computadora una fotografía no es más que una colección de puntos de diversos colores. pensaba ¿no me hará una especie de batidero de ambos pixeles? Me di entonces a la tarea de escribir un programita que hiciese esto para ver si esto funcionaba correctamente.0 – alpha)). sobre otra imagen.0 – alpha)). Para que esto funcione. verde y azul. Imaginemos. Uno de los efectos más interesantes es el del blending (término inglés que significa licuar). pero que en realidad podría considerarse como el de fusionar.0 – alpha)). el rojo y el verde. Blue. a través de su hardware. verde y azul del punto en la segunda imagen (R2).Gráficas Blending Los efectos visuales que hoy día se pueden hacer usando una computadora son simplemente el resultado del procesamiento digital de imágenes. Esto es lo que se llama el modelo RGB (por aquello de Red. blendpixelG := (G1 * alpha) + (G2 * (1. aproximadamente. ¿Cómo se verá el resultado de esto? ¿qué tan difícil resulta programar dicho efecto? La teoría atrás del blending es muy simple. una imagen con otra. La razón de esto es que la computadora. Imagen 1 Blending de Aruna (la esposa del campeón mundial de ajedrez Anand) con la imagen de la conferencia de prensa entre Anand y Aronian . Se trata de tomar cada punto de ambas imágenes y decirle al sistema que ponga un porcentaje que le correspondería al punto en la primera imagen y el resto (del 100%) sería para el punto de la segunda imagen. que tenemos una fotografía A. en algún porcentaje. ve el color como una combinación de tres números que van de 0 a 255. Donde blendpixelR. blendpixelB := (B1 * alpha) + (B2 * (1. que son un reflejo de los valores internos de sus respectivas coordenadas rojo.

porque aquí la combinación de rojo.Puede verse que el efecto funciona perfectamente. al combinarlos de acuerdo a la fórmula del blending. Cabe señalar que este comportamiento no se da en la pintura al óleo. . Por ello mismo. que en la pantalla de la computadora son haces de luz de una frecuencia determinada. verde y azul en iguales proporciones nos daría negro. notaremos que ambas imágenes se fusionan. Por qué funciona el programa? La respuesta es simple: estamos hablando de pixeles de color. o con pinturas físicas. no blanco. por ejemplo.

resulta formidablemente buena. vea exactamente los mismos colores. es verdaderamente simple. en RGB son R=0. en un gradiente que va de muy claro a muy oscuro Hacer una rejilla en la foto original. en diferentes tonalidades o colores representan al final de cuentas una imagen que el cerebro analiza y decide si n muestra algo reconocible o no. La teoría de la creación de imágenes recursivas. las cuales puede ser costoso en tiempo y espacio en disco. G=0. Así. Estos puntos. G=1. porque la paleta de tonos de grises no es mayor que 256 tonos de gris. las cosas son muy diferentes. Los componentes en gris para el negro. Desde luego. imágenes que se recurren a sí mismas. Desde luego que la paleta de colores websafe ya no es necesaria considerando que las tarjetas de vídeo manejan millones de colores y así. Queda claro que hacer imágenes recursivas con la misma imagen fuente requiere de generar las imágenes que sustituirán regiones de puntos. En la decisión del diseño del software de fotos recursivas en tonos de gris. Para el caso del blanco y negro es relativamente fácil. el cual tendrá como componentes RGB las siguientes: R=255. Sustituir el tono de gris encontrado por la foto con el tono de gris más próximo. 256 para el verde y 256 para el azul. En el caso particular de imágenes creadas con la misma imagen (en tonos de gris). Si se quisiera tener una gama completa de imágenes (la misma imagen) con diferentes colores. de otra marca. están hechas de puntos. Para el efecto deseado fueron suficientes. la gente de Netscape generó la llamada paleta websafe. en lugar de puntos. que consta de 216 colores y esto da un buen margen para una gama reducida. Tomar cada pequeña región (una sección de la rejilla). en color. B=255. B=1. dicha paleta resulta inútil en términos generales. .Gráficas Fotos Recursivas en color Las fotografías. la teoría al respecto puede describirse de la siguiente manera: • • • • • Tomar una imagen a procesar (la que llamaremos imagen fuente) Pasarla a tonos de gris Copiar esa misma imagen 20 veces pero con diferentes tonos de gris. es decir. no vamos a poner esa cantidad de imágenes. si quisiera hacer lo mismo con fotos a color ¿qué habría que hacer? Problema de la recursión a color Básicamente la dificultad reside en que la gama de tonos que hay que tener presentes crece muy rápido en color que en blanco y negro. pero para esta aplicación. con la intención que quien ve en una computadora un color. Eso hace que la cantidad de imágenes a crear sea de 768 mínimo. con diferentes tonos o colores? A esto le llamé imágenes recursivas. (o dicho en otras palabras. Sin embargo. B=0. ¿Qué tal poner. ¿qué otra posible solución existe? La solución es verdaderamente simple: usar una paleta de colores disminuída. G=255. Sin embargo. en otra. la ocurrencia más simplista fue usar 20 fotos con tonos de gris diferentes. imágenes creadas con otras imágenes). considerando que dejaríamos muchos colores fuera del espectro de trabajo. Quizás un cálculo conservador podría ser 256 para el Rojo. Afortunadamente Netscape creó semejante paleta. como ya hemos dicho antes. por decirlo de alguna manera será: R=1. ¿cuántos colores necesitaríamos usar? Una computadora personal puede desplegar actualmente millones de colores. y calcular el tono de gris de la misma. pero razonablemente completa de los siete colores del arco iris. por ejemplo. Mencionamos antes que 256 tonos de gris son más que suficientes para pintar una imagen blanco y negro. la misma imagen que quiero procesar. A partir de esta idea comencé a jugar con la suposición de poner imágenes en lugar donde había puntos. y así sucesivamente hasta llegar al blanco. Para un negro menos oscuro.

A esto le llamamos una métrica y en este caso la denominamos “métrica euclidiana”. entonces. Ry. Tomar cada pequeña región (una sección de la rejilla). calcular el RGB de la región de la imagen fuente contra el RGB de cada una de las fotos en la biblioteca y poner la que tenga la distancia mínima. Hacer una rejilla en la foto original. A eso le denominamos una métrica. By son las componentes RGB de X y Y.El procedimiento es entonces parecido al de crear imágenes recursivas en blanco y negro (cuando decimos blanco y negro. . Imagen 1 Ángeles hecha de Ángeles Aunque el procedimiento suena bastante simplista. considérese que ponemos en los ejes X. respectivamente. en donde cada color de la paletta websafe es un punto en el espacio tridimensional. o mejor dicho. lo que tenemos que hacer es calcular la distancia de un punto a otro. En realidad todo se basa en algo que puede definirse como la distancia entre dos colores.y) = raíz cuadrada ((Rx-Ry)^2 + (Gx-Gy)^2 + (Bx-By)^2) donde Rx. entre dos colores. Y y Z los colores R. G y B respectivamente. tenemos un sistema de coordenadas. Bx. Así. Sustituir la región analizada por la foto con el color más próximo. Lo que hacemos es. De ahí podemos concluir que el punto de ese color en particular podrá ser sustituido por el punto más cercano geométricamente hablando. Dicho procedimiento va como sigue: • • • • Tomar una imagen a procesar (la que llamaremos imagen fuente) Copiar esa misma imagen 216 veces pero filtrando cada imagen con un color websafe diferente. y calcular el color promedio de la misma. Gy. ocupará un punto en ese espacio. Para entender esto. Este filtro es equivalente a poner una mica de un color específico sobre la imagen original. tomamos una región de la imagen a procesar y la colocamos en nuestro sistema de coordenadas. la geometría analítica tiene una ecuación elemental para encontrar la distancia entre dos puntos: Distancia(x. tenemos entonces una manera fácil de encontrar la distancia entre dos puntos. Por suerte. Es decir. hay que entender cómo es que la computadora puede “ver” los colores de la región analizada y los de cada foto. Así. hablamos de tonos de grises). Gx. Si ahora.

Si Ud. en lugar de crear una imagen recursiva. Imagen 2 Marga. un mosaico Post-It es simplemente un mosaico de cuadros de colores sólidos (en lugar de usar la misma fotografía. Gabriel Martínez Valois me ayudó generando siete imágenes de Post-It virtuales. en el primer resultado con post-it . como en las imágenes recursivas). Para que los Post-It se vieran más reales. un mosaico sencillo hecho con este elemento. Imagen 2 Los post-it virtuales Como el programa de las imágenes recursivas ya calcula el color promedio de cada región a procesar y la compara contra la paleta web de colores. generó una imagen completa. Se me ocurrió entonces que podía usarse el programa de imágenes recursivas para generar mosaicos al mejor estilo Post-it. El sistema usará la colección de Post-it virtuales en lugar de usar la imagen original para generar el mosaico final. se me ocurrió que se podían tener imágenes de Post-It virtuales. los cuales generaría de diferente color (los 216 colores de la paleta web). decide que quiere un mosaico Post-It. las cuales añadí a mi programa. encienda la opción “estilo Post-It” y listo. se me ocurrió que debían ser procesados con algún programa de imágenes o de animaciones que le dieran cierto valor de imagen fotorrealista. Si nos vamos a la raíz del problema.La opción “Estilo Post-it” Hallé en una página de Internet a alguien que con los populares post-it (esas hojas de 3x3 pulgadas).

aunque sea de otra foto fuente. Es un efecto final también interesante . . Esto. La creación de las 216 imágenes se hace espectacularmente rápido. Para ello. la cual contiene muchos tonos pastel. pero muy rápida. repetimos. es un problema de la librería de manejo de imágenes JPG de Delphi y no puede ser. por el momento. Imágenes de más de los 3 megas en total no pueden ser creadas. cargue la nueva imagen y procese. pero sin duda muy pastel.Problemas detectados El software usa la paleta websafe. primero procese la colección de imágenes que desea. Una vez hecho esto. Más allá de ello el sistema de generación de mosaicos recursivos generará un error y no podrá guardar a disco la imagen generada. De hecho. solucionado por el autor del software. Se hizo hincapié en el desarrollo de este software en la necesidad de que esta parte de creación de imágenes fuese muy. El sistema usará la biblioteca generada. El efecto final es interesante. Es posible crear fotos recursivas usando una imagen fuente y otra biblioteca distinta de imágenes. imágenes mayores de 16 megas es un problema enorme para el sistema operativo Windows.

calculaba el tono de gris de dicha región y al imprimir sobre-encimaba letras para dar la cantidad de gris necesaria. No recuerdo cómo fui a parar allá considerando que yo estudiaba en la facultad de Ciencias y que todo lo demás era por definición “chafa” frente a lo que nos podían enseñar en mi escuela. por ejemplo. como la imagen original. Pero regresando al asunto. no tan lejanos a todo esto. Cabe recordar que el mundo no es como lo conocemos ahora. Imagen 1 Logotipo de Sopa de Letras (cortesía de Juan López) . la impresión mostraba una imagen fantástica. dichos artefactos eran de tambor. porque el profesor de dicha asignatura se la pasó mostrándonos carteles que imprimía en las enormes impresoras de las máquinas grandes de la UNAM. Más adelante. no podían imprimir imágenes como hoy estamos acostumbrados. pero considerando que las limitaciones del pasado ya han sido superadas. era prácticamente imposible de hacer. etc. por decirlo de alguna manera. cuando de niño me daban sopa de letras. las cuales hoy día parecen gigantescos dinosaurios a punto de extinguirse. en la facultad de Contaduría y Administración. Pero esto es meramente un recuerdo de la infancia. mi primer curso de programación fue en Fortran. aunque yo siempre sospeché que el profesor estaba usando algún programa de la IBM.Gráficas Sopa de letras Alguna vez. La idea es sugestiva y desde hace muchos años se ha dejado sistemáticamente esta tarea a generaciones de programadores. Es más. esas imágenes a letras las cuales al imprimirse se veían desde lejos. Mientras más letras eran encimadas en la misma posición en el papel. las impresoras solamente existían en grandes tamaños y nadie en su casa podía soñar con tener una. Sopa de Letras es un programa para generar imágenes a partir de letras. Así. lo cual imprimían caracteres como de máquina de escribir a gran velocidad. Las primeras impresoras. En mis tiempos de estudiante en Ciencias. porque todo parecía diseñado para esas impresoras. Vista de lejos. cuando entré a la Universidad. IBM fue quizás de los primeros en crear este tipo de imágenes usando sus enormes computadoras e impresoras. La técnica usada era muy simple: tomaba una región de una foto escaneada (asunto que no hay que olvidar tampoco. que a lo lejos mostraban a la Monalisa. a una despampanante mujer desnuda en la playa. El caso es que no aprendí Fortran. Sin duda este arte por computadora era meritorio. la única opción en ese momento era traducir. más oscura era esa parte. Visto de cerca se podían reconocer ciertas letras a veces. el maestro en cuestión mostraba carteles hechos a partir de símbolos de impresión. desde luego. se me ocurrió que se podía jugar a hacer frases con las letras de pasta que flotaban por todo el plato sopero. pues los scanners eran muy costosos).

al igual que modernos sistemas de programación. Mozilla Firefox. podemos hacer mejoras incluso sobre la idea original. primero se saca el color promedio de la región y se pasa a gris. la salida (los resultados) de procesar una imagen. Por ello. lo que básicamente debe hacer el software es: • • • • crear una rejilla sobre la imagen a procesar tomar cada región de la rejilla y ver su tono de gris sustituir el tono de gris por la letra más adecuada continuar así hasta terminar con a imagen Si se están considerando imágenes en color. sino que a letras de colores sustituyendo la región. en HTML están permitidas las letras de color. Si las regiones son muy grandes. las letras que sustituyan a las regiones de color no podrán mostrar una imagen muy bien definida. ésta puede pasarse no sólo a tonos de gris. la imagen con caracteres resultará mucho mejor definidas. etc. Por ejemplo. Esto permite una inmensa gama de colores. se presentan como una página HTML que puede verse con Internet Explorer o Netscape Navigator. incluyendo el lenguaje de descripción HTML para páginas web. Si se tiene una imagen de múltiples colores. . El tamaño de la rejilla es importante. Si las regiones son muy pequeñas. Imagen 2 Ventana principal de Sopa de Letras Ventajas de la modernidad Debido a que la vida moderna nos permite tener imágenes escaneadas fácilmente hoy día. El enfoque de los creadores de HTML fue dotar a cada letra en la pantalla de un color determinado dentro de los 16 millones disponibles en la paleta RGB. Los resultados finales de esta idea son verdaderamente agradables y sorprendentes.Teoría de operación Para crear este tipo de imágenes.

Si ud. Aquí cada caracter tendrá el tono de gris de la imagen y la letra correspondiente al tono de gris asociado. Se necesita tener instalado el tipo de letra truetype en la máquina. Se necesita tener instalado el tipo de letra truetype en la máquina. Aquí el programa sustituye cada región analizada por una ficha del dominó. Aquí se imprime sin la propiedad de las letras en HTML. Aquí el programa sustituye cada región analizada por una ficha del dominó.¿Qué tipo de imágenes puede hacer Sopa de letras? El procesamiento de las imágenes puede ser en una de las siguientes modalidades: • Colores SI letras.HTML para ver la imagen en su navegador de Internet) Tonos de gris + letras tonos de gris. instaló el programa con el software de instalación entonces la instalación de fonts será automática. instaló el programa con el software de instalación entonces la instalación de fonts será automática.HTML para ver la imagen en su navegador de Internet) Tonos de gris. Se necesita tener instalado el tipo de letra truetype en la máquina. El resultado es una página de texto (TXT) (guárdese con extensión . El resultado es una página HTML (guárdese con extensión .HTML para ver la imagen en su navegador de Internet) Letras blanco y negro.txt y use Word para ver la imagen) Fichas de Dominó negras (con puntos blancos). Aquí cada caracter tiene el color de la imagen pero las letras impresas salen de una cadena de caracteres que el usuario alimenta (máximo 255 caracteres). Si ud. Aquí se calcula el color de la región y se imprime una ‘M’ sobre cada color para que se vean todos los tonos. Aquí el programa sustituye cada región analizada por una carta de la baraja.txt y use Word para ver la imagen) Fichas de Dominó blancas (con puntos negros).txt y use Word para ver la imagen) Colores + letras tonos de gris. El resultado es una página HTML (guárdese con extensión . El resultado es una página HTML (guárdese con extensión . Aquí se calcula el tono de gris de la región (si hay color se pasa primero a tono de gris) y se imprime una ‘M’ sobre cada tono hallado. El resultado es una página de texto (TXT) (guárdese con extensión . Sirve particularmente cuando la impresora solamente puede imprimir letras blanco y negro. Aquí cada caracter tendrá el color de la imagen y la letra correspondiente al tono de gris asociado. El resultado es una página HTML (guárdese con extensión . El resultado es una página de texto (TXT) (guárdese con extensión . instaló el programa con el software de instalación entonces la instalación de fonts será automática.txt y use Word para ver la imagen) • • • • • • • • . El resultado es una página de texto (TXT) (guárdese con extensión .HTML para ver la imagen en su navegador de Internet) Colores con texto.HTML para ver la imagen en su navegador de Internet) aipes. Usado normalmente en las viejas impresoras de matriz de puntos. Si ud. El resultado es una página HTML (guárdese con extensión .

verá su imagen. Para Word su imagen no es más que un texto. si se quiere ver cómo el software va procesando la imagen. puede ser el de cartas.Imagen 3 Ilse construida con la letra ‘M’ en colores Otras Opciones • • • Se puede apagar/prender (normalmente aparece apagado). o fichas de dominó. . tienen que procesarse con Word. dominó de fichas blancas con puntos negros y el de fichas negras con puntos blancos. Esto aparece en la opción ‘Seguir proceso’. Cabe destacar que si su imagen es muy ancha. No lo olvide. Al sustituir Word el tipo de letra. sustituya las letras que se ven en el texto por el tipo de letra (font) que desea. Una vez cargado. Se puede cambiar el tamaño de X y Y en la región a procesar. Los tamaños van de 1 a 9. Se puede cambiar el tamaño de la letra para la salida en HTML. probablemente no quepa la imagen en Word (que es en realidad un texto). pasa la línea abajo. Así. se procesa la imagen y el archivo se carga a Word directamente como un archivo de texto. otas importantes Las opciones que usan tipos de letra como cartas. Intente cambiar el formato a landscape (apaisado) o reduzca el tamaño de la letra si es que aún así no puede ver la imagen. Recuerde que Word cuando no le cabe.

los celulares modernos. Así. lo siguiente al respecto de este tema: Por ahí de 1983. en Palo. de acuerdo al porcentaje en que en alguna región de la foto había más blanco o más negro. El resultado de este proceso dio lo siguiente: Imagen 1 Dijkstra como icono . Por ejemplo.pdf).Gráficas Creador de Iconos Un icono o ícono.” En computación. ni todos estos dispositivos que ahora son comunes en muchísimas casas y oficinas). de 4x4 cms. El ícono suele ser una buena forma de identificación para lo representado. que suele ser pequeña. un enlace. Y sí. la foto de Edsger W. Así decimos. The Digital Darkroom”.spinroot. haz doble clic en el icono. había cambiado de trabajo. (Cabe aclarar que en 1983 no había cámaras digitales. es –de acuerdo al diccionario– una representación religiosa pintada o en relieve característica del arte bizantino. o cualquier otro recurso. Alto). pienso que para los diseñadores de estos iconos es cada vez más difícil mantener la relación de semejanza entre el dibujo y lo que representa. en el diseño gráfico tal vez. como en este ejemplo: “para entrar al diccionario. ni scanners caseros. por Gerard J. En este caso vemos que los iconos han invadido las computadoras y los dispositivos móviles. Pues bien. un icono es una imagen gráfica.com/pico/a4. un programa. los teléfonos “inteligentes”. Dibujar una rejilla (matriz) de 12x12 puntos y hace4r entonces un patrón colocando puntos negros o blancos. El proceso fue así: • • Reducir la fotografía con una copiadora Xerox. un archivo. en los Laboratorios Bell. Inmediatamente pusieron manos a la obra para sacar provecho de sus capacidades gráficas. Luca Cardelli (que al momento de escribir esto. había pensado en una manera de convertir fotos manualmente en pequeños iconos en blanco y negro. pero es claro que el icono de CorelDraw no tiene nada que ver con las funciones que hace el programa. ahora para DEC Systems Research Center. el icono de CorelDraw es en realidad el dibujo de un globo aerostático. tienen pantallitas a color con iconos que representan un sinnúmero de programas. y en alto contraste. por ejemplo: “Volvió de Rusia cargada de iconos”. con la que decidió trabajar. Holzmann (http://www. También es un símbolo que mantiene una relación de semejanza con el objeto que representa. Dijkstra. un grupo de unos 50 investigadores empezaron a trabajar con un nuevo tipo de terminal de computadora. para que quedara al tamaño de una foto pequeña. ahora AT&T. Encontré en el estupendo libro “Beyond Photography. que representa un acceso directo. quien lo diseñó probablemente pensó en posicionar el logo y la marca. Cardello halló una víctima. De hecho.

24x24. a la cual le aplicaría algún proceso (ver más adelante). es actualmente mucho más simple y fácil de implantar. considerando los avances. Decidí entonces mi estrategia: Tomaría una imagen. que muestra la carga del sistema en ese momento. para acomodar el resultado en una rejilla que fuese de 16x16. Luca Cardelli entonces escribió una primera versión que llamó vismon (con cierto humor considerando que existía un programa que se llamaba sysmon). Imagen 2 Cómo se veía vismon corriendo La imagen anterior muestra los iconos de quienes mandaron correo a un usuario. desde la secretaria hasta el director ejecutivo. 48x48 o 64x64 pixeles. El programa vismon se reescribió para usarse con el servidor de rostros. con un programa llamado Mugs. El servidor de rostros se usó por el programa de correo para anunciar la llegada de mensajes electrónicos y por el manejador de la impresora laser. que podría anunciar la llegada de mensajes a las terminales mostrando el icono de quien lo enviaba. Las imágenes fueron entonces digitalizadas usando un scanner que se pidió prestado a los colegas del departamento de procesamiento de imágenes. . como algo de rutina. para identificar al propietario de quienes mandaban trabajos para impresión. vismon ha sido uno de los programas más populares en las computadoras de Bell Labs. El icono entonces se incluye en la base de datos mantenida por el servidor de rostros.Luca hizo una demostración de su programa poniendo el icono de Dijkstra como si fuese una pelota rebotando en la pantalla. A alguien entonces se le ocurrió usar esta idea en el nuevo servidor de correo. escrito por Tom Duff. se sacan semitonos y se convierte en un icono de 48x48 puntos. Y aunque nadie sabía para qué Pike quería estas fotos. En un par de días. tanto en hardware como software. El siguiente paso en esta secuencia ocurrió cuando Rob Pike y Dave Presotto desarrollaron el software para una base de datos centralizada de fotografías iconizadas. Los científicos se emocionaron con la idea y digitalizaron más imágenes manualmente. pero pronto se aburrieron del proceso.32. Incluir las fotos de los nuevos colegas fue algo que se hizo en la base de datos del servidor de rostros. Ellos le llamaron a esto el servidor de rostros. en ese tiempo. la idea me pareció interesante y además. Desde entonces. se tuvieron cerca de 100 fotografías que fueron la fuente principal para los experimentos de procesamiento de imágenes. todos colaboraron. Rob Pike habló con los investigadores y les tomó fotografías de 4x5 pulgadas con su cámara Polaroid. Pues bien. que son más o menos las resoluciones que se usan actualmente en la iconografía de los sistemas operativos actuales. La barra de la izquierda viene del programa original sysmon. 32. La foto se digitaliza en 512x512 puntos. Imagen 3 .

ico.pasar antes la imagen a tonos de gris por si no se desea que se procese en color. Al término del proceso aparecerá una ventana que simplemente pide al usuario con qué nombre se quiere salvar la imagen procesada. para este problema en particular. la cual permite -si se desea. esta técnica parece ser más conveniente que usar los algoritmos para reducir una imagen. 24x24. usando el API correspondiente en Windows (recuérdese que usé Delphi bajo el sistema operativo de Microsoft). tomaría un punto de cada región dentro del mosaico y la pintaría en una imagen nueva. que es el que usa precisamente Windows. como el de reducir una imagen. Los pasos a seguir son: • • • Se lee la imagen que se desea iconizar. El software es muy sencillo de usar. 48x48 o 64x64. Desde luego que este proceso. Se usa la opción de menú (Procesar). . en formato . tiende a perder información. salvé la imagen en el formato . valga el término. pero en mi opinión. se me ocurrió aplicar el filtro mosaico a la imagen.32.Pantalla de inicio del creador de iconos En lugar de tomar la imagen y reducirla. De esta manera. . lo cual en algunos casos pierde la imagen cierta precisión por los algoritmos que se usan para hacerla más chica. Imagen 4 El programa ya habiendo procesado una imagen Una vez teniendo la imagen procesada. 32. con precisamente las diferentes resoluciones: 16x16.ico.

El resultado final convierte la imagen original en alguna otra cosa.216 posibles colores. es uno de los programas más populares para manipulación digital de imágenes. Actualmente. el autor nos habla de cómo alterar imágenes. Existen filtros para reconocer bordes. De acuerdo a las necesidades. cada fotografía digital es en realidad una aproximación sobre lo que se fotografía tomando una cámara analógica. Muchos filtros gráficos. 10 o más megapixeles (estas últimas son para los profesionales probablemente). se consideran transformaciones gráficas basadas en una matriz llamada también “convolución” (no se asuste por la palabra. Ahora bien.verde) y B(lue . G(reen . El resultado es casi una pintura al óleo”. el cual puede ser un valor entre 0 y 255.777. para quitar ruido.spinroot. se pueden tener diversos filtros o transformaciones que pueden aplicarse a una imagen incluso ya filtrada. estamos viendo desaparecer las cámaras analógicas y los filmes. En la medida en que la tecnología ha progresado. de Gerard J. etc. Además. Photoshop. también nació la posibilidad de post procesarlas para generar efectos en ellas. Se acabó el revelado y los costos asociados a esto. El filtro Oleo Digital (en tonos de grises) En el libro Beyond Photography (The Digital Darkroom). 4x4. De esta manera. para meter ruido.) de pixeles. etc. y normalmente el valor que vemos corresponde al color que ese punto tiene en la imagen. Por ello vemos que hay cámaras digitales de 4.azul) en cada pixel (o punto). que va recorriendo la imagen completa. de números. son en realidad una matriz cuadrada de pixeles (puntos en la pantalla). mientras que también los hay aquellos que no lo son. Las aplicaciones son infinitas. De esta manera.com/pico/a4. es sólo un término que da precisión a todo esto). con la generación de imágenes digitales. De hecho. por ejemplo. Por ello mismo. Los resultados suelen ser sorprendentes. De esta manera. pues. 5x5.pdf . pero como si fuese pintada al óleo. Filtros Digitales La manipulación de una imagen digital se denomina genéricamente como un “filtro”. un programa calcula el histograma de los 36 bordes del derredor [del punto de interés] y se asigna el valor [al propio punto de interés] el valor que contenga la mayor frecuencia. para deformarla. cualquier tarjeta de video que se precie de serlo muestra los tres componentes de color R(ed . 8 y 10 megapixeles. 1 http://www. para hacerla menos precisa. lo que hace es esto: “Para cada punto en la imagen. Holzmann.Gráficas Fotos al óleo Una característica de las imágenes en la computadora es que son digitales. De acuerdo al autor. hemos pasado de imágenes de 256 colores a las que nos pueden mostrar alrededor 16 millones de colores. y al procesarla la convierte en la misma imagen. Existen filtros que son reversibles. es decir.rojo). 256 x 256 x 256 nos da 16. para hacer más precisa una imagen. que trabajó algunos anos en los Laboratorios Bell1. las fotografías digitales (ya sean escaneadas o tomadas con alguna cámara digital). una que tenga filme. “el grano” de la cámara digital es la precisión con la cual puede distinguir los detalles. sino es que todos. Cada dígito representa un punto en la pantalla. Estas convoluciones es el procesar segmentos de la imagen a partir de una submatriz (que puede ser de 3x3. es decir. Ahí presenta la fotografía de Dennis Ritchie (uno de los inventores del lenguaje C). la resolución de las imágenes ha crecido y con ello la necesidad de usar cada vez más bytes en los archivos y memorias donde se guarda. digamos. hechas de dígitos. Cabe señalar que el ojo humano no puede ver semejante espectro de colores. que bien puede ser en color o en blanco y negro. 8. pero es un hecho que la computadora puede desplegarlos. el cual convierte una imagen en alguna otra cosa. Con el advenimiento de la tecnología digital de imágenes y su gran aceptación en el mercado. tampoco ya el ojo humano no distingue entre.

las componentes RGB de cada pixel tienen el mismo valor. pues en imágenes de tonos de gris hay nada más 256 tonos y además. Con una convolución par no se puede tener un punto central. A la derecha aparece mi propia versión del algoritmo descrito. sin embargo. no usar 36 puntos. Imagen 2 Marianna al óleo en tonos de gris . por lo cual me di cuenta que había que desplegar el resultado en una segunda imagen. sino 49. De pronto entendí el error y es un instante se solucionaron los problemas que iba teniendo. Imagen 1 La imagen de la izquierda es la de Dennis Ritchie (el creador del lenguaje C). lo cual hace sencillo el encontrar el histograma de frecuencias de color. cometí el error de pintar la imagen filtradas sobre la imagen original y el resultado simplemente era muy pobre. Decidí.Al poner manos a la obra y diseñar mi primer programa que ejecuta este tipo de filtro. como aparece en el libro de Holzmann. es decir. ¿Cuál le gusta más a usted? Este programa funcionaba originalmente sólo con imágenes en blanco y negro (tonos de grises). para que así mi matriz de convolución tenga un punto central en [4. R=B=G.4].

Esto. No hay un parámetro que establezca la mejor opción. ésta debe desplegarse en ambas imágenes del programa. a veces una matriz de 5x5 es la adecuada. en color. Elija alguna de las opciones (por omisión es 7x7) y procese la imagen. pero se asemeja. tenemos que las imágenes pueden contener poco más de 16 millones de colores. puede guardar la imagen procesada (como JPG o JPEG). a un cuadro hecho al óleo. pues es totalmente ineficiente y absurdo. El segundo problema fue el tener que aplicar el “blur” en cuatro ocasiones para que el ruido no deseado desapareciera. Así. Se puede elegir entre color y tonos de grises. Después de dos semanas de darle la vuelta al problema. El proceso es totalmente automático. Hay tres opciones: matriz de 3x3. Cabe señalar que la resolución de la matriz puede cambiar el resultado del procesamiento. La implementé y de pronto ya tenía mi programa que generaba el óleo digital en color. de 5x5 y de 7x7. Guárdela y procese de nuevo la imagen (cargándola de nuevo). Una vez terminado esto. Es claro que el filtro hace una imagen que pierde precisión contra una fotografía real. Al cargarla a memoria.El filtro Oleo Digital (en color) Para poder generar imágenes al mejor estilo óleo. Imagen 3 adia procesada con el filtro óleo en color (16 millones de colores) y con “blur” añadido. En el menú de Archivo podrá leer la imagen que quiere procesar. con las otras dos matrices. el filtro a veces mete ruido cuando hay puntos blancos y entonces aunque en la región haya pocos puntos blancos. otras veces es preferible la de 3x3 o la de 7x7. La dificultad es que al querer pasar a color. aquí hay que contar y crear el histograma de frecuencias de manera más sencilla. Compare y decida qué resultado le gusta más. como que los amplifica. . No obstante. sin duda. obviamente hace el problema un poco más difícil. decidí que necesitaba usar el filtro “blur” para quitarle ese ruido. encontré un par de problemas: Uno fue el hecho de que en color. Al poder hacer el histograma y hallar cuál es el valor de mayor frecuencia. Use entonces la opción de Procesar y observará ante sus ojos el trabajo del filtro. El resultado final es ahora mucho más aceptable. Y eso es todo. Dependiendo de la imagen en particular a procesar. simplemente lo pinto para cada punto en la pantalla. pues no podemos generar un arreglo de 16 millones de colores (para seguir con la técnica usada en la parte en tonos de gris). finalmente hallé una solución simple. Así. dando un resultado poco aceptable. pero que no lo es. se necesita hacer una modificación que parece trivial. Cómo se usa el programa El sistema permite cargar imágenes JPEG y BMP.

los resultados mejoraban. Se recomienda usar blur cuando se vaya a procesar una imagen en color. . Por ejemplo.El filtro Blur Este tipo de filtro permite limpiar de ruido una imagen. Sin embargo. se encontró que usando cuatro veces el blur antes de procesar con el filtro óleo la imagen en color. Se usa para quitarle detalle a las imágenes y en el caso del filtro óleo. aquí se deja como una opción del menú para que el usuario utilice este filtro para ver si el resultado final le complace o no. en ocasiones es necesario utilizar previamente el filtro blur y después procesar.

photomosaic.000 a 80. que actualmente tiene una empresa que se dedica precisamente a estas labores.000 fotografías ya digitalizadas y durante el proceso de selección se consideran. los fotomosaicos pueden servir para proteger los derechos intelectuales de las obras pictóricas. Tales pedidos personalizados pueden costar entre 10. es decir. Sin embargo. no se hace automáticamente todo por el software que él mismo ha escrito (ver Apéndice I). IBM System Journal. La justificación para ello es que el autor no pretende crear una compañía que venda software (lo cual sería un éxito seguramente por un tiempo).I. Entre sus trabajos Silvers ha hecho fotomosaicos de algunos personajes de la Guerra de las Galaxias y de Disney. A partir de ello Silvers saltó a la fama y en poco tiempo se empezaron a ver más de estas imágenes en diferentes portadas de revistas como Wired.T. estudiante graduado del M. cuando se ven en conjunto forman la fotografía original. Obviamente la pregunta es ¿cómo los hace? Desafortunadamente Silvers no ha hecho públicos sus algoritmos.000 dólares. Esto podría dar suficiente información sobre cierta imagen y aún así no poderse usar para otros propósitos. hay un interés académico. incluso dentro de la red Internet. Figura 1 Silvers ha creado una empresa llamada Runaway Technology (http://www. cientos de aspectos para sustituir un pedazo de la imagen original por una fotografía. El autor de semejante idea era Robert Silvers. Tiene alrededor de 100. los cuales son mosaicos hechos de fotografías (en lugar de hacerlos de colores sólidos). Todas las pequeñas imágenes. entre otros. por lo cual mantiene en secreto los algoritmos usados. porque independientemente de las aplicaciones obvias dentro del arte y el entretenimiento.Gráficas FotoMorsaicos El 22 de diciembre de 1997 la revista Newsweek presentó la imagen de la Princesa Diana creada con una miríada de pequeñas fotografías de flores (ver figura 1).com). él mismo declara que parte del proceso en la creación de los fotomosaicos es manual. Otra aplicación potencial es la de un método de organizar información (bases de datos) o incluso en esquemas de criptografía . Se sabe sin embargo que usa una computadora Silicon Graphics con 30 gigabytes en disco y 256 megabytes de RAM. por ejemplo mostrando un fotomosaico con imágenes plenamente identificadas por el autor del mismo. Fuera de la mera curiosidad de cómo se pueden generar fotomosaicos de esta naturaleza. sino que intenta hacer arte. de acuerdo al mismo autor. la cual se dedica a hacer fotomosaicos a pedido específico. Silvers creó los Fotomosaicos. Sus trabajos se venden por alrededor de 20 dólares en afiches (posters) en diferentes tiendas. Life Magazine e incluso Playboy.

Otra razón es que la calidad de los fotomosaicos depende en parte de las propiedades del sistema visual humano y hay muy pocos estudios al respecto y los que hay parecen ser muy empíricos. Hay una larga historia atrás de ello. El estudio de la creación de buenos fotomosaicos no ha sido analizado de manera formal. Por ejemplo. ¿cómo definir una distancia gráfica que defina qué tan cerca está un color de otro? ¿Qué tan grande puede ser cada mosaico antes de que se pierdan los detalles de la imagen original? ¿Cuántos mosaicos debe tener la biblioteca de imágenes? ¿Cuántas veces se puede usar un mosaico antes de que se convierta en monótono? Los resultados que obtendremos aquí quizás puedan dar nueva luz sobre este tema y he aquí la importancia del mismo. Hay varias razones para ello: Una es que el área de trabajo es relativamente nueva (Runaway Technology se creó apenas en 1996).y compresión de imágenes. otra es que existe relativamente poco software que hace esta tarea y además los algoritmos de Robert Silvers (el máximo exponente sin duda). Por ejemplo. ¿Cómo decidir qué imagen debo sustituir por una región o pedazo de la fotografía que estoy procesando? esto es. he aquí a la famosa Gioconda de Leonardo Da Vinci. sacada de una página personal en Internet http://personales. son propietarios y por ende desconocidos para cualquier otro excepto el autor. generando así más posibilidades y artistas que puedan usar esta tecnología. Los fotomosaicos son un buen ejemplo de técnicas de diagonalización en la teoría de la complejidad y bien pudiese tener aplicaciones en este campo también. Un poco de historia La creación de fotomorsaicos no es novedosa en realidad. en la medida que haya más gente que sepa cómo se hace un buen fotomosaico tendremos más competencia y no solamente habrá que atenerse a las técnicas de Runaway Technology y Silvers. Un primer intento es el usar las letras del alfabeto para crear imágenes. De igual manera.alcavia.net/~jmoreno/jose/ .

.IXXXMM$@@@@@@@@@@@@@@@@@@@@@@@@@L...II......MMMMMIIXM#######M##M#############M######### #####@@@@@@@@W##+#W##M######LI..III.............II.......IIXMMMMM@@@@@@@@@@@@@@@@@@@@@@@@....Z$@@@$$$.....I.........I..................II.....II ....FFFFFMMIIIIIIXX$@@@@@@@@@@@@@@@@@@@@@@XXMXXXMMMMMMMXXXMMM .............. I..III....IIIXM$@@@@@@@@@@@@@@@@@@@@@@MIIXIX.....IIIXXXXXII.$$@@$L........I.I...@$$@@@@@@@@$XI.....IIII..............IXMM@@@@@@@@@@@@@@@@@@@@@@XMMXMMXXMXMXXMXMMMM IXMMMMMMMMMJ..I.........................I...II.......IXXMM$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@MXMXMMMJJMXXMXHZX MXMMMXMXMMMIM@@@@@@@@@@@@@@@@@@I...............I...I......II.I..........I........IIIXX$$@@@@@@@@@@@@@@@@@@@@@@@@@IJXHMXHMMXHWHEMNXN MNM$MNNMMMM@@@@@@@@@@@@@@@@$$$XII..I..........III...I.....IIIXM$$@@@@@@@@@@@@@@@@@@@@@@NNNNNXMXMXNXMXNXHXM XMMM$$MMMMMMM@MMM@@@@@@@@@II...........I............@@M@@@M@@@X@@@@@@@@@@@@@@@@@@@@@@@L XXMXMXMM@@@@@@@@@@@@@@@@@@JXIIII........IX$@@@@$XXIXX$$$@@@@@@@$M$@@@@@@@@@@@@@@@@@@@@@@LXXXXXXXXXXIXIXXXIXX .....XMMMMMI.......JJJJIIXMMMMMXXIIXM##########M#####M### ######@@@@@@@@@@@##L....I........II....................................II...........ZMMMMMMIIIMZZ####################M ######@@@@@@@@@@@###L...............$@@@@@MMXIII...........II....IIIIIIIIIIIIX ...II...IXX###M#####################M ######@@@@@@@@@M##M##......II...I.II...@@@@@@@@@@@IIIIXIII...IIIIIII.I............IXX$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XNMMMMMMJMIIIXXI XMZHXIXMMXMXX@@@@@@@@@@@@@@@@@@@$I............IIXXX...II..........III...............I........III..IIIXX$$@@@@@@@@@@@@@@@@@@@@@@@@XXIIMMAIIIIIII.......................IX@@@@@$$$$$@@@@$$$@@@@$MXM$@@@@@@@@@@@@@@@@@@@@@@XXXIXXXXXXXXXXXMMXX .......... ...................IIXXXXXMMMMMMMMMMMXXIIXXXM$$$@@@@@@@@@@@@@@@@@@@@@@MXMXJOSEX.IXXXXXIIIIIIII...IIIXXXXXXMMMM$@@@@@@@@@@@@@@@@@@@@@@@@@L...IIIII.II@@@@@@@@@@@@ZZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LI.....I...IIIII.. hacer un programa que transfiera una imagen a las letras del alfabeto es una tarea simpática y los resultados aunque interesantes..@@@@@MXII......IIIXXXXMM$@@@@@@@@@@@@@@@@@@@@@@@L...C@@@@@@@@@@MXIIIIIIXXXXMXII....I............I.....LZ@@@@@@@@@MIM@@$MIM@@@@@MX...IIXXXMMM$@@$MI........I..I...MZZM@@@@@@@@@@@@@@$FXXM$@@I....$$@@@@@@@@@MMMXXMMM$$$$$@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXIXIIXXXXX ....IIIII.....II........XX.........II.I@@@@@@@@@@@MMMXIIIIMMM$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LII...IJXI.........III....... En noviembre de 1973 se publicó un articulo en Scientific American (cuyo autor es Leon Harmon de Bell Labs..IIXIIIII.IXX$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NXMXMXMMXXHXNXZW XXMIMIMIMIMIX@@@@@@@@@@@@@@@@@@@@@@$I...........I..........JJX@IXJJJJJJXMMMXMXXIIXMXXX####MM######M #####@@@@@@@@@@@@@$I..........I..I.........I.....¥...IIIIXXX$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LXXXXX. .JJII@@@M@@@M@@IMMMMMM@@@@@@@@M@@@@MMM@@@ MMMXXXX@@@@@@@@@@@@@@@@@@@XJJII....III..MM$@@@@@@$II....III..............IXXX$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XNMZHNMXXMNXMZXMZ NAMXMAXMXMMIM@@@@@@@@@@@@@@@@$XII.......I......I....IIXIWLI......III....................MZZM@@@@@@@@@@@@$$$@@@@MI@@.....MZZM@@@@@@MXXIII...........I@@@@@@@@$MMXIXM$@@@@@@@@@@@@@@@@@@@@@@XXXMXXMXXMXXMXXMXMM ........................II.......IIIX$$@@@@@@@@@@@@@@@@@@@@@@JMMMMMMMXXXXMXXMMMM IMMMMMXXXMMMM$$$$@@@@@@@@$XI.I....IMMXII.....III........ .................IXMMMMXXM###########XIXM##W##II++F#P#M##M###### MN#WM@@@W##M+##W#X#M##MII+MWM#++I###WM###MWN##WM#WM##########MMMFII####MI++############+##+F8++#M###W#######MM#### W+W###@###+M###X#M#N#+I+##M#M+IIW###MX###W#X##MM#XX#######Z##*XIXMMM****MX*********W**********I*M**M*M********MW** *************M*MM***M****M**MM***X*IW*W*IW*M**W**IIX****W**MXMMNNN*****MMM**N******N*****X***X*M***WW*******NMXXXM ********M*M*M**M****MW*******X*M**MMIMMI##WWX*MW*WW*M*MI*X*XXIIX************M***M***M***XXMM***XM*M*M***M***X*XXXX ***WM****W***M***M***W****MMWX***WWIMMWM***WM*M**X**XW*MI***I**MM***************W*@*W*M**M**MM**W*****MW*MMX*XXXXX M*W*M***I Jose Moreno Fernandez Atalaska BBS IW**MMMM****************W****W****WM*M*M*MWM*I*XZZI*IIIIXXMMM *W*W*M*******************NW****NMI**N***WMN****MMM*************************M*W*W***M*******8****M***MMMMMXX*MMMMMM Figura 2 Como un primer esfuerzo es pasable.....I.III...II....IIIXXXXMMMMMMMXXXXXIIIIIXXM$$$@@@@@@@@@@@@@@@@@@@@@@MXMXMILIXXMX XXMXIIIIIIIIXXXIII@@@@@@@@@@@@@@@@@@@@@@@@@@@@XIIIIIIIIXXXXMXXXXXXXXII...II.......IIIIIXMMM$@@@@@@@@@@@@@@@@@@@@@@@@@L..... Incluso.I.....I....I........I.......I.I...IIIXXXXX$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXNMNMXXXHXXIXX IIIIIIIIIIIIII@@@@@@@@@@@@@@@@@@@@@@@@@@$I......MXXX...........JJI$@@M@Z@@M@@IX@@@@MM@JJX@@XXMMMMMM@@@@ XXMMXX@@@@@@@@@@@@@@@@@JI@@JJJ.IZZ@@@@@$MXIIII...III...................I.........IIIIIIXXXXMM$$@@@@@@@@@@@@@@@@@@@@@@LIX...........IIIIIIIIXXXXXM$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IIIIX.....IFFFFIX................IIIXXM@@@@@@@@@@@@@@@@@@@@@@@@IIIXXIIIIIIIIIIIIIXI .. I............................IIIIII....I..X............II. ..................I..........I..I.III.......I............................II $$MMMMMMXMMXM@$$$@@@@@@@@@$XI.....IIIIXXII....I.....................................J......IZ$@@@@MMXI...........IXXXXX$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XNXIXIXXHXZMXIX XMXXMMXMXMMXX@@@@@@@@@@@@@@@@@@@@@@@@@$I..IIIIIXXX@$$@@@@@@@@@@@@@@@@@@@@@@LIIIX.I..I.... titulado “The Recognition of Faces” Aquí aparece la siguiente imagen (véase figura 3)....III..I............ ........XXMMMMMXXXXXXXXXXXXM$$@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXIIIIIIIIIXXII ........I.............. ...II......I.I......IZZ@@@@@@MXXIII........IIIXXX$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@XXNIXXMXMXNXZXNXZ MXMMXMXMMMAMM@@@@@@@@@@@@@@@@@@XXIIIIX$X.IJI.....I.J..I@D@@Z@@@X@@M@@@@@@@@@@@@@@@@@@@@@@XX IXIXIXIII@@@@@@@@@@@@@@@@@@JMXXJ.....IXXXMM$@@@@@@@@@@@@@@@@@@@@@@@@@LI.J..IIXXX$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXINXIXHXXMXHIX MXMMXMMMXMMMM@@@@@@@@@@@@@@@@@@@@@@@@$I......I....IXXXMIIII..III......IJ..............CXMMMMMXMJ...................................II.......................III..II....IIIXXMM$@M@@@X@X@@@@@@@@@@@@@@@IXIXMMXIX XXXXMMXIIIXXIIXJ@@@@@@@@@@@@@@@@@@@@@XIII................I I.III.......I ...........IIXXX$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXIIIXMXXXIXMM MMMXIIXIIIIIIIM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LXNXMXZMMIIIIIX XXMMMMMXXXXIIII@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXNXMXZXXXXXIX XIIIIIIIIIIIIII@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$MMMM$$@@@@@@@@@@@@@@@@@@@@@@@@@XXZXZXMCMXMXZX XIIIIIIIIIIIIIII@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IXMMM$$@@@@@@@@@@@@$$$$MMMMM$@@@@@@@@@@@@@@@@@@@@@@@@@@IXZHNXMXNZMXNX IIIIIIIIIIIIIIIIII@@@@@@@@@@@@@@@@@@@@@@@@@@@IIXXX$$M$$@@@@@@@@$$$MMMMMMMM$@@@@@@@@@@@@@@@@@@@@@@@@@L22XMEHMEZMXXX IIIIIIIIIIIIIIIIII@@@@@@@@@@@@@@@@@@@@@@@@@@@IIIIXXXXMM$$$$$$$$$MMMMMXXXMMMM$@@@@@@@@@@@@@@@@@@@@@@@LXXZOCOXXBBSXX IIIIIXXXXXXXXXXIII@@@@@@@@@@@@@@@@@@@@@@@@@@@XI.............I I...IIIXXX$$@@@@@@@@@@@@@@@@@@@@@@@@@XIHXMXMNXNEMWNXMEX NMXNXMNMNMMX@@@@@@@@@@@@@@@@@$XII.....................................III.I......IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII@@@@@@@@@@@@@MXXIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJ@@@@@@@@@@@@@@@@@@@@@@@@@@@IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII@@@@@@@@@@@Z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ...IIXXM$M@@@M@@@@@@@@@@@@@@@@@@@@XXIXMWWX XXIXMMXIIIXXXXI@@@@@@@@@@@@@@@@@@@@LXXI..IJJIXJM@@@@@@X@M@MIM@@@@@@@@@@@@@@LXXEXB IXNMXXXIXXXXI@@@@@@@@@@@@@@@@@@LII.....................IIIJ@@@@@@@@@@@@MZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@III.....I.....@@@@@@MXI............II $$$$$$$MNM@@$$$@@@@@@@@@@@@XII.....I.......I......................II ......I.............J@@@@$MI....III...IIIIIIIIIIIIXI .....JJX@X@M@M@M@XXM@MJJJFFFM@@@@MIIIXMM@@@@ X#####@@@@@@@@@@@@@@@XI$IJJ...........I.............J########+++#####WM##M###M##M############## #####@@@##W#N#WW#X++#M##X+##M##N#X##M###X#M############PM####MMMMM......ZZZZ$@@@@@@$$$XXMM$$@@@@MI............I.........IIIIXXXX$$@@@@@@@@@@@@@@@@@@@@@@@@@@MMXNMMXMXNMZXNXMM MNMXEXXXAMMMM@@@@@@@@@@@@@@@@$$XXII................................IIXX$$M@@@@@@@@@@@@@@@@@@@@@@MXXIIMMAIIIIIII........................I..........I..ZZZM@@@@@$XIIIII..........III.IJMMMMMIXM#########M######M################### #####@@@@@@@WN+W+X+++ZMMM#######M$IXIII.IZZ@@@@@$$XII...XXXMXIMJ.. ..I$$MMXXI..............IIIXM$@@@@@@@@@@@@@@@@@@@@@@@@@ZHXHXHXMAXNXMCXMNC MMMM$MMNMMMM$MM@@@@@@@@@@@@$YII...JIJJ@M@@@@@M$$M@X@@@@@@@@@@@@@@@@@@MXIX XXMXMXXXXXI@@@@@@@@@@@@@@@@@@JIX..@@@@@MXII..................IIIIIIIIIIXII ...MM$$XXXXXXXXI...........I.................................III...........IMMMMM..................IXX#M##############M############+####### #####@@@@@@##M+I+#W#+I+IW#W#############LX........JI@8@XM@M@$XM@@@MMXXIXMMMMMI@@@@XXXMM XMX@@@@@@@@@@@@@@@@@@JII@JJII........I.IIXXXXXXXXXIII......IIIIXXI...............II.............II...............X@@MX@@MM@$$M@@@@@@@@@@@@@@@@@@@@@MMX IXMIXMXXXI@@@@@@@@@@@@@@@@@@@MXXM....JX@JXMMMMMMMFFIIII####MXXIIIMMMM####M# #####@M@@@@@M@MM@@@XII$$ILI..IZZM@@@@@@MXII.........J@@@@$$XXXII..IJJJI@@@@M@$X@X@@I@@@@@@@@@@@@@@LXXMXII XNXCXMMXIIXXXX@@@@@@@@@@@@@@@@@@@I...I...........XMMMMMMMM###########MM#########X#####W########## #####@@@@@###N#WII+X##M#M+XM#W#W###############MX+YYYYYYYYYYIXXMMMMMFI..........III.........................IXJ@JX@X@XIJIXXMMMMMMIIIXX###MMM####MM# #####@@@@@@@@@@@@@@IJIIIXJJ..............IMMMMMIIMM###########MM######M###M###### ######@@@@@@@@N##MM#####L.II.........III..................I....IZZZ$@@@@@$$XIIIIIIXXXII...............I.IJ@@@@@$MMIIIII....I..........I..IIIIIII.................I...IMMXXII.IIXX$$@@@@@@@@@@@@@@@@@@@@@@MMMMXMXMXMXMXMMMMXM X$$MMMXMMM$$M@$$M@@@@@@@@$XII..I.III.................IJIJL@@M@@@M@M@X@X@M@@@@@@@@@@@@@@@LXSSB INMNMXMXXXXX@@@@@@@@@@@@@@@@@@J.......................III...II.............XXXXII....III.....................IXXXII..).........III.IIIIIIIXXXXX$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MIIXIX.....I............I...JI..................XXX IIIIIIIIIIIIIXIIII@@@@@@@@@@@@@@@@@@@@@@@@@@@XI..................III........I$@@@$$$MX..........IIXXM$X@$@@@@@@@@@@@@@@@@@@@@@XXXIXXIXMI XCXRMMMIIXXXXXIX@@@@@@@@@@@@@@@@@@@@@@@$$$XXIIII..II...IIIIIXI......I..........III....IIIXXX$$@@@@@@@@@@@@@@@@@@@@@@@IXXMXXHXXIXX XXXXIIIMMMMXXXXXI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XIII.....IIIXXX$$$@@@@@@@@@@@@@@@@@@@@@@@@@JHMMNKXWWXMMXXXMWH XNMMXXMXMMNMM@@@@@@@@@@@@@@@@$XXII..IMMXXXIIIIIXXXXXMMM. aunque ciertamente pobres frente a lo que los fotomosaicos pueden mostrar.....II...............IXMMM$$@@@@@@@@@@@@@@@@@@@@@@@@@L..@@@@MXI....II...IJ......IIXX$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XMMXMXJIJMHZXXXM MXMXNMXMXMMI@@@@@@@@@@@@@@@@@@@@@M$XI.I......@$@@@@@@@$MI.......I.....IIXM$@$@@@@@@@@@@@@@@@@@@@@@@XMXXAXXAIXX MXMMXMMXXMMMMXXXX@@@@@@@@@@@@@@@@@@@@@@@@@MFXXIIII......I.....I.II......

los esfuerzos de Harmon se ven magnificados por Salvador Dalí. En el artículo se presentan otras imágenes. Alguien llamó a esto Lincoln en Dalivisión. Chuck Close trabajó sobre esta concepción y he aquí un fragmento de su idea (figura 5): . el cual genera este tipo de imágenes. algunas más reconocibles que otras. sino que se hace llamar a sí mismo un “cibertista”. al presentar la siguiente obra (Figura 4): “Gala Mirando al Mar” (Salvador Dalí. Más tarde. el programador de marras no se considera un “artista”. Lo importante aquí es el exceso y redundancia en la información visual existente de tal manera que pocos bloques de diferentes densidades de color nos pueden dar la información estereotípica de Abraham Lincoln. Al escribir esto me entra la duda de si la imagen de Lincoln no es un caso excepcional. Sin embargo.Figura 3 Harmon escribió un programa llamado MagnaDott. 1976) Figura 4 A 20 metros el cuadro de Dalí se convierte en el retrato de Abraham Lincoln. De hecho.

no una artista plástica o pintora. Pero esta idea no es muy novedosa (la de los fractales falsos). muchos años después. de 29 años. dándole diferentes densidades al color para así crear lo que él llamó “faux fractals” (fractales falsos). Ella es músico. tomar un dato repetitivo en escalas cada vez más decrecientes y reemplazarlos para lo que Roy Lichtenstein llamó pinturas diminutas.Figura 5 En algún momento Close se dio cuenta que podía llenar una malla cuadriculada con sus pinceles de aire.000 reclutas del Campo Sherman. porque en 1918. pero se tiene conocimiento de que más de un soldado se desmayó en el proceso. el fotógrafo Arthur Mole. Y semejantes pequeñas pinturas pueden ser cualquier cosa y de cualquier textura. Esto es. No se sabe cuánto tomó hacer esta foto. llegó a una idea muy interesante. la cual representa al presidente Woodrow Wilson. Esta fue una de muchas fotos que este personaje hizo (figura 6). Presidente Woodrow Wilson Figura 6 Beth Clemens. creó la siguiente imagen con 21. La siguiente imagen muestra el concepto fractal (figura 7): .

Don Greenberg (figura 9): . que trabaja/estudia en el departamento de gráficas por computadora de la Universidad de Cornell. Esta noción se llevó aún más lejos. EEUU. se han hecho modificaciones al respecto. considerando el concepto elemental inventado (¿descubierto?) por Mandelbrot hace ya unos años. veremos esto (figura 8): Acercamiento de la imagen de Beth Figura 8 Puede verse que la imagen de Beth es absolutamente fractal. Por ejemplo.Fractal Beth Figura 7 Si nos acercamos a la imagen de Beth. hizo el siguiente mosaico de su jefe. Eric Haines. Aunque el efecto de Clemens es estéticamente muy agradable (y quizás podamos achacar esto a la idea de que el universo es fractal).

que dio pie a un proyecto para una primera aproximación.Figura 9 (fotomosaico hecho de las fotografías de sus estudiantes) A partir de estos datos nació esta investigación inicial. Figura 10 . Los resultados de este particular software pueden verse en las siguientes imágenes (Figura 10 y 11). En este proyecto los fotomorsaicos generados se hicieron con fichas de dominó y naipes.

Se necesita una colección de imágenes (los mosaicos). también llamada base de datos o biblioteca de imágenes. 3. Pasos iniciales en la creación de fotomorsaicos La creación de fotomorsaicos puede dividirse en los siguientes pasos: 1. sustituya por la más adecuada de acuerdo a los criterios establecidos. hay que hablar a detalle de cómo la computadora manipula los colores y gráficos. 2. Un programa de computadora que cuadricule la imagen fuente. Ésta puede ser de gente famosa o incluso de familiares o amigos. A esto le llamaremos una métrica. tome cada una de las subregiones de dicha cuadrícula y las compare una a una contra la colección de imágenes (tomando ciertos criterios de similitud entre la región analizada y cada imagen en la colección). Bien podría tratarse de animales u objetos. La imagen a procesar se obtiene generalmente a partir del escaneo de una fotografía particular.Figura 11 Con estos antecedentes e historia se decidió entonces el desarrollar un sistema para la generación de fotomosaicos con imágenes a color. necesitamos considerar el concepto de “distancia” entre ambas imágenes. es decir. Existen una serie de colecciones de imágenes que pueden ser adquiridas por un costo específico o incluso gratuitamente a través de la red Internet (aunque esto último puede llevar muchas horas de conexión). qué tan cercanas en color es una imagen contra el color promedio de la región analizada. No es obvio que podamos definir una métrica de manera muy sencilla y para comprender la idea sobre cómo encontrada. Se requiere de una imagen a convertir en su equivalente en mosaicos (imagen fuente). Obviamente las técnicas para hacer fotomorsaicos no involucran necesariamente fotos de rostros humanos. . El paso 3 es sin embargo más complejo de realizar. Para decidir qué mosaico (imagen de la biblioteca de fotografías) es el que se acerca más a la región que estamos analizando dentro de la cuadrícula. Finalmente. Evidentemente los dos primeros pasos son sencillos de realizar. a la manera de Robert Silvers.

Gn . si la tripleta es (255. En cambio. entonces estamos hablando de colores de 24 bits. por ejemplo. Para esto. el núcleo del programa de fotomorsaicos debe poder hallar algún criterio para seleccionar el mosaico a sustituir por la subregión dada. m . Eso da un color promedio de toda la región que estamos analizando.El modelo de color RGB Un monitor de computadora (incluso una TV) usan el modelo de color RGB (Red Green Blue) para representar los colores. la métrica sería D2 − D1 donde D1 y D2 son los valores del tono de gris en la región analizada contra la que se encuentra en la colección de imágenes . m )) / nm Donde n y m son los el largo y ancho de la subregión de la imagen a procesar. En la computadora la tripleta de enteros RGB permite ver un color específico. sino a toda la imagen. m . Este es el esquema RGB y es muy popular en las computadoras actuales. tendríamos que la distancia entre dos imágenes sería simplemente la distancia lineal de un tono de gris a otro. Esto es: n 1 m 1 Colordelaregion = ∑∑ ( RGB ( Rn . Cada 8 bits puede guardar un valor que va de 0 a 255. La métrica entonces es simplemente la búsqueda de la distancia mínima entre la región analizada y cada una de las imágenes de la colección usada para la creación del fotomorsaico. Esto da un solo valor de color promedio para toda la imagen. pero en este caso no solamente a una región de cada imagen de la colección. El rojo puro podrá estar representado por (255. entonces hablamos del negro. Criterios para la selección de imágenes. Así. o definición de una métrica Considerando el modelo RGB. Tómese ahora una colección de imágenes a las cuales se les ha realizado el mismo proceso de color promedio. RGB permite 16 millones de colores. por ejemplo como lo que pasa cuando se consideran las escalas de grises. Distancia lineal Cabe señalar que si un solo número fuese atribuido a cada color.255) hablamos del blanco.0. el siguiente esquema es el que se ha puesto en práctica: considérese cada subregión de la imagen fuente como de un solo color. el software lo que hace es calcular simplemente el promedio de color sumando las tripletas RGB de cada pixel dentro de la subregión de la imagen y dividiendo cada componente de color en el número de pixeles procesados. Para esto. Bn . si entendemos este modelo.0.0). si la tripleta es (0.255. De esta manera lo que tenemos es una colección de imágenes de colores sólidos (promedio de cada imagen original). es decir. Cuando se usan 8 bits por color.0). muchos más que los que puede discriminar el ojo humano.

la distancia de la imagen que tenemos a la que estamos analizando se puede dar como: ∆ = ( R1 − R2 ) 2 + (G1 − G2 ) 2 + ( B1 − B2 ) 2 Esta manera de crear una métrica. La colección de imágenes Para poder utilizar la métrica (sea cual sea ésta).idx”. de 24 bits de color se procesó en alrededor de 2. si tomamos las tripletas RGB el problema no resulta trivial. El resultado es lo que hemos llamado distancia Riemersma y se basa en la siguiente mejora o corrección a la distancia euclidiana: ∆ = (2 + donde r 255 − r )( ∆R ) 2 + 4( ∆G ) 2 + ( 2 + )( ∆B ) 2 256 256 r= R1 + R2 2 ∆R = R1 − R2 ∆G = G1 − G2 ∆B = B1 − B2 (Para una discusión al respecto de cómo se llegó a esta fórmula. son cada uno un eje coordenado. de Holanda.5 segundos. en un afán por que el programa sea más rápido y menos costoso en recursos de máquina. de 960x1200 pixeles. G y B). se necesita que la colección de imágenes sea preprocesada con antelación. aunque simple. Esta es la mejor aproximación de métrica considerando los resultados obtenidos (que se analizan más adelante)). Cada imagen (de un total de 5544). la cual fue analizada por Thiadmer Riemersma. Podemos considerar entonces la distancia euclidiana si tomamos al modelo RGB como un espacio tridimensional en donde cada color (R. Así. Se generó entonces un archivo al que se le llamó “imagen. conteniendo los siguientes datos por línea: Rojo Verde Azul NumeroColor NombreImagen He aquí un fragmento de dicho archivo: . De hecho dicha métrica se implantó en el software (ver más adelante) y se analizará posteriormente. hallamos una posibilidad más. en donde halló evidencia empírica sobre cómo los seres humanos distinguen las diferencias de color.Distancia Euclidiana Sin embargo. Así. la manera en como los humanos percibimos el color no parece ser la distancia euclidiana. Así. puede considerarse muy importante y útil. Distancia Riemersma Sin embargo. se tomó una colección de imágenes (todas en formato jpeg) sin distinción en tamaño pero que todas cumpliesen con ser de 24 bits de resolución y se hizo un pequeño programa que preprocesara dichas imágenes de manera que sacara el promedio de color total sobre toda la imagen. consúltense la bibliografía).

El tamaño de cada región puede ser definido por el usuario previamente.jpg Im00009.jpg Im00006.jpg Im00009. el algoritmo que usa el fotomorsaico es verdaderamente sencillo: 1. Aquí simplemente se agregaron espacios para una mayor claridad). Finalmente. umeroColor identifica cada imagen dentro de la colección con un solo color. el fotomorsaico en sí mismo.índice de imagenes 121 117 131 7959939 67 77 70 4410694 116 121 157 7633309 78 57 59 5126459 86 101 76 5662028 190 193 181 12501429 66 78 83 4345427 117 133 132 7701892 109 127 122 7176058 109 127 122 7176058 102 122 121 6716025 87 102 108 5727852 Im00001. Se cuadricula la imagen fuente en subregiones de tamaño constante. Se lee cada subregión.jpg Im00008. Algoritmo de búsqueda y selección Una vez teniendo las imágenes de la colección procesadas. aunque no necesariamente ésta es la mejor solución porque no se tiene mucho . Define una métrica. Riemersma) pero una sola a la vez. La virtud de este enfoque es que los resultados del procesamiento pueden ser vistos y analizados de manera inmediata. ombreImagen es el nombre de la imagen procesada dentro del disco duro. Verde y Azul son los valores de la tripleta RGB (valores que van de 0 a 255). Se elige la imagen de menor diferencia y se coloca en la subregión analizada. Rojo. De igual manera. se generó originalmente como una página HTML en donde se encuentra la lista de todas las imágenes seleccionadas y su ubicación dentro del fotomorsaico. 5.jpg Im00003. 2.idx) la imagen que tenga la menor diferencia de color. Se puede tomar alguna de las tres consideradas (Lineal.jpg Im00002. 3.jpg (en realidad en el archivo están separados por un espacio cada valor. FireFox o Internet Explorer).jpg Im00004. 4.jpg Im00011. para ser visto inmediatamente. Obtención de resultados La imagen resultado. Se repite este proceso hasta terminar con la imagen fuente.jpg Im00012. Cabe señalar que las imágenes no tienen que estar numeradas como se ve en el fragmento del archivo de índice.jpg Im00005. Dependiendo de la cantidad de imágenes que hay en la colección este proceso puede ser más o menos lento. haciendo uso del comando de impresión del navegador usado para ver los resultados finales del fotomorsaico ( etscape. se pueden imprimir los fotomorsaicos resultantes sin necesidad de escribir las rutinas correspondientes bajo la interfaz gráfica de Windows.jpg Im00007. Euclidiana. El resultado. es la colección de imágenes seleccionadas por el algoritmo correspondiente. úmeroColor es el color asignado de acuerdo a la siguiente ecuación: umeroColor = ( R ⋅ 65536) + (G ⋅ 256) + ( B ⋅ 1) Así. Se calcula su valor (color) promedio y se busca en el archivo de índice (imagen.

ya sea usando el archivo HTML o procesando la información a través del visualizador exige que las imágenes se encuentren en el mismo directorio que el archivo a procesar.jpg” width=“10” height=“10”><img src=“Im04133.jpg” width=“10” height=“10”><img src=“Im01419.jpg” width=“10” height=“10”><img src=“Im03895. En este caso. el fotomorsaico por sí mismo). Lo que sí es un hecho es que aplicaciones gráficas como la que nos ocupa esta discusión parecen requerir de mayor y mejor hardware.jpg” width=“10” height=“10”><img src=“Im01419. La necesidad de equipo más sofisticado.jpg” width=“10” height=“10”><img src=“Im01876. estos argumentos son intuitivos y habría que elaborarlos a detalle. el usuario puede cambiar fácilmente el tamaño de los mosaicos para hacer más grande o chica la imagen (esto se hace cuando el fotomorsaico se genera.jpg” width=“10” height=“10”><img src=“Im02784. y es en lo referente a los tamaños finales de los mapas de bits (bitmaps). Una imagen de 4000x4000 pixeles. De esta manera el fotomorsaico puede ser visto de inmediato y además.jpg” width=“10” height=“10”><img src=“Im01798.control sobre los parámetros de la impresión en sí misma. En este caso se generó un programa visualizador para los fotomorsaicos.jpg” width=“10” height=“10”><img src=“Im02251.jpg” width=“10” height=“10”><img src=“Im02251. Cabe señalar que para crear el fotomorsaico. No obstante. por lo que puede ser una dificultad de la librería gráfica usada. Un fragmento del archivo de resultados como página en HTML puede verse a continuación: <table border=“0” cellspacing=“0” cellpadding=“0”> <tr><td><nobr>img src=“Im01419. si se desea utilizar el visualizador de fotomorsaicos en una imagen demasiado grande. el crear una página HTML con la imagen resultante permite que ésta pueda ser fácilmente reproducible en cualquier otra parte en donde se tenga la colección de imágenes usadas. Igualmente.jpg” width=“10” height=“10”><img src=“Im01826. quizás una estación de trabajo Silicon Graphics y/o Quizás las rutinas gráficas para el manejo de jpg por parte de Delphi no contempla la creación de imágenes tan grandes. Aunque la aproximación dio buenos resultados. es un archivo de texto que contiene el siguiente formato y que el programa visualizador usa para mostrar la imagen final: Línea Línea Linea Linea Línea Linea Línea 1 2 3 4 5 6 7 en adelante Cantidad de mosaicos en X Cantidad de mosaicos en Y Tamaño de cada subregión en X Tamaño de cada subregión en Y Tamaño de cada mosaico en X Tamaño de cada mosaico en Y Nombre de las imágenes a colocar o el comando <br> que indica que hay que pasarse a la siguiente línea.jpg” width=“10” […] height=“10”><img src=“Im01798.jpg” width=“10” height=“10”><img src=“Im01826. Esto se hizo como un esfuerzo para minimizar la información redundante (las trayectorias de los archivos . a 24 bits de resolución en color simplemente no se puede acomodar en una máquina incluso con 1 gigabyte de RAM. la única solución pertinente es cortarla y procesarla en pedazos. Así. un segundo enfoque se implantó. el archivo de salida (los resultados. Por otra parte. Esto sugiere dos situaciones: • • • Las máquinas personales aún tienen serias limitaciones cuando hablamos de software que requiere demasiados recursos gráficos.jpg” width=“10” height=“10”><img src=“Im04133. hay limitaciones que Windows impone. puede guardarse como una imagen JPEG directamente al disco.jpg” width=“10” height=“10”>nobr></td></tr> </table> Sin embargo. pero en el archivo HTML se puede cambiar con un Search&Replace global dentro de cualquier procesador de textos.

considérese la figura 4 (ver más arriba). ¿Por qué? Lo que pasa es lo siguiente: si tomamos los componentes R. En el apéndice II puede encontrarse más información sobre el visualizador. vistos a la lejanía muestran la imagen de Abraham Lincoln. que aunque minúsculas son notables. uno que se acerque a ese color. Software de depuración incluido Uno de los primeros problemas enfrentados en la generación de fotomorsaicos fue seguir al software para saber cómo estaba seleccionando los mosaicos de acuerdo a la región analizada. los cuales son. no requiere más que el archivo de índice. G y B y usamos la ecuación: L = ( R ⋅ 65536) + (G ⋅ 256) + ( B ⋅ 1) Encontramos que más de una tripleta puede dar valores muy cercanos. A pesar de su simpleza funcionan bastante bien.1. Curiosamente las métricas.0. Indudablemente esta ayuda permite analizar por simple inspección visual si el mosaico seleccionado tiene sentido o no. puede ser tratado como un mosaico de un color sólido. la distancia lineal.1) y la tripleta RGB(255. Descripción completa de la solución Para poder comparar los resultados obtenidos debemos definir diferentes parámetros visuales. Tómese. tanto la euclidiana como la de Riemersma permiten esta comparación minimizando la distancia definida entre la subregión analizada de la imagen fuente contra todas y cada una de las imágenes en la colección preprocesada. el cual contiene la información sobre cada imagen de la colección. (para esto último hay que procesar imágenes que Silvers ya haya procesado). Discusión sobre las métricas y del por qué funcionan o no Las métricas definidas parten de una concepción muy simple pero que de alguna manera son lo suficientemente aceptables para funcionar. Para entender por qué ciertas métricas son adecuadas y otras no.dentro del disco duro). Esto es la clave que define la métrica. a saber: 1. basta con hallar. Se incluyó en el programa de generación original una serie de rutinas que permiten ver el trabajo que está ejecutando el sistema aunque para ello haya tenido que reducirse la velocidad de procesamiento. es que las imágenes de la colección se utilizan únicamente cuando se quiere ver el resultado final. Cuánto se acerca el fotomorsaico creado a la imagen real cuando la primera se ve a cierta distancia Cuánto se acerca el fotomorsaico creado contra el equivalente realizado por Silvers. porque en ambos casos se toman los valores RGB de cada imagen. aunque sea el promedio final de color. De ahí que las métricas euclidiana y Riemersmana sean las más favorables pues consideran los pesos específicos de los valores RGB. además. El procesamiento de las mismas por el algoritmo que crea el fotomorsaico (con la métrica definida). Esto hace que esta métrica sea muy deficiente porque no puede reconocer estas diferencias. Algo importante de señalar. .0) difieren por la unidad pero son dos colores diferentes sin duda. porque a la distancia el ojo humano no podrá discernir si se trata de un color sólido o una imagen particular cuyo promedio de color se parece o es casi igual a la región observada. Si consideramos que una subregión (un rectángulo en el cuadro de Dalí). Aquí se plantea con toda claridad la definición de un rostro a través de grandes rectángulos de colores sólidos. La depuración puede encenderse o apagarse incluso a la mitad de la generación de un fotomorsaico. en cambio. la tripleta RGB (255. dentro de la colección de imágenes. 2. En su mejor posibilidad hallamos que solamente da un contorno de la imagen analizada. veremos que los rectángulos de colores sólidos. Si observamos con detenimiento esta imagen. Por ejemplo.

con 5544 imágenes en la colección y permitiendo la repetición de los mosaicos (véase más adelante la discusión sobre el permitir o no la repetición de mosaicos en la misma imagen). Los resultados obtenidos utilizando el segundo criterio. cuánto se acerca el fotomorsaico creado a la imagen real cuando la primera se ve a cierta distancia. La figura 12A muestra la fotografía fuente (la imagen a procesar). La imagen 12C muestra el procesamiento del fotomorsaico usando la métrica euclidiana. procesando una imagen conocida para compararla contra los que genera Silvers no es un proceso justo porque Silvers hace “blending”. fusiona la imagen original contra el fotomosaico en un porcentaje que puede ir de 5% a 50% entre ambas imágenes. En este ejemplo se tomaron subregiones de 10x10 pixeles. La generación de cada fotoMORSAico llevó alrededor de 2 minutos. es decir. en el blending cambia el color original de las imágenes en la colección o les agrega . Finalmente la imagen 12D enseña el procesamiento de la imagen usando la métrica Riemersma. La imagen 12B muestra el procesamiento del fotomorsaico usando la métrica lineal. Así entonces.Resultados obtenidos Utilizando el primer criterio. Cada fotomorsaico resultado se procesó con estos mismos parámetros y solamente cambiando la métrica. Figura 12 A Figura 12 B (lineal) Figura 12 C (Euclidiana) Figura 12 D (Riemersma) Nótese como las figuras 12C y 12D son las que más se acercan a la original. Evidentemente la transformación lineal es muy pobre. es decir. es decir.

Por eso sus resultados se ven tan sorprendentes. Figura 13 (detalle del sombrero de la figura 13) Figura 14 Otra imagen que muestra esta técnica de Silvers es la imagen que hizo de Bill Gates para su cumpleaños número 40. En cierta medida “hace trampa” para decirlo de alguna manera. Un acercamiento a la boca (labio superior) muestra como Silvers manipula los mosaicos a conveniencia (tales billetes aparecen marcados en el recuadro azul).las gráficas). . Nótese en el acercamiento del sombrero cómo el autor mejoró la sombra para que el contorno quedara mejor delimitado. la siguiente imagen muestra uno de los fotomorsaicos de Silvers (figura 13). Por ejemplo. Esto no es casual. La foto está armada con imágenes de billetes de diferentes países. El blending es un algoritmo muy simple de diseñar (el cual puede verse en otro de los capítulos dedicados a .sombra a la que quiere que corresponda. Robert Silvers entiende que el fotomorsaico así queda aún mejor a la vista aunque es un procedimiento mañoso y no exento de dificultades técnicas.

La pregunta es entonces ¿cómo saber si mi base de datos. Sin embargo. una parte medular en el desarrollo de software de esta naturaleza es la colección (o base de datos) de imágenes que se tienen para generar los fotomorsaicos. hay corrientes a favor y en contra. es decir. cubrir en promedio de manera pareja todo el espectro de colores.Figura 15 Indudablemente el truco es interesante pero le quita cierto “purismo” al fotomorsaico. como mantener una base de millones de imágenes es algo irrealizable en las computadoras personales actuales. Esta es otra rutina que permite quizás en una versión mejorada de la que hoy se tiene. la posibilidad de manejar el fotomorsaico generado. tal y como hace Silvers (ver la entrevista a Silvers en los apéndices). el sistema puede trabajar creando un archivo que indique los mosaicos que se ponen y las diferencias de color halladas entre la región analizada y el mosaico seleccionado. en principio la solución completa implica realizar un trabajo de blending sobre las imágenes de los fotomorsaicos tomando como base cada subregión original y aplicando la sombra o el contraste adecuado y combinarlo con el mosaico seleccionado. Estadísticas de la colección de imágenes Para que un fotomorsaico tenga un resultado aceptable se necesita que la colección de imágenes contenga la mayoría de los colores necesarios. es tan importante el programa generador de mosaicos y las métricas usadas como la cantidad de posibles imágenes y los colores que éstas pueden estar representando. Igualmente. De esta manera se garantiza que siempre habrá un mosaico que sustituya convenientemente alguna región sin importar el color. . es adecuada? Para esto se escribió un pequeño programa que lee el archivo de índice y genera una gráfica con las regiones de color definidas a grosso modo. Sin embargo éste es un tema que se sale de la discusión original aunque se volverá a abordar más adelante. en la medida de lo posible. Así entonces. las cuales se deben. de alrededor de 5500 imágenes. para llenar el espectro completo. Como en todo. al menos se requerirían 16 millones de imágenes (una por cada color). Sin embargo. dando solamente un espectro genérico de 16 colores. mi colección de imágenes. En resumen. hay que conformarse con la colección de fotos que se disponga. Este elemental programa estadístico permite ver qué tipo de imágenes necesitamos en lo que se refiere a color. Una colección debe contener. Cantidad y calidad de la colección de imágenes Escribir un software para generar fotomorsaicos no necesariamente es una labor difícil. si es que no se va a hacer uso de blending. Si estamos hablando de que el modelo RGB permite 16 millones de colores.

resulta poco práctico generar un fotoMorsaico de gran tamaño (típicamente entre 3 y 16 megabytes). es importante analizar los posibles resultados con otras imágenes. He aquí una prueba con una imagen de la modelo Sofía Vergara usando también las tres métricas. salvar en su computadora) Para esto se consiguieron los servicios de InterComputers. Los fotoMorsaicos generados bajo la página web es una muestra del resultado que puede obtenerse con el programa original. Casos de prueba El generador de fotomorsaicos se ha aplicado a diversas imágenes prueba. que al ser ampliadas pierden resolución.Montaje óptimo Dada una colección de imágenes y una imagen fuente se tiene la siguiente información: La colección consiste de t imágenes. las cuales se colocarán en las posiciones m de la imagen fuente. la dificultad aquí se reduce a entender cuál es la mejor métrica a considerar. pero que en términos de muestra es suficiente para evaluar la posibilidad de este sistema. Es obvio que existe al menos una solución a este problema que es mejor o igual de buena que las demás soluciones. El tiempo de carga de cada imagen. Puede incluso haber más de una solución. Sin considerar restricciones extras podemos pensar en que el mosaico correcto a seleccionar es aquel que tiene la menor distancia con respecto al área seleccionada en lo que se refiere a colores RGB. el proceso es automático y además. Debido a las limitaciones de la WWW. Interfaz con la WWW Una interesante propuesta es generar una interfaz de los fotoMorsaicos para la World Wide Web de Internet (WWW). Para esto. Se escribieron entonces los mismos programas de los que ya se ha hecho referencia pero los cuales reciben parámetros de entrada y salida. quien cual nos proveé gratuitamente del hosting de las páginas web y el servicio de contratación del dominio. Típicamente una imagen que en el programa original de fotoMorsaicos lleva un minuto y medio se reduce a 30 segundos aproximadamente. ver directamente (y en todo caso. se necesita lo siguiente: • • • • Un ISP (Internet Service Provider) que dé hosting al sistema de fotoMorsaicos Un dominio específico para mantener las páginas WWW que se requieran Una interfaz CGI (Common Gateway Interface) para ligar el software fotoMorsaico con la red Resultados que el usuario pueda. Consecuentemente. se tomó la decisión de generar fotoMorsaicos con imágenes reducidas. problema abierto por el momento. No obstante. a través de la página. Sin embargo. las imágenes de la biblioteca son las mismas que se usaron para generar los morsaicos ya descritos. los resultados se generan de manera muy rápida. para la creación de la imagen final jpeg es de esta manera mucho más rápida. Otro ejemplo de prueba con la imagen de Paulina López Noriega que amablemente se prestó a colaborar en este desarrollo: . El mejor fotomorsaico será aquel que tenga en suma la mínima distancia con respecto a las subregiones originales. en este caso www.com La interfaz CGI fue creada por Mauricio Fragoso. en particular el ancho de banda. Así entonces. Los resultados con la imagen de Ilse Olivo(imagen 12) muestran las tres métricas usadas. el cual permite generar vía Internet fotoMorsaicos de prueba de manera que los visitantes puedan “subir” las imágenes y ejecutar el software que entrega como salida una imagen “jpeg” que puede verse directamente e incluso “bajarse” a la máquina del usuario. Simplemente el tiempo para bajar dicha imagen resultante puede ser enorme. pero reducidas a 50x50 pixeles.la-morsa. debido a que no se requiere de ninguna interacción con el usuario. De esta manera.

Tamaños de las imágenes procesadas: 1. . pondremos aquí los resultados faltantes como casos prueba: (2) Sofía Vergara Imagen original Métrica lineal Métrica euclidiana Figura 16 Métrica Riemersma Nótese que en todos los casos hay una pérdida de precisión con respecto a la imagen original. aunque hay de otras escalas.En todos los casos se generó un fotomorsaico con mosaicos de regiones de 10x10 pixeles y con una base de imágenes de 5544. estamos hablando de una función no biyectiva (es decir. Esto por supuesto es natural considerando que en los términos matemáticos más simples. Todas las imágenes de la colección están en formato JPEG y la mayoría son de 960x1200 pixeles. no es uno a uno y no hay manera de reconstruir la imagen original a partir de la imagen procesada). 2. Ilse Olivo Sofía Vergara 458 x 588 460 x 554 (Figura 12) (Figura 16) Al igual que los resultados de la imagen (1).

Algo así como superponer la imagen original sobre la imagen procesada. por ejemplo). evitando así la necesidad de hacer blending sobre la imagen.Blending El truco para mejorar las imágenes procesadas como fotomorsaico es el agregar lo que se denomina “blending”. El siguiente ejemplo muestra una foto preprocesada y su respectivo fotomorsaico. Sin embargo. Figura 19 (Métrica Riemersma sin repetición contínua) . existe otra alternativa. Un ejemplo de ello lo tenemos en la siguiente imagen de Ilse: Figura 17 El efecto final es mucho más preciso. Este método consiste en agregar a cada región del fotomorsaico creado parte de los colores originales de la región que estamos procesando. la cual consiste en pre-procesar la imagen de manera que se pueda manipular el brillo y contraste de la misma (usando photoshop o retriever. pero no deja de perder cierto purismo con respecto a la idea original del fotomorsaico.

Generating Photomosaics: An Empirical Study. Quizás este último trabajo sea el que lleve la línea directriz en el algoritmo de búsqueda y selección. Referencias/bibliografía (1) (2) (3) (4) Recognition of Faces. Discrimination. Scientific American.remotepoint. Viola. icolas Tran. De Bonet.de/~michael/juggle (5) Colour Metric. Michael Troebs. Jordan Husney. a JAVA Photomontage program. de los mismos autores y la misma publicación. S. el hallar las ecuaciones mínimas para comprender el uso de métricas y la relación de las mismas con el sistema visual humano son de interés teórico y académico de cierta relevancia. Linux Image Montage Project (LIMP). De Bonet y P.htm (6) Fast Multiresolution Image Querying. http://www. http://www. Por otra parte. http://www.washington. y discriminación de imágenes (ver ovel Statistical Multiresolution Techniques for Image Synthesis. Igualmente. A on-parametric Multi-Scale Statistical Model for atural Images (1997). síntesis de textura. Conclusiones La generación de fotomorsaicos a color es un ejercicio de programación muy interesante pues se involucran diferentes factores que todo programador debe tener en mente: espacio en disco y velocidad de proceso. es claro que la generación de fotomorsaicos debe poderse comparar contra otros programas comerciales e incluso. http://www. ACM Communications 1998.edu/~jsd/Research/Publications ). ver las posibilidades de precisamente comercializar esta idea.ai.edu/~jsd/Research/Publications ). Triadmer Riemersma. segmentación.com.mit. October 1999.S. Structure Driven Image Database Retrieval. The etherlands.. J. and Recognition. Es claro que el preprocesamiento de las imágenes a usar para mejorar el contraste y brillo de las imágenes es importante y puede dar una mejora significativa a los fotomorsaicos sin necesidad de utilizar técnicas como la de blending. S.edu/research/projects/grail2/www/projects/query (7) ovel Statistical Multiresolution Techniques for Image Synthesis.stud.compuphase. que le quita cierto mérito purista. Leon Harmon.unihannover. Advances in Neural Information Processing 1997. Castelle.cs. http://www. En particular se observa que la mayoría de los sistemas comerciales para PC son pobres y muchos de ellos simplemente usan blending como parte fundamental de sus algoritmos.mit.ai. ovember 1973. http://linux. y Structure Driven Image Database Retrieval. Michael. J. Discrimination. J.com ).lview. 1997-1999. como por ejemplo un estudio más fino sobre procesamiento digital. ITB CompuPhases. sin importarles mucho el criterio de selección (caso típico en Lview Poster cuyo autor es Leonardo Loureiro (comercializado por MMedia Research Corp.cmetric. Por lo que respecta a las cuestiones de interés meramente académico puede decirse que los algoritmos para este tipo de sistemas son relativamente sencillos pero que si se desea un proceso de selección mucho más preciso se requiere de hacer análisis mucho más detallado. De Bonet and P. . o también. Ver http://www. Viola.com Juggle.Puede verse las mejoras en el fotomorsaico resultante. and Recognition (1997). A on-parametric Multi-Scale Statistical Model for atural Images (1997).

El programa en prolog salió entonces en una media hora. Hay conceptos que incluso es difícil de expresar con palabras. en una misma frase dos cosas diferentes. lista) encuentra_sufijo(string. el hombre ha podido describir y registrar su historia a lo largo de la historia. por ejemplo. pero que su representación matemática es poco menos que exacta. particularmente el escrito. lo cual complica la situación. Decidí entonces tomar solamente los regulares y hacer un programa en prolog que pueda generar sus posibles conjugaciones. en silencio. string. La intención de esto era entonces generar la cantidad de diferentes palabras (las conjugaciones). Encontré que hay 51 diferentes conjugaciones de los verbos regulares (con terminaciones ‘ar’. Y sí. en la mente. Conducir un auto. expresamos lo que pensamos. El cerebro genera –a través de ideas– que se representan por sonidos específicos. Por ejemplo: “veo a esa mujer con un telescopio”. Dentro de la cabeza de las personas los razonamientos se hacen en palabras. lo que demuestra que con la herramienta adecuada. ¿Qué estoy diciendo? ¿Qué yo veo a una mujer a través de un telescopio o bien. todo ello para mi proyecto del corrector ortográfico inteligente. pues ahí está mucho de lo que somos y hacemos. El lenguaje habla entonces de lo sofisticado que puede ser el cerebro humano. ‘er’. Por ejemplo. aparentemente. sin lugar a dudas. Es más. que a través de éste compone las más extraordinarias ideas. la programación se vuelve incluso más sencilla”: /* conjugación de los verbos regulares */ domains lista = string * predicates pide_verbo member(symbol. a todo esto).string) . string. en las matemáticas o en la física. Pensemos. Así pues. pero de pronto nos encontramos con excepciones a las reglas conocidas o bien. para cada verbo e incorporarlas a un diccionario de verbos conjugados. jugar al ajedrez. integer) encuentra_prefijo(integer. ¿se puede medir eso que es tan elusivo y que en principio nos diferencia de los demás animales? Es claro que hay eventos que revelan la inteligencia de los seres humanos. ¿qué es la inteligencia? ¿Cómo medirla realmente? Vaya. porque se da a malas interpretaciones. pensamos con un lenguaje. El lenguaje tiene una estructura muy bien definida. pero es más difícil decidir la medida de dicha inteligencia. yo o la mujer en cuestión. resolver incluso sudokus implica cierto nivel de inteligencia. pero con un lenguaje. que veo a una mujer que tiene un telescopio? La ambigüedad está presente y con esa simple oración no podemos llegar a ninguna conclusión sobre quién tiene el telescopio.Inteligencia artificial Conjugación de verbos regulares El término “inteligencia artificial” me parece un término muy mal elegido (acuñado por Marvin Misnky. pensando en estas cosas. el lenguaje de los seres humanos describe en cierta medida una capacidad que resulta considerarse inteligente. podemos describir lo que consideramos inteligente. el análisis de los lenguajes humanos es tan importante. string) toma_elemento(lista. ambigüedades que nos permiten decir. amén de que gracias al lenguaje. Por supuesto que tenemos verbos irregulares. Para empezar. Por ello. pensé si sería complicado escribir un programa que pudiese conjugar los verbos en español. En ese sentido los lenguajes son un medio fascinante para entender más qué nos hace inteligentes. e ‘ir’).

ar):- . encuentra_sufijo(Verbo.abais. readchar(_).Prefijo. readchar(_).Sufijo2). conjuga(participio.an].pide_verbo.Prefijo).areis.Sufijo2).Verbo.Prefijo.ais.LongVerbo). readchar(_). encuentra_prefijo(NumPref.aba.Sufijo2).!.abas. str_len(Verbo. readchar(_).ó.ar):toma_elemento([aba.ará.aremos.Prefijo).Prefijo).Palabra.Prefijo.Prefijo._.a. toma_elemento(Tail.ar):toma_elemento([aré.Sufijo2). conjuga(presente. conjuga(otras.Sufijo2).”“).nl.2). conjuga(futuro.asteis. conjuga(copreterito. NumPref=LongVerbo-2.Prefijo).aban]. encuentra_prefijo(_. encuentra_prefijo(Numero.arás. string) goal clearwindow.Prefijo). clauses toma_elemento([]. !. conjuga(gerundio. conjuga(copreterito. pide_verbo.ar):toma_elemento([é‚astes. readln(Verbo).arán].Prefijo.Prefijo. conjuga(preterito.Head). conjuga(pospreterito. readchar(_).Prefijo.Palabra. readchar(_). conjuga(presente.Prefijo.Prefijo).Prefijo):write(Prefijo.Sufijo2).Sufijo2).Prefijo):frontstr(Numero.Prefijo. clearwindow.Prefijo. pide_verbo:write(“Dame un verbo regular: “).Sufijo2. pide_verbo.aron]. conjuga(pospreterito.conjuga(symbol. conjuga(preterito.amos.Sufijo2)._).amos. readchar(_).ábamos. readchar(_).nl. string._):.Prefijo.Prefijo.Prefijo.Prefijo.ar):toma_elemento([o. conjuga(futuro.as. toma_elemento([Head|Tail].

er):toma_elemento([ía.ieron].emos.e.Prefijo).er):toma_elemento([eré.Prefijo).er):toma_elemento([iendo].áramos.Prefijo).isteis.eríamos.er):toma_elemento([o.a.er):toma_elemento([ido].íais.Prefijo.i‚ramos.e.Prefijo).ásemos.er):toma_elemento([ería.Prefijo).Prefijo).Prefijo.Prefijo. conjuga(participio. conjuga(gerundio.Prefijo. conjuga(preterito.arían].Prefijo.irían].aríamos.Prefijo.irán].Prefijo.Prefijo.asen].iese.ieseis.iremos.Prefijo).arais.Prefijo).ir):toma_elemento([í.Prefijo).ían].erías. conjuga(presente.isteis.ía.aríais. as.ía.eríais. conjuga(pospreterito.iste.ías.e.íamos.irá.aran.Prefijo). conjuga(participio.Prefijo).ara.Prefijo. .ase.as.aseis.Prefijo).imos.iera. ase.an.er):toma_elemento([í.Prefijo.ir):toma_elemento([iré.er):toma_elemento([a.aría.aras.iríamos.iría.ís.Prefijo.ir):toma_elemento([iendo].erá.ir):toma_elemento([ía.es.Prefijo.iríais.íais. conjuga(presente.Prefijo.Prefijo).ían].ió.íamos.iste.erás.Prefijo).ierais.iera.ar):toma_elemento([e. conjuga(futuro. conjuga(preterito.es.Prefijo.ió.en].ieron].ería.erán].iesen].imos.emos.iréis.Prefijo.eremos. conjuga(otras.iésemos.ías.ieses.irías.ieran. conjuga(pospreterito.Prefijo. conjuga(gerundio. conjuga(futuro.irás.éis.toma_elemento([aría.Prefijo).imos.Prefijo).ases.Prefijo.er‚is.es. conjuga(otras. iese.amos.ir):toma_elemento([o. conjuga(gerundio.ieras.ar):toma_elemento([ando].en].arías.éis. conjuga(copreterito. conjuga(copreterito.erían].en.ara.ir):toma_elemento([iría.Prefijo).Prefijo).ar):toma_elemento([ado].

ir):toma_elemento([ido].conjuga(participio. encuentra_sufijo(_. _. CuantasLetrasEnElSufijo) */ encuentra_sufijo(Palabra._).iese.ieras. conjuga(otras.ir):toma_elemento([a. Palabra.SufijoAEncontrar.member(X.i‚ramos.an.áis.amos. Sufijo).iera.Prefijo).ieseis.Y).iesen]. member(X.Prefijo.as. member(X.iera. Longitud >= (Cuantos+1).i‚semos.iese. frontstr(PosInicial.[_|Y]):. /* busca la terminación de una palabra: */ /* encuentra_sufijo(PalabraABuscar.Prefijo).ieses. PosInicial = Longitud-Cuantos. ieran.[X|_]). Sufijo.Longitud). .a.ierais.”“. Cuantos):str_len(Palabra.Prefijo.

Ese tipo de inferencias las puede hacer Prolog. creadora de Delphi. Crear cuadrados mágicos de orden impar es muy fácil siguiendo un algoritmo muy conocido. para decirlo en palabras simples. es que –a pesar de sus grandes ventajas para cierto tipo de aplicaciones– es muy ineficiente para una buena cantidad de tareas que hacemos normalmente en la computadora. pues). se conozcan y se difundan. prefiere describir el problema a programar el algoritmo (la receta de cocina. En Windows es donde quizás hemos visto las mejores aplicaciones en este sentido. que en su momento fue la gran promesa del proyecto quinta generación de los japoneses (actualmente cancelado). Las herramientas visuales son francamente excepcionales y hay que ser objetivos: Linux aún no cuenta con herramientas de un poder parecido. Sin embargo. Sin embargo. cuando el programador necesite aplicarse en algún lenguaje particular. Para eso se necesita entrenar y capacitar a las siguientes generaciones que finalmente. El problema de Prolog. Y no es que no pueda escribirse un buen editor de textos o una estupenda hoja de cálculo en Prolog. Un ejemplo simple de backtrack puede verse en el recorrer un laberinto. la versión 3 de Kylix es menos poderosa que Delphi 3 para Windows. quizás mi cerebro haga automáticamente una inferencia y me nazca preguntarle a Jorge: “¿no tienes un hermano llamado Luis?”. horizontales y diagonales mayores suman todas las misma cantidad. también reconocido como algoritmo de Robinson (en honor al autor. aquí intentaremos –en lugar de describir este algoritmo– de escribir un programa en Prolog que resuelva el problema y encuentre todas las soluciones (en caso de haberlas). Desafortunadamente. La empresa Borland. El código que soluciona el problema de un cuadrado de 3x3. La herramienta. C++Builder y Jbuilder ha sacado Kylix (Delphi para Linux). sino que no es el lenguaje más indicado para ello. no todo está perdido. Tenemos a Prolog. el cual pretende incorporar esta estupenda herramienta en el mundo Linux. pero esperemos que esto cambie en el futuro. Así. por el momento. inventado en 1972 por Colmeraur. Prolog resuelve todo a través de un motor de inferencias. el cual suponía que el software moderno tendría los elementos más importantes de la llamada inteligencia artificial. las mejores herramientas de programación tienen sentido sólo si existen programadores que puedan sacar jugo de las mismas. entonces retrocedemos sobre nuestros pasos hasta encontrar la primera bifurcación posible. a diferencia de los lenguajes imperativos (Pascal. en Prolog describimos el problema y el lenguaje nos da las soluciones a través de dos mecanismos: la recursión y el backtrack. Hay cuadrados mágicos de orden par y de orden impar. aunque le parezca desconocido. Prolog se basa en inferencias lógicas. Caminamos dentro de éste hasta que topamos con pared. ciertos lenguajes de programación han pasado desapercibidos hoy día. Un cuadrado mágico es una malla cuadriculada en donde la suma de las líneas verticales. que resuelva la dificultad. que publicó por primera vez el mecanismo en 1968). Seguimos este procedimiento hasta hallar la salida. De esta manera y abreviando el asunto (quizás demasiado). La recursión es simplemente llamarse a sí mismo. En términos de programación significa que una rutina se llame a sí misma hasta que cierta condición impida que se cicle eternamente. si me presentan a alguien que se llama Jorge Flores y yo encuentro un parecido con un amigo mío llamado Luis Flores. Si esto ocurre. a la larga notará estos elementos comunes y en un par de semanas podrá escribir todo género de aplicaciones. Y es claro algo: hay que capacitar en la ciencia de la computación y no meramente en la herramienta de programación de moda. C++). Curiosamente. Los japoneses intentaron crear toda una generación de computadoras basadas en Prolog para que las aplicaciones que corrieran tuviesen mucho más “inteligencia” que las que actualmente conocemos. son quienes seguirán escribiendo los programas que en el futuro se necesiten. el regresar sobre nuestros pasos si resulta que la solución hallada no cumple con nuestras expectativas. Como ejemplo consideremos la creación de un cuadrado mágico de orden 3 (impar). Pero claro está. A manera de ejemplo. Lo importante es que los principios fundamentales de la programación (comunes a todos los lenguajes).Inteligencia artificial Cuadrados mágicos Existen todo género de herramientas de programación en este mundo del cómputo personal. . El backtrack es.

el programa no usa el */ algoritmo conocido para hallar los cuadrados */ mágicos de orden impar. /* escribe en pantalla la combinación de números a probar */ /* meta a resolver */ .integer.E<>G.E<>I. H<>I.B<>I.Todo consiste en describir las condiciones iniciales y las de frontera. numero(F).0 de Borland: /* /* /* /* /* /* /* /* /* /* /* /* /* Este programa hace un cuadrado mágico de 3x3 Utilizando como característica principal el backtrack que viene integrado en Prolog. D<>E. numero(6). numero(B). numero(D). pues */ A<>B..B<>E.B<>F.F<>I.A<>C.C<>I.. */ */ */ */ Dicho de otra manera. */ /* condiciones de frontera.B<>D. Intente hacer esto en otro lenguaje y notará cómo crece su código.A<>G. He aquí la versión en Turbo Prolog 2.D<>G. Otro detalle notable es que el programa en Prolog ocupa muy poco espacio. numero(9). /* vienen las condiciones para los números: */ /* no debe haber números repetidos. F<>G.G<>I.C<>E. numero(E).A<>E. ecuacion(X. numero(3). /* la suma siempre debe dar R */ cuadrado_magico :numero(A). numero(4). numero(H).integer.Z.D<>F. numero(7). G<>H.R = X + Y + Z.C<>F.D<>I. numero(C). numero(I). E<>F. numero(8). numero(2).B<>H.A<>H.integer) /* descripción de cada suma */ cuadrado_magico clauses /* condiciones iniciales */ numero(1). describe */ las condiciones iniciales y de frontera que */ deben cubrirse en este tipo de cuadrados y */ entonces Prolog descubre todas las soluciones */ */ Programó: La_Morsa */ Octubre 2000 */ predicates numero(integer) /* los números que pueden usarse */ ecuacion(integer.D<>H.E<>H. Luego entonces.A<>I.C<>G.A<>F. C<>D. numero(5). numero(G).A<>D.F<>H. B<>C. En su lugar.B<>G.C<>H. le decimos a Prolog que nos dé las soluciones a través de probar todas las posibilidades exhaustivamente.R) :.Y.

G. .R).nl.F.R).R).” “. ecuacion(A.” “. /* presiona una tecla para continuar */ fail.R). readchar(_).B.” “.write(“Solución”).H.E. ecuacion(B.” “.H..E.H.D.E.” “. ecuacion(G.” “.E. ecuacion(D. /* condiciones necesarias para que sea cuadrado mágico */ ecuacion(A.G.nl.” “.” “.” “.” “.D.” “.C.write(A.R).I).H.” “.R).B. ecuacion(C.I).R).B. write(A. /* dame todas las soluciones */ goal cuadrado_magico.. write(G.F. Es increíble que tan pocas líneas de código generen tanto procesamiento.E.” “. ecuacion(A.C.” “.I. ecuacion(G.nl.C.nl.I.nl. corra el ejecutable.R). write(D.F). Si está en Windows 9x en adelante encontrará que todo acontece en una ventana de DOS. no se preocupe.C). /*meta a resolver */ Si le incomoda o francamente le da flojera entender cómo es que el programa funciona.I.E.F.”). write(“Presiona cualquier tecla para continuar. nl.

es evidente que la calidad de sus productos lo hacen ciertamente uno de los favoritos.Inteligencia artíficial Corrector fonético Todos los que usamos la computadora para escribir textos. Microsoft contestó a las críticas indicando que un nuevo equipo de lingüistas y gente profesional de la palabra. ni se da cuenta del error de dedo. lo importante de un procesador de palabras no es nada más que permita la escritura de documentos. Como sea. es claro que la campaña mediática de algunas compañías de software. sino que además. por decir algo. haría una revisión exhaustiva de estos problemas para que no volvieran a ocurrir. hace unos años se descubrió una cantidad de pifias bastante graves en el tesaurus de MsWord. sin duda fundamental en el cómputo personal. procesador de textos. o bien. que aludían a los de ciertos pueblos latinoamericanos. y el sistema no lo cambia por “esta”. pues nadie más ha encontrado este tipo de errores después de que fueron señalados. Por ejemplo. Ése es quizás el caso de la Suite Office. A esto se le ha denominado una “suite” de aplicaciones y las prestaciones de cada una de ellas ha logrado su propio nicho de clientes. Es decir. Ilustremos el caso: uno escribe la palabra “etsa”. ¿Cómo lidiar con este tipo de errores? ¿qué tipo de software podría atrapar estos . las correcciones se habrán hecho. solamente podían explicarse por la xenofobia del creador de dicho archivo de definiciones. MsWord. de Microsoft. a veces los correctores integrados al procesador de palabras no funcionan correctamente. utilizamos comúnmente algún tipo de procesador de palabras. se ha desarrollado de manera impresionante. Sin embargo. el hecho de traer “preinstalado” en las computadoras en venta esas suites. tiene sus propias dificultades. etc. corrija los errores que los usuarios cometemos al escribir algún texto. Imagen 1 La pantalla principal del verificador fonético Sin embargo. hay que reconocer que amén de la publicidad que la empresa de las ventanas pueda hacer. que sin duda es líder del mercado en este nicho particular de aplicaciones y además de las razones ya expuestas. por poner el programa más popular en el mercado. programa para presentación de conferencias. si mal no recuerdo. Hasta donde sé. bases de datos. es claro que sus productos realizan con bastante versatilidad las tareas encomendadas. a tal grado que algunas empresas venden sistemas completos que contienen todo lo que el usuario puede necesitar: hoja de cálculo. hace que muchos usuarios se conviertan en una especie de clientes cautivos. Este mercado. Definiciones como la de “flojo”.

sin duda. en 1988. pero muy rápido. hace unos años. pero que ha dejado en el tintero algunas ideas que han sobrepasado. discutía conmigo acerca de esta dificultad. Así. para ser precisos. Enricco dio con una solución simpática: se le ocurrió hallar todas las parejas de letras posibles en las palabras en español y entonces comparar contra esa lista de dos letras contra cada palabra y así ver si había errores de dedo. El programa trabajaba realmente bien y era muy. Después de un par de horas de someter al ring de las ideas los diferentes aspectos del problema. hace la tarea fenomenalmente bien. simples “errores de dedo”? Pues bien. Tomé el código fuente que Enricco escribió. que murió hace un par de años. la prueba del tiempo. . que ya no está entre nosotros. Hoy. note que el sistema corre rápido y que además. casi 20 años después. lo modifiqué de acuerdo a la herramienta que uso actualmente (Delphi) y de nuevo. Desde luego que el mérito principal de este esfuerzo de software es de Enricco Wizard. un buen colega y mejor amigo.problemillas. se escribió una primera versión de lo que Wizard llamó el “turbo verificador” (pues estaba escrito en Turbo Pascal 5.5). Enricco Wizard. decidí pasar este esfuerzo a Windows.

esto es. Trabaja –a diferencia de los correctores tradicionales que funcionan mediante gigantescos diccionarios– bajo las reglas de la ortografía castellana. Lapsus –en suma– es un corrector de ortografía que consta de reglas gramaticales y uso de diccionarios específicos. no de estilo. Simplemente es un corrector de ortografía. Sin embargo. La intención de Lapsus es permitir al usuario del sistema verificar sus textos automáticamente con la computadora. cartas. Por otra parte. Sin embargo. además de que su costo es alto. El problema de revisar y corregir textos mediante programas de computadora es un problema ya añejo. Lapsus es un sistema para verificar la ortografía de un texto escrito en español. la corrección de los textos se realiza de manera manual. La verificación de la ortografía de un texto es en algunos casos una labor pesada y tediosa. Este tipo de programas y sistemas aún están lejos de ser una realidad casera. Lapsus funciona concurrentemente con Word para Windows.000 vocablos distintos (sin tomar en cuenta las conjugaciones de los verbos). dicho en . en algunos casos. pues muchas palabras son excepciones a las reglas gramaticales conocidas. lo cual hace que este procedimiento sea. se han desarrollado múltiples editores y procesadores de palabras. Debido a esto. Este último archivo puede ir creciendo cada vez que se verifica un texto o bien. Esto. Debido a esto. además de tener la alternativa de usar diccionarios específicos. no puede comprender el significado de las frases de un texto. mediante la inspección visual del texto y en algunos casos. todo el material escrito que se alimenta a una computadora debe ser en muchos casos revisado y corregido antes de ser impreso. Evidentemente este proceso no es tan sencillo como parece. señalar los posibles errores que surjan en el momento de la verificación de estos y tomar las acciones correctivas que sean pertinentes. material escrito.Inteligencia artificial Lapsus: un corrector ortográfico inteligente Una de las principales tareas que las computadoras personales realizan a diario es la edición e impresión de textos. Lapsus permite hacer este proceso mucho más eficiente y rápido para los seres humanos. con ayuda de diccionarios. es posible que en un texto se encuentren palabras que no estén incluidas en el diccionario del usuario o se encuentren bajo las normas de las reglas gramaticales. sumamente complejo. El idioma español contiene más de 400. sin embargo. cuando el usuario así lo requiera. Imagen 1 El menú principal de Lapsus Lapsus puede crear varios archivos de acuerdo a los intereses del usuario: (1) Archivo de Diagnóstico. Esto quiere decir que el usuario puede pedir que se haga la corrección de documentos SI necesidad de salir de Word para poder usar Lapsus. En términos generales. memoranda y en general. (2) Archivo de palabras no encontradas al revisar el texto en cuestión y (3) un diccionario auxiliar. es posible que todo aquel que usa un procesador de palabras pueda sacar provecho de la existencia de Lapsus. En la actualidad existen muchos correctores de ortografía para el habla inglesa. ya que dicho archivo no contiene ningún formato especial. debe tomarse en cuenta que Lapsus no entiende el español. creado por el usuario. para el idioma castellano existen muy pocos.

a su vez. otepad o incluso el editor auxiliar de Lapsus pueden servir para tal fin. . Lapsus puede considerarse.otras palabras. para que éste último. Las reglas pueden ser editadas con cualquier procesador de palabras (o editor de textos) que utilice el formato ASCII sin caracteres de control o símbolos especiales. A continuación se describe el formato completo de las reglas. Así entonces.Db. “s”.deben ser escritas correctamente para que Lapsus pueda trabajar con las mismas: Las reglas ortográficas tienen tres posibles alternativas. Uso de reglas ortográficas A diferencia de otros correctores del español. sufijo y subcadena. habilitando o deshabilitando opciones para la corrección. agregar una línea más al archivo ya mencionado. expresiones y reglas que se usaban en el pasado son obsoletas ahora y en vista de esta situación. como todo lenguaje humano es cambiante. y “sb” corresponden respectivamente a prefijo. Por ejemplo. se decidió mantener las reglas ortográficas en un archivo especial. requieren de estar en un formato específico para poder ser leídas por el sistema. haga las correcciones y entonces las comunique al documento en Word. y contiene alrededor de 260 reglas ortográficas de uso común en el castellano. para que puedan ser entendidas por Lapsus. El programa permite verificar un documento en Word de diversas maneras. las cuales pueden aplicar a: • • • prefijo (p) de la palabra analizada (parte inicial de la palabra en cuestión) sufijo (s) de la palabra analizada (parte final de la palabra en cuestión) subcadena (sb) de la palabra analizada (en cualquier subparte de la palabra en cuestión) Las letras “p”. puede ser que en un principio. Palabras. WordStar en su modo nondocument. Las reglas ortográficas. significa que Word y Lapsus funcionan comunicándose el primero con el segundo. De esta manera. escribir una regla nueva significa finalmente. sus elementos esenciales son muy fáciles de comprender y usar. No obstante la aparente complejidad del mismo. en cierta medida. el cual es consultado cada vez que el sistema se ejecuta. y estas letras serán usadas para informarle a Lapsus en qué parte de la palabra se aplica la regla ortográfica. el archivo Reglas. que utilizan reglas ortográficas para su funcionamiento. Así entonces. indicando la sintaxis que las reglas necesitan y que -en rigor.DB le parezca al usuario final difícil de entender. El español. un “plug-in” (un añadido) para Word. Este archivo se denomina Reglas. Imagen 2 El menú para crear/modificar/eliminar reglas ortográficas Cada una de las reglas ocupa un renglón en el archivo Reglas.DB. PC-Write.

La regla entonces sigue el siguiente formato: Pasemos al análisis de esta estructura. En primer término aparece la palabra seguido de paréntesis que abre. Esto debe aparecer en minúscula estrictamente. Acto seguido, pueden verse cuatro parámetros, a saber: • letra Indica la letra a la cual se aplica la regla. Por ejemplo, si la regla ortográfica es sobre el uso de la v, éste es el parámetro que se utiliza. (Véanse los ejemplos más adelante). palabra Indica la palabra que no cumple precisamente con la regla que está siendo definida, es decir, muestra el ejemplo de la contraposición a la regla ortográfica misma. clave es exactamente lo que indica el alcance de aplicación de la regla (prefijo, sufijo o subcadena). Utilícese solamente las siguientes palabras claves (entre doble comillas: p, s, sb). lista Se refiere a la lista de palabras que son la excepción a la regla en cuestión. Tales palabras deben aparecer separadas por espacios entre sí.

Algunos ejemplos pueden ser realmente ilustrativos. Considérese la siguiente regla: Las palabras que empiezan con env se escriben siempre con v. La regla en el archivo Reglas.DB se escribirá entonces así: v enb p Lapsus reconoce la regla de la siguiente manera: Las excepciones a las palabras que empiezan con env nada más pueden ser aquellas que comienzan con enb, que en este caso no hay tales excepciones a la regla y el rango de aplicación de la misma es con todos los prefijos de las palabras. La regla descrita se refiere a palabras en donde el rango de aplicación corresponde al prefijo de las misma. Ahora considérese la siguiente regla: Todas las palabras que terminan con ave se escriben con v. Esta regla puede expresarse en el lenguaje descrito de la siguiente forma: v abe s árabe jarabe La cual puede ser descrita de la siguiente manera: Las excepciones a las palabras que terminan en ave nada más pueden ser aquellas que terminan con abe, las cuales son, árabe y jarabe (y nada más), y el rango de aplicación de la regla son los sufijos de las palabras. Por último, un ejemplo de una regla que se refiera a subcadenas puede ser la siguiente: Las palabras que tienen dentro de ellas (en cualquier parte de la misma) las letras ilv se escriben siempre con v. La cual se traduce en el archivo de reglas de la siguiente forma: v ilb sb bilbao Y se interpreta de la siguiente manera: Las excepciones a las palabras que tienen como subpalabra ilv se escriben siempre con v, excepto la palabra bilbao.

Sobre Lapsus Lapsus es el primer programa de corrección del lenguaje castellano que utiliza técnicas de la Inteligencia Artificial (IA) para la verificación ortográfica. La primera versión (circa 1992) fue escrita totalmente en prolog (turbo prolog versión 2.0) y además de utilizar un diccionario con más de 60,000 términos (en donde están consideradas las palabras más usadas del español), se incluía un análisis de verificación por reglas ortográficas. La versión actual funciona a través de la comunicación entre procesos llamada OLE (Object Linking and Embedded) y fue escrita usando Delphi 5.0 de Borland. Para que Lapsus llegue a sus manos, han pasado más de diez años de investigación en temas como análisis automático de textos, verificación y corrección a través de computadoras, discusiones interminables sobre cómo debe hacerse un programa de esta naturaleza, además de una maestría en bases de datos inteligentes, en la Universidad de Essex, Inglaterra, en el año de 1988.

Inteligencia artificial Creador de crucigramas

Una amiga –que editaba una revista de negocios– me pidió que hiciese una sección de crucigramas, siempre y cuando ésta presentara nombres y términos dedicados a las finanzas y al mundo de los negocios. Yo le dije que lo haría sin dudarlo, pues a priori pensaba que ya en Internet más de una persona habría encarado la creación de crucigramas a través de la computadora. Para mi sorpresa, encontré que el problema realmente no había sido analizado cuidadosamente. Por un momento pensé que debería haber ya muchos programas que me permitieran crear la malla cuadriculada en donde se pondrán las palabras, así como poner las casillas vetadas (las marcas negras), que separan las palabras. Una vez hecho esto, imaginaba que le podía dar una lista de palabras y el sistema intentaría acomodarlas al mejor estilo de un crucigrama. Pues bien, nada de eso existe estrictamente. ¿Por qué? Había que investigar el fenómeno. La razón de esto es que la creación de crucigramas necesita de diversos pasos, unos que son labores triviales de la programación, pero que en última instancia los pasos finales son prácticamente difíciles de cumplir adecuadamente. Crear un programa que dibuje la cuadrícula y me permita poner los cuadros negros es algo sencillo, pero la generación del crucigrama representa la gran dificultad. Imaginemos que tenemos las palabras que queremos poner en el crucigrama. Es más supongamos que tenemos palabras de más, para que si una no se puede poner en donde debe ponerse, podamos poner otra de la misma cantidad de letras, por ejemplo. Imaginemos el siguiente crucigrama elemental. Nótese que no es ni siquiera una cuadrícula con cierta simetría. Nada de eso, pero para efectos ilustrativos es muy interesante. Tenemos cuatro palabras que debemos acomodar en ese crucigrama. La palabra 1 es de 5 letras, la 2 es de 6 letras, la tercera es de 5 letras y la cuarta es de 7 letras. Ahora supongamos que tenemos las siguientes palabras, las cuales podemos usar para crear el crucigrama: 2 +---+ | | +---+---+---+---+---+ 1 | | | | | | 3 +---+---+---+---+---+---+ | | | | +---+ +---+ | | | | +---+---+---+---+---+---+---+ 4 | | | | | | | | +---+---+---+---+---+---+---+ | | | | +---+ +---+ | | +---+ Las palabras que puedo poner son estas: market, trees, monkey, simple, wise, vague, sea, yacht, ocean, foggy, artista, realice, brave y quite. Estas pocas palabras son suficientes para trabajar en el programa demostrativo. ¿Cómo resolveremos el problema? Necesitamos poner lo siguiente: Una palabra de cinco letras con otra de seis letras, en donde se intersecten en la tercera letra de la primera palabra con la segunda letra de la segunda palabra; además, requerimos una tercera palabra de siete letra y una cuarta de cinco letras, en donde la intersección de la segunda con la tercera palabra sea en la posición cinco de la segunda palabra

Por cierto. sino unas miles. apelamos al backtrack. y busca una nueva palabra de seis letras e intenta de nuevo satisfacer la intersección de M1 con M2. no podemos saber si hay una solución o no al crucigrama que acabamos de dibujar para que el sistema nos ponga las palabras adecuadas. que incluso para resolver este simplísimo crucigrama. si eso pasa. entonces busca la siguiente meta a resolver. La única manera de saberlo es intentar generar todos los posibles crucigramas con esas palabras (y con las restricciones definidas). sino que hace backtrack de nuevo y entonces busca una nueva palabra de cinco letras y re-empieza todo el proceso descrito antes con la de seis letras. Una vez hecho esto. Si falla. un programa de esta naturaleza ayudase a los creadores humanos en esta labor? Quizás éste es uno de esos programas que parecen simples pero que en el fondo contienen un sinfín de problemas no del todo resolubles incluso a través del cómputo. el sistema no dice: no se puede resolver el crucigrama. Dicho en otras palabras. el cual significa regresar sobre sus propios pasos cuando el sistema se encuentra en un callejón sin salida. es decir hace backtrack). Esto significa que hablamos de restricciones entre las propias palabras y posiciones específicas en donde deben coincidir las letras de ambas palabras en conflicto. Si definimos todas las restricciones. en donde la cuadrícula tiene un dibujo incluso simétrico (esto es clásico de los crucigramas profesionales). prolog hace un verdadero esfuerzo de procesamiento. pero si esto falla. para ver si existe semejante crucigrama o no. Ahora bien.con la tercera posición de la tercera palabra. El tema da para más. El sistema funciona así: primero resuelve en la meta la primera instrucción: hallar una palabra de 5 letras (M1). ¿Cómo es que prolog resuelve el problema? Para resolverlo con prolog. Imaginemos entonces que no tenemos una decena de palabras. ¿Podrá escribirse un programa que genere un crucigrama dadas ciertas palabras? ¿qué otras restricciones habría que poner para que por lo menos. busca una nueva palabra de seis letras… Y si ninguna de las palabras que tiene de seis letras funciona. Ahora intenta ver si la intersección de M1 con M2 en la posición 3 de M1 con la posición 2 de M2 coinciden en la letra que va ahí. finalmente necesitamos que la intersección entre la tercera y la cuarta palabra se dé en la posición 5 de la tercera palabra con la posición 3 de la cuarta palabra. busca una palabra con 6 letras (M2). sorprendentemente para algunos. ¿cuánto tiempo le llevará al sistema hallar una solución si es que la hay? No lo sabemos. el sistema regresa (hacia atrás. lleva cientos de miles de iteracciones a través del backtrack. El sistema es no decidible. ésta es la solución que entrega el sistema: 2 +---+ | M | +---+---+---+---+---+ 1 | B | R | A | V | E | 3 +---+---+---+---+---+---+ | R | | Q | +---+ +---+ | K | | U | +---+---+---+---+---+---+---+ 4 | R | E | A | L | I | Z | E | +---+---+---+---+---+---+---+ | T | | T | +---+ +---+ | E | +---+ . es decir. extrapolemos esto a un crucigrama de 10x10 casilleros.

'r'.'l'.'a'.X1) is true if T */ /* is the number of letters in the word X1 */ num_lets(0. word(['a'.'g'.'r'.'e'. word(['r'. word(['w'.wordlist.wordlist) clauses word(['m'.'e']).'i'. word(['s'.'c'.M) :word(M). word(['m'. word(['o'.'s']).'a'.'t'.'e'. word(['q'.wordlist) intersect(wordlist.'g'.'t']).'p'.'k'.'e']).'e']).'a'.wordlist.integer) extract(wordlist.'a'. T = T1 + 1.'e'.[M1|M2]) :num_lets(T1.'i'.'h'. ed Springer-Verlag */ /* */ /*************************************/ domains wordlist = char* predicates word(wordlist) num_lets(integer.C2.'e'.'o'. /* el total de letras que tiene la palabra [] es 0 */ num_lets(T.'e']). word(['f'.N1.'e'.'s'.'a'.'r'.'e'. /* predicate intersect(C1.N2) extracts */ . 1995 */ /* */ /* */ /* programa basado en el que aparece */ /* en el libro: An Introduction to */ /* programming in Prolog.wordlist.'l'.'a'.'y']).'z'.'i'.M) is true if M has lenght T */ long(T.'t']).'y']). num_lets(T.'i'.'e']).'t'.'i'.'t']).0 beta */ /* Fecha: Nov 4. /* predicate long(T. word(['t'.'e']).'n']).'a']).'o'. word(['v'. word(['y'.M2). word(['b'.'s'.integer. word(['s'.[]).'u'.wordlist) long(integer.'c'.'k'.'r'.'m'.'n'./*************************************/ /* Crucigramas */ /* Por: La_Morsa */ /* Versión: 1.'v'.M).integer. de Patrick */ /* Saint-Dizier.'e'.'g'. /* predicate num_lets(T.'u'.char) crisscross(wordlist.

N. It then ask whether the two extracted letters are the same.M2. write(M1). long(6.M4) :- . It places */ constrains on the words through predicate */ intersect.nl.N2) :- /* predicate extract(C.R). extract(C2.C2./* /* /* /* /* /* the letters in position N1 from the list C1 and the one in position N2 from the list C2.N2. */ extract([C1|C2]. */ long(5.R). long(7.M3. /* /* /* /* /* /* predicate crisscross is the main call. extract(C2. extract([C1|C2].N1.C1). */ */ */ */ */ */ intersect(C1.2).5.R) is true if R is the */ /* Nth letter in the list C of letter.2). crisscross(M1.R) :M=N-1.3). and 5. 5.M3).M2. intersect(M2. The lenght of the words here */ is..N. goal crisscross(M1.5.. 7.nl. write(M3).M3.M1).R).M4.N1. write(M2).M2.M.3.1. extract(C1. long(5.nl. write(M4). respectively.M4). intersect(M1.M3..M4). It */ selects words of the appropiate lenght for */ a given grid. This is expressed through the ocurrence of the same variable R in both calls to extract. intersect(M3. 6..M2).nl.

Después de una breve pausa. uno que pueda responder a cualquier pregunta en español. por supuesto. devil 666. que posteriormente llamaron lisa. quien es la encargada de responder a las preguntas. el cual supuestamente es un sistema que.Calderón” (empiece con un punto). no aparece en . Cada vez que se quiere preguntar al sistema algo. Alguno de mis cinco lectores me dirá que ningún programa realmente puede responder cualquier pregunta.Inteligencia Artificial Engañando a la prueba de Turing De acuerdo a la Wikipedia. como el que ejecutan los profesionales de la ilusión y que nos sorprenden. Considere a su posible víctima y dígale que tiene un programa fascinante e increíblemente inteligente. extraordinario programador. porque no encontraré en primera instancia forma alguna para explicar dicha respuesta. denominado Liza. liza. Qué tal preguntarle: “¿Cuánto vale mi computadora?” Si el sistema me responde con: “Muchos pesos”. Insista que el sistema puede responder prácticamente cualquier pregunta que se le haga. entre otros nombres. la pregunta. La tesis de Turing es que si ambos jugadores eran suficientemente hábiles. y no dejándole aclarar si se está dirigiendo a un ser humano o a una máquina. Imagine pues un programa verdaderamente inteligente. fallecido hace unos pocos años. podrían haber programado esta respuesta. entonces podré suponer que es una respuesta genérica. escribió un programa que hace precisamente esto. en el lenguaje que naturalmente hablamos los seres humanos en nuestro país. La prueba consiste en un desafío. un acto de magia. Note que cada vez que presiona alguna letra de lo que está realmente escribiendo. Ejecute el programa IQ y dígale a su interlocutor que piense en alguna pregunta. El juez debe descubrir cuál es el ser humano y cuál es la máquina. si una máquina se comporta en todos los aspectos como inteligente. seguramente me quedaré sorprendido. desde luego. el sistema dirá algo así: “De acuerdo con mis estimaciones. se llama Prueba o Test de Turing al procedimiento desarrollado por Alan Turing para corroborar la existencia de inteligencia en una máquina. Pero no hay que cerrarse ante la posibilidad de imaginar un programa de estas características. Existen. Wizard –a partir de esto– elaboró su programa y el autor del mismo se demostró como un verdadero observador de la conducta humana. porque para esto necesitaría de una amplia concepción del mundo (y sería algo inteligente ¿no?). Entonces escriba usted: “. hay que darle a Liza. estándoles a los dos permitidos mentir al contestar por escrito las preguntas que el juez les hiciera. Tomemos un lápiz y preguntémosle a nuestro hipotético programa: “¿Qué tengo en la mano?” Si la respuesta es: “un lápiz”. El límite temporal que Turing puso para que una máquina consiga superar el test engañando durante bastante tiempo a un buen interrogador. Ahora hacemos la pregunta que nos interese del tema que queramos. hagamos una pregunta cualquiera: ¿Quién es divina? por ejemplo. y una máquina y un ser humano en otras. Si las respuestas de un programa de computadora es indiscernible de las respuestas que daría un ser humano. Enricco creó el programa IQ. a lo mejor puedo suponer que a sabiendas que el programa iba a interactuar conmigo. efectivamente. Supongamos que dicha pregunta es: “¿Quién es el Presidente de México?”. el juez no podría distinguir quién era el ser humano y quién la máquina. tal y como hemos explicado antes. pues desafían todas las leyes conocidas. el sistema pasa a la siguiente línea en la pantalla). responde cualquier pregunta. los Pumas ganarán de nuevo”. por ejemplo: “¿Ganarán los Pumas en esta ocasión?” (Termine con signo de interrogación). Se supone un juez situado en una habitación. Si la respuesta es: “Ilse”. y sigue siendo uno de los mejores métodos para los defensores de la Inteligencia Artificial. ouija electrónica. que simplemente reconocer las preguntas en lenguaje natural sería ya un mérito más que suficiente. Por supuesto que todo es un truco. Ahora. Vaya. muchas versiones de esta prueba pero el afán es siempre el mismo. de buenas maneras. entonces estamos ante –al menos– un ente inteligente. Todavía ninguna máquina puede pasar este examen en una experiencia con método científico. ¿Cómo trabaja? Muy fácil. favor de responder a la siguiente pregunta:” (al escribir los dos puntos. ¿Será posible engañar a la prueba de Turing? Enricco Wizard. Simplemente imagine que existe. Pero sigamos. Fue expuesto en 1950 en un artículo (Computing machinery and intelligence) para la revista Mind. entonces debe ser inteligente. Esto se hace escribiendo: “Liza. El sistema trabaja considerando que hay un personaje. Se fundamenta en la hipótesis positivista de que.

fue engañando por un adolescente que había modificado la versión original de Lisa y le había puesto frases satánicas para así crear un efecto más dramático. Limítese a hacer no más de diez preguntas y nunca deje el programa en la máquina en donde está haciendo la demostración. ahora sí. en la siguiente línea. Al televisivo investigador le pasa eso contínuamente y por eso prácticamente todas sus “investigaciones” son finalmente sesgadas por sus propias creencias. incluso a aquellos que son unos verdaderos expertos en las artes de la programación (me consta). el programa no hace “eco” en pantalla de lo que teclea uno. Ahora bien. escriba punto de nuevo (“.” etc. diga . Cuando le pidan una copia del sistema. sino parte del mensaje: “Liza. Para añadir un efecto más dramático. y ahora. haga que el programa responda de pronto de manera errónea o muy vagamente (si contesta siempre con certeza absoluta es más difícil que le crean). preguntémonos por qué el truco funciona. escriba la pregunta correspondiente. Cuando termine de escribir la respuesta elegida.. Demuestre el programa por un corto tiempo. tanto a favor o en contra de cualquier hipótesis que se planteé la gente. se trata de: Calderón”. Otra cuestión es la velocidad del tecleo..pantalla lo que uno debería ver. no se trata de hacer una sesión de dos horas porque entonces sí. Después de algunos segundos Liza responderá: “Sin considerar más datos. Obviamente el sistema está capturando la respuesta que el programa dará al usuario. favor de responder. De esta manera pretendía mantener sin alteraciones el software original. La verdad es que cuando tecleamos. Jaime Maussán.. que el dizque investigador de ovnis y fenómenos paranormales. Imagen 1 Liza para Windows Tan fue un revuelo el programa de Enricco. complete la oración que hay que poner cada vez que se le hace una pregunta a Liza (termine con dos puntos (“:”)). favor de. Eso revela un dato por demás ya conocido: quien quiere creer en algo seguramente lo creerá sin considerar ninguna prueba en contra de lo que cree.” etc. Sólo me resta una advertencia.”). Cabe señalar que después de la creación de este programa.. por ejemplo)– Enricco se dio a la tarea de hacer una versión para Windows y encriptó todos los mensajes para que fuese difícil cambiarlos. Puede con esto impresionar a más de uno. Maussán se la creyó originalmente. tarde o temprano hallarán el truco usado. y a sabiendas que más de una persona lo modificó –editándolo con algún programa que manejaba el código como texto (un editor hexadecimal. que hace aún más difícil detectar el engaño (¿alguien ha tratado de ver la clave de un usuario mirando el teclado cuando éste escribe su contraseña?). hasta que alguien le explicó el truco de cómo funcionaba. Es algo endémico. es claro que la posible víctima está atenta a lo que aparece en pantalla y eso distrae la posibilidad de atender a lo que se escribe en el teclado. sino que siempre pone la frase: “Liza. Finalmente. el cual es el terminador de la misma y entonces. nadie observa qué teclas en particular estamos oprimiendo realmente. Es decir.

que la BSA lo va a perseguir o alguna excusa de esa naturaleza. Haga como los verdaderos magos: nunca revele el truco usado..que no se lo puede pasar a nadie por las cuestiones del pirateo de software. y esto es lo más importante. Ah.. algo más. .

doku = solo). pero también se utilizan otros tamaños. lo cual en ocasiones no resulta cierto. Es muy probable que el Sudoku se crease a partir de los trabajos de Leonhard Euler. ideado por Howard Garns. ella tomó el libro. La cuadrícula más común es de 9x9 con regiones de 3×3. Entonces. Posteriormente. muy adictivos. Lo que importa es que sean nueve elementos diferenciados. en la que cada casilla está ocupada por uno de los n símbolos de tal modo que cada uno de ellos aparece exactamente una vez en cada columna y en cada fila. aunque generalmente lo son. Fue claro que se trataba de un juego de lógica. sin duda. el cual es una matriz de n×n elementos. . lo abrió en alguna de las páginas y me enseñó cómo se resolvían dichos problemas. porque es más fácil recordarlos. columna o subcuadrícula. en donde hay que asumir que en algunas casillas hay ciertos números. En este pasatiempo no se debe repetir ninguna cifra en una misma fila.Inteligencia Artificial Creación de sudokus Hace tiempo una amiga me mostró un libro con cientos de problemas de Sudokus. Por ejemplo: |abc| |bca| |cab| Un cuadrado latino se dice que está reducido (o normalizado o de forma estandarizada) si la primera fila y la primera columna están en orden natural. Cabe señalar que el nombre de Cuadrados Latinos se debe a que fue el propio Euler quién utilizó caracteres latinos como símbolos Una solución de un Sudoku correcta genera un cuadrado latino. Así. Analizando con cuidado empecé a entender que el pasatiempo involucraba mucha lógica más que habilidad matemática. quien le puso el nombre. Historia Este rompecabezas numérico pudo haberse originado en Nueva York en 1979. la editorial Nikoli lo exportó a Japón. Le dije que ya había visto ese tipo de “acertijos” pero que no entendía realmente por qué se estaban poniendo tan de moda. las regiones no tienen por qué ser cuadradas. la empresa Dell Magazines publicó este juego. formas o colores sin alterar las reglas. Evidentemente. Por ejemplo. ya que es práctica común en japonés tomar el primer kanji de palabras compuestas para abreviarlas. Posteriormente. y que parecía correcto. Dicho matemático no creó el juego en sí. famoso matemático suizo del siglo XVIII. Además. el nombre se abrevió a Sūdoku (sū = número. sino que utilizó el sistema llamado del cuadrado latino para realizar sus trabajos en la teoría del cálculo de probabilidades. sino que se pueden usar letras. que se puede traducir como “los números deben estar solos”. porque la primera fila y la primera columna son a. bajo el nombre de Number Place (el lugar de los números). pero se utilizan números por comodidad. el primer cuadrado está reducido. Fue Kaji Maki. es posible hacer un cuadrado latino permutando (reordenando) las filas y las columnas. publicándolo en el periódico Monthly Nikolist en abril de 1984 bajo el título “Sūji wa dokushin ni kagiru”. b. c. El objetivo de este juego es rellenar una cuadrícula de 9×9 celdas (81 casillas) dividida en subcuadrículas de 3×3 (también llamadas “cajas” o “regiones”) con las cifras del 1 al 9 partiendo de algunos números ya dispuestos en algunas de las celdas. para tener que empezar de nuevo. Poco a poco descubrí que los Sudokus pueden ser. Realmente no es estrictamente necesario utilizar números. Un Sudoku está bien planteado si la solución es única. y entonces hay que asumir otros. presidente de Nikoli. Un error en una casilla puede llevar a tener que cambiar todo lo que hemos asumido.

sino que además alcanzó notoriedad por el enfoque científico (particularmente en las matemáticas). en donde algunos de estos son simples variaciones del pasatiempo original.En 1986. un neozelandés. con una extensa descripción de la historia de este pasatiempo así como de sus reglas y un ejemplo que lleva de la mano. que tuviese una aceptación mundial vertiginosa en los años ochentas y que generó no solamente ventas millonarias de dicho juguete. para poder hallar métodos para solucionarlo de manera eficiente y satisfactoria. pero cuando pensé en Prolog. Tres días después. A este primero le siguieron 3 volúmenes más. Sabiendo que los periódicos del Reino Unido tienen una larga tradición en cuanto a la publicación de crucigramas y otros rompecabezas. vio un rompecabezas parcialmente completado en una librería japonesa. el juez jubilado de Hong-Kong Wayne Gould. las celdas con cifras dadas estarían dispuestas de forma rotacionalmente simétrica). quizás comparable solamente con el cubo de Rubik. promovió el Sudoku en The Times en Gran Bretaña. En el año 2005 ven la luz pública los primeros libros sobre Sudoku en español. Sin duda el sudoku es un buen ejercicio de programación. con 200 Sudokus agrupados en 4 niveles de dificultad. En 2005 muchos otros periódicos de todo el mundo empezaron a incluir Sudoku a diario en sus páginas. paso a paso. otro sobre Cuadrados mágicos. así como un libro sobre Kakuros. Durante unos 6 años desarrolló un programa de computadora para producir rompecabezas rápidamente. Los rompecabezas de Pappocom. “Los mejores Sudokus”. de 59 años de edad. En el año 1997. Esto no siempre se cumple en los Sudokus actuales. empresa de software de Gould. en otras publicaciones internacionales ha hecho que lo apodaran en los medios de comunicación mundiales en 2005 como el “rompecabezas con un crecimiento más rápido en el mundo”. que los publicó bastante más tarde. por ejemplo. se han impreso diariamente en el Times desde entonces. En 1997 Wayne Gould preparó algunos Sudokus para el diario The Times. el lenguaje de programación diseñado para la inteligencia artificial. se imprimieron cinco rompecabezas con soluciones ese día. Nationwide News Pty Ltd comenzó a publicar el rompecabezas en The Daily Telegraph de Sydney el 20 de mayo de 2005. llegué a la conclusión que el programa podía escribirse en pocas líneas. La gran popularidad alcanzada por el Sudoku en los periódicos británicos y más adelante. The Daily Mail publicó sus Sudokus con el nombre codenumber. a la resolución de los mismos. La pregunta es simplemente ¿cómo se pueden generar este tipo de acertijos usando la computadora? ¿qué programa hay que escribir? Aparentemente la tarea no es sencilla. publicándolo el 12 de noviembre de 2004 (llamándolo Su Doku). Nikoli introdujo dos innovaciones que garantizarían la popularidad del rompecabezas: el número de cifras que venían dadas estaría restringida a un máximo de 30 y sería “simétrico” (es decir. He aquí el código que generé: . en diciembre de 2004. y uno más sobre el Cuboku.

write(H).C.B. suma(A. X). resultados(A. write(C). */ */ */ */ delete(X.F.E.G.F. R):perm(T.F.I.H.G. write(B).0 delete(X. [X|T].E. perm([H|T].C. nl. .I) :write(A.I) :write(A).nl. write(I). []). X). S).I).B.E. R. T.B.F.D.R) :A+B+C+D+E+F+G+H+I = R.H. delete(H. write(E). /*permutaciones */ perm([]./* Generador de Sudokus /* Por La_Morsa /* Marzo 2010 /* Versión 1. escribe(A. write(F). [H|T].H.B.D.C. [H|S]):delete(X.D.H. T). write(D).E. write(G).G.G.C.D.

suma(D1.H2.C1. C2.I8.G6.E8.D2.8.C9.D6.5.I6.[F1. escribe(A6. perm([1. la suma de sus elementos siempre dará 45.G2.H8.E2. H9]). suma(D7.C6.F3.H4. 45). suma(A8.E7.F5. Es claro que para cada renglón. La teoría del código es ésta: Para crear un sudoku tengo que poner. para ser preciso).I6).D6. C3.2.6.H1.4. H8.B6.5.F7.D5.9].B8. suma(A2.7.C1.3.I7). C9]).5.E1.B2.[A1. 45).C9. en cada línea.B9.4.B6.A9.F2.5.F9. 45).7.5. I6.C2.F9.E5.I9.[G1.6. hallado ya escrito en Internet). 45). escribe(A9. B2.B4.4.6.D4.G8.G6.nl. D5. 45).C3.F1.G5.4. G5. escribe(A3. H7. H5.D8. 45). suma(D4.nl. H6.F5.E6.9].I5. E5.F6.B7. escribe(A2. H4.2. D4.[C1.D3. suma(A7.F7.I4.7.C4.[D1.6. utilizo el procedimiento perm (las permutaciones.E6.I7.E4. I2.F6.D6.H9. B5. I9]).C8.8.B1. perm([1. D6. C6. H2.A8.E2.C2. B6. F2.6.F8.5.I9.2. G7.9].B9. A5.3.C2.H2. y genero una permutación de los 9 elementos.D4.B6.F4.B3. G2.H1.sudoku :/* hallamos primero las permutaciones de los nueve renglones */ perm([1. E8.I3.2.B3.4.E5.5. E4.5.B9.nl.A2. G9]).5.H5.I4). I7. A6.D3.E3.G3. escribe(A5.F3.D1.D8.D3.I3). suma(G4.I1. de la cuadrícula del sudoku.B8. G8. perm([1.I5. E6.C8.H9.I1). escribe(A8.C6.H8.2.G3. suma(A4. G3. E2.7.G9. nl.C1. D2.D9.I9). 45).A6.E6.D5.G2. F7.F1. 45 */ 45).H2. suma(A6.B5.I6.6. 45).F5.4.G8. /* escribe los resultados */ escribe(A1.H4.E9.9].H5.G1.A3.7.G6.I2. C5. 45).H4.8.I8).B1.C7.I8.H8. E3. suma(G7.C3. suma(A4.7. I8.8.4. B7. A3.nl. 45).A5. C8. en una cuadrícula de 9x9. 45).7.B5. hasta el 9.3.C5.F4. 45). I4.[B1. E7.E8.2.8. G4.G1. escribe(A7.D2. D3.G7. /* ahora damos la restricción: la suma de cada columna debe dar suma(A1.B7.F8. suma(A7.F2. A8. suma(A5.3. F6.C6.E8.I3. D7.I2. 45).E1.I5).3. . F8.F2.E7.B5.F1.G8. F3.9].H6.B4.9].E3.C7. 9 números diferentes (del 1 al 9. Actúo de igual manera para el renglón 2.E3.B3.[E1.D7.H1.2.D7. /* ponemos ahora la restricción de las cajas: cada caja debe sumar 45 */ suma(A1.G5. A4.G4. B3.G5. B9]).E9. F9]).E9.C3.8.I1. suma(A9.[H1.G4. I3.H7.9].D9. A9]).G2.C7.8. I5.3.F8.B7.B1. perm([1.E7. 45).9]. D9]). C7.G7.D2.H6. G6.C5.E4.B4.9].I4.2.G3. F4.C4.4.D1. perm([1.3.4.8. B4.H6. nl. perm([1.E2.F3.B8. escribe(A4.H5.H7. 3.H3. A2. F5.D8.I2).6.6. E9]).C4. 45).I7. 45). Para ello.G9.8. perm([1.G9.E1.H3.D9.F4.F7. B8. C4.H9.E4.C8.2.F6.H3. suma(A3.H7.C5.E5. 45).3.B2.D5.6.[I1. D8.F9. perm([1.7. A7. suma(G1.7.C9.B2. H3.3.

podría haber combinaciones de números. clauses y goal). hará de nuevo backtrack y así estará por un buen rato. y así hacia atrás sucesivamente. por lo cual agregué la restricción de que cada caja de 3x3 tuviese también que sumar 45. Cuando el programa corre.09 x 10^50 . pero tendrá que verificar también la suma de las cajas de 3x3. lo cual obviamente no tiene solución. lo cual es 362880. lo cual podría darle algo así como esto: 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 213456789 como puede verse. en la suma de sus columnas. Intenté ejecutar este programa en turbo prolog (agregando las secciones de domains. con resultados parecidos. la cual da: 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 Obviamente. pero para ello el programa habrá tenido que hacer un sinnúmero de permutaciones inválidas hasta hallar alguna adecuada. en total. ahora debo exigirle al software que los números que ponga en cada renglón. hará backtrack sobre la permutación de la octava línea. que dieran 45. dé también 45.E1. suma(A1. por lo que el sistema buscará todas las permutaciones. Mis cálculos estiman que el sistema tendría que hacer. alrededor de 1. no necesariamente todos diferentes. Intenté entonces en SwiProlog.F1. el sistema podría hallar la solución adecuada. la siguiente permutación de la última línea. Así. predicates. pero el sistema se quedó “pensando” y después de un largo rato me harté y cancelé la ejecución del mismo. pone la primera permutación de 9! para cada renglón. la de cada columna. pero la cantidad de cálculos que tiene que hacer parece que sobrepasa todas las expectativas. con todas las posibles soluciones.B1. en algún momento. esperaría. pero el sistema me marcó un error parecido a: “too many structures in a predicate error”. pero ninguna dará el resultado necesario. 45) fallará e intentará vía backtrack. ¿Qué está pasando? La realidad es que Prolog en teoría podría resolverlo en un tiempo finito.C1. Eventualmente encontrará permutaciones que cumplan con eso.D1.G1. la primera suma de nuevo no podrá hacerse. Cuando eso falle. de nuevo. para resolver el problema completamente.para que el sistema buscara todas las soluciones sin problemas. al pasar a hacer la primera suma.Ahora bien.I1. Por ejemplo. No obstante.H1. Con ello bastaría -pensaba. permutar 9 objetos diferentes implica 9!.

pdf http://www. no se sabe aún cuál es la cantidad mínima de números dados para que el sudoku tenga solución. Desafortunadamente las computadoras caseras no pueden resolverlo por falta de recursos.ac. indican que han revisado la cantidad de posibles sudokus: 5.geometer.iteraciones. De acuerdo a un artículo de Tom Davis2.730. http://www.afjarvis. el programa presentado crea todos los posibles sudokus que pueden generarse. es decir. lo cual resulta una cantidad inmanejable para la computadora casera.staff. aunque hay ejemplos que parecen indicar que 17 números es el mínimo indispensable. 3 2 .472.uk/sudoku/ 4 Una version de 4x4 la resuelve de manera fácil cualquier implementación de Prolog. probablemente en particular en lo que se refiere a memoria y a implementación del lenguaje usado4.org/mathcircles/sudoku. El código que escribí en Prolog es sin duda la aproximación más purista en este lenguaje para resolver el problema de generar pasatiempos como el sudoku. Estrictamente hablando. 24 permutaciones y esto es manejable sin duda por los intérpretes y compiladores de Prolog actuales.shef. Hallo además que un par de matemáticos del Reino Unido y Alemania3.538 ¡El número de posibles sudokus es verdaderamente inmenso! (más de cinco mil millones). La razón es que con 4 números tenemos solamente 4!.

x y la tecnología truetype.Ajedrez Creador de diagramas de ajedrez Cuando tuve en mis manos un primer libro de ajedrez quedé fascinado. así como los gases llenan completamente el envase que los contiene. cuando no había computadoras. Ahora solamente había que hacer la sustitución de cada pieza en cada casilla por su equivalente en el tipo de letra que usáramos. las cuales se colocaban simplemente desprendiéndolas de la hoja de acetato en las que venían. y por si fuera poco. Con el tiempo la bibliografía ajedrecística que llegaba a mis manos empezó a llenar todo estante disponible. Por ejemplo. con sus correspondientes hojas impresas con diagramas vacíos para así uno poder poner las posiciones que uno quería inmortalizar en un diagrama. Los paquetes como PageMaker o incluso el mismo Word para Windows se convirtieron en algo cotidiano. Los análisis en minúsculas (recuérdese que en ese entonces la notación descriptiva era de uso común). ahora con las verdaderamente económicas impresoras láser. Mi sorpresa fue en aumento cuando descubrí muchos más libros desde los más elementales a los más específicos de una variante de apertura. Mis artículos para el club local estaban escritos con una poderosa máquina de escribir eléctrica y para distinguir los análisis de las jugadas (en las partidas que comentaba de vez en cuando). Internet o estos artilugios que en definitiva han cambiado para siempre la manera de ver. Claro está que la calidad era muy pobre. el boletín del Pomona eran un par de cuartillas impreso en mimeógrafo. Más adelante salieron planillas de el equivalente al letraset (pequeñas calcomanías con las figuritas de las piezas). siempre puede ser una labor tediosa. pero era una alternativa. Eso daba mayor calidad pero sin duda era un trabajo un poco ingrato pero era la mejor solución. sin embargo. Estamos hablando de ya algunos años. seguí la idea que se utilizaba en una revista de ajedrez por correspondencia: las jugadas de la partida en cuestión en mayúsculas. Una vez más los resquicios de los estantes se llenaron entonces de cuanta publicación aparecía sobre el juego ciencia. que el Maestro Internacional (MI) Willy de Winter editaba en el desaparecido Club Pomona de la ciudad de México. estudiar y gozar de este fantástico juego de mesa. Al aparecer las computadoras la tipografía computarizada. Con el tiempo aparecieron algunas posibilidades. Por una parte me sorprendía que alguien escribiera de este tema. Pasaron algunos años y con la llegada de Windows 3. Esto. Además. se convirtió en algo común y corriente. Pero entonces enfrenté un problema común a todos los que escribimos alguna vez de ajedrez: no podíamos poner diagramas de las posiciones más interesantes porque simplemente no existían las herramientas para precisamente hacer esto. . la federación norteamericana vendía una serie de sellos con los figurines acostumbrados en los diagramas y los vendía. se crearon finalmente tipos de letra que eran precisamente los figurines usados en los diagramas de ajedrez. Actualmente cualquier equipo de cómputo puede hacer tanto o más que ciertas imprentas viejas. no sólo la de ajedrez. No tardaron en caerme revistas especializadas y obviamente éstas se encontraban llenas de información fresca. Con el tiempo más de una vez quise escribir algún articulillo de ajedrez y así empecé a hacerlo en el boletín “El Caballo egro”. convirtieron en casi a cualquier escritor en su propio editor. La calidad de salida.

como los que pueden encontrarse en ChessBase. El sistema ahora guardaba las imágenes como BMP. se me ocurrió escribir un programa que generara diagramas para poder entonces hacer publicaciones de buena calidad. yo trabajo en 1024x768 pixeles de resolución. Cuando tuve dicha herramienta visual decidí entonces transportar mi software a Windows. Esto no tiene compostura inmediata pero se trabaja en ello. Pero llega Borland con una herramienta formidable: Delphi. Pero como todo programa terminado se vuelve obsoleto. en unos días tuve una primera versión funcionando. etc. se aclara). sólidas. debido a que mucha gente tiene páginas dentro de Internet. que Microsoft daba a los programadores. Aunque la tarea no fue tan simple como pensaba (el manejo de gráficos cambia en la interfaz Windows). Se pueden generar aplicaciones poderosas. Programar para Windows siempre estaba vetado a todo aquel que no quisiese usar el API (Application Program Interface). . y el software funcionaba (y aún corre) en MsDOS. Igualmente. Por ejemplo. en tiempos récord. usando las imágenes GIF que existen en ChessBase (de dominio público. hace unos días intenté hacer una revisión del software. Por supuesto que hay detalles que agregar y mejorar. Chess Assistant. Con el tiempo y gracias a las necesidades del MI Guil Russek. Otras resoluciones de vídeo hacen que no se vea correctamente las ventanas o que éstas haya que cambiarles el tamaño. Igualmente Russek sugirió salvar en formato JPEG (y ya en esta versión esto se ha implantado). y más adelante se le dio soporte a los del Sr.Imagen 1 La ventana principal de WinZug para Windows Así. un estupendo diseñador de este tipo de letras que tenemos en nuestro país. le agregué la posibilidad de crear diagramas para la WWW. En primera instancia los diagramas se salvaban como imágenes PCX (un formato que ha caído en desuso con la llegada de la tecnología JPEG). la cual hace de la programación en Windows un paseo por el campo. Marroquín. Hallé que la parte de salvar a BMP no funcionaba correctamente y la cambié. se incorporó al software la generación de diagramas usando los tipos de letra truetype específicos para ajedrez.

Imagen 1 Garry Kasparov. escribí un protector de pantalla. Kasparov. ayudado por Fritz. en marzo del 2005. trabajo constante. de sus hazañas ante el tablero. Cada cinco movimientos aparece una foto (de 25) al azar. se me ocurrió que era un buen momento para hacerle un pequeño homenaje. quizás el mejor jugador del planeta Me queda claro que independientemente de si juega o no. Su estilo violento y su profundo trabajo de análisis teórico. más DVDs con sus clases. le dio dividendos y demostró un nivel de profundidad extraordinario. en donde se coronó campeón nueve veces). que compitió y ganó prácticamente las justas más importantes en el mundo (y además. y aunque se retira de las competencias. Su carrera ajedrecística fue notable en todos sentidos. que reproduce algunas de las partidas más notables del ruso. Y yo. Kasparov se mantuvo como el mejor del rating mundial los 20 años pasados. Kaspárov es uno de esos héroes del tablero. al despedirse del escenario competitivo. Sin duda que Kasparov es ejemplo de tenacidad. amor incondicional y obsesión por el ajedrez. Shredder. un screensaver. Para hacerlo más interesante aún. con el Cannon de Pachelbel de fondo. como por ejemplo en Linares. deje de usar la computadora por un tiempo razonable. me ha dejado –como a muchos– ciertamente consternado. más de una vez. más ajedrez. Sin duda la decisión del azerbayano debe haberla meditado profundamente y como las jugadas de ajedrez.Ajedrez Protector de pantalla en honor de Kasparov El retiro del mejor jugador del mundo. De esta manera. todos estos ingenios cibernéticos. no parece que se retira del ajedrez mismo. Como campeón del mundo fue un jugador activo. . cuando Ud. tiene su consecuencia. lucha. Yo sé que veremos más libros de él. hallé en la red algunas fotos de nuestro héroe y las incorporé. La razón es que en alguna medida Garry. nos ha privado de futuras actuaciones y de otras magníficas producciones en el tablero que ya no veremos. ahora podrá ver cuatro partidas de Garry Kaspárov. Junior. un icono mundial que tendrá siempre admiradores. sino desde un ambiente más pacífico pero igual de importante. Así. como admirador de su gran nivel de juego. en lugar de que se ejecute alguna simpática animación. aunque ya no desde la trinchera de los torneos.

De hecho. El sistema se instala en el directorio ‘system’ de Windows.Imagen 2 Kasparov con “el patriarca”. Quizás el hecho de observarlas cotidianamente le ayude a memorizarlas o tal vez. . que es donde residen los protectores de pantalla y lo único que tiene que hacer el usuario es dar de alta el protector de pantalla de Kaspárov para que pueda usarlo. el excampeón mundial Mijail Botvinnik Cambiando el archivo ‘game. este protector de pantalla podría servir incluso para estudiar. Puede –quien así esté interesado– en alimentar dicho archivo con partidas de su variante favorita y verlas reproducirse en su pantalla. en algún momento recuerde esa posición en alguna partida suya y pueda aplicar esos conocimientos que su computadora le mostraba al reproducir las partidas de Kasparov. Nótese que este archivo contiene unos comandos muy simples que permiten mover las piezas en el tablero. desplegar los nombres de los jugadores y el resultado final del encuentro.txt’ es posible incorporar otras partidas.

de forma muy eficiente. Aparentemente nuestros cerebros han asimilado una serie de patrones. Esto es porque no leemos cada letra por sí misma. pues nos hemos equivocado. no importa las veces que lo revisemos en la pantalla de la computadora. De ser cierta esta idea. encontraríamos una explicación a ese misterioso fenómeno de los errores en un texto que escribimos. en lugar de leerla y armarla letra por letra. los jugadores fuertes saben . snio la pbarlaa cmoo un tdoo. no importa el orden en el que las letras están escritas. El resto pueden estar totalmente mal y aún podrás leerlo sin problemas. Es decir. lo cual parece serlo. los cuales no son otras cosas que las palabras. de manera que al ver una palabra. he aquí la “traducción” al español perfectamente correcto: Según un estudio de una universidad inglesa. pero sin duda. la única cosa importante es que la primera y última letra estén escritas en la posición correcta.Ajedrez El Secreto de los Grandes Maestros Recientemente me llegó un correo electrónico que decía lo siguiente: Sgeún un eiudsto de una uinsrvdiead iglensa. Personalmente me parece increíble. lo que estamos haciendo es simplemente buscar en nuestro acervo de palabras para ver si está y la reconocemos. en muchos sentidos. La curiosa frase recibida en mi buzón da un dato fundamental: el cerebro es una máquina de procesamiento de patrones. y que solamente encontramos después de haberlo impreso. no iomtpra el odern en el que las lerats eátsn ectasirs. Peonmrestalne me pacere ilnírebce. Imagen 1 El software en acción Así. si creíamos que leemos letra por letra un texto. la úcina csoa inrmptoate es que la prirmea y úlimta lreta eétsn esracits en la poóicisn ccrertoa. Lo simpático del asunto es que tiene la clave para jugar mejor al ajedrez y que en cierta medida revela lo que los grandes maestros hacen al jugar. Aunque probablemente la mayoría de los lectores puedan entender el párrafo en cuestión. sino la palabra como un todo. El resto peduen eastr ttmeatolne mal y aún párdos lelreo sin poamblers. Etso es pruoqe no leeoms cdaa ltrea por sí mmsia. Así entonces. Es regla general que cuando se imprima el documento encontremos errores que nunca vimos. las cuales se codifican y se guardan de manera misteriosa.

dado un texto escrito con esta técnica de poner al azar las letras de cada palabra (a excepción de la primera y última letra. gracias al contexto. que nos darán una ventaja enorme sobre aquel que no haya hecho este trabajo. De esta manera el cerebro va adquiriendo estos patrones arquetípicos que muestran cómo se deben manejar cierto tipo de posiciones. disciplina y trabajo constante). los finales más comunes. producto probable de estudiar sistemáticamente nuestro juego. Por eso. dedicación. sino de otros géneros de posiciones. Sin embargo. un trabajo constante en el desarrollo de la habilidad táctica. (iv) Si usted hace eso (lo cual requiere tiempo. el ejercicio de programación funcionaba bien. entre otras cosas. y lo incorporé al programa.qué jugada hacer prácticamente desde el momento que ven una posición. imaginemos que encontramos la siguiente palabra: “Sirhdcogeenr” Probablemente no pueda usted saber de qué palabra se trata. puede reconocer lo que está escrito. tiene una certeza sobre la manera de evaluar correctamente una posición. sino que tiene un acervo de palabras. ¿se podrá hacer un programa que lo pase a un formato legible? Ahí encontré. Sin duda el jugador fuerte. desde los de peones hasta los de torres. Para ser más claro. Al principio. desde luego. el gran maestro. utilicé un intercambio simple de letras. Pero bajo el esquema de lo que estamos considerando. analizando lo que otros han jugado en esa posición (por eso las bases de partidas son fundamentales para todo aquel que quiera mejorar su juego). conocer los elementos básicos. me parece. entonces no habrá quien lo detenga en el camino a la maestría ajedrecística. Es decir. la segunda con la tercera. y además. incluso en las aperturas. es importantísimo estudiar ajedrez. pensé que la labor inversa debía ser interesante de programar. la cuarta con la quinta. repito). por cuestiones de simplicidad. un jugador talentoso encontrará quizás las jugadas correctas analizando meticulosamente la posición. puesto que no hay contexto. conocimiento de las partidas modelo más importantes de la historia del ajedrez. como por ejemplo. la cual se traduce en precisamente en analizar patrones de combinaciones típicas. Quienes no estudian y creen que pueden resolver todo en la partida viva. el cual es enorme. Desde luego que no todo son patrones. Cuando se les pregunta cómo es que encontraron prácticamente a vuelo de pájaro la mejor jugada. que todo jugador debe entender para tener una visión histórica y práctica de cómo se atacan cierto tipo particular de posiciones y. si no totalmente al menos en parte. Eso se adquiere a través de varias actividades: (i) (ii) (iii) ver muchas posiciones parecidas. aquí hay cientos de encuentros memorables. Postscriptum Hace ya relativamente cierto tiempo escribí sobre esto. pues se equivocan. Pero he aquí que en un curso de reconocimiento de patrones. que el hecho de que podamos leer textos así escritos no significa simplemente que el cerebro reconoce la palabra que creemos que es. A partir de esta idea me di a la tarea de escribir un programa que hiciese este intercambio de letras. es mucho más probable que este “olfato” no sea más que una colección de patrones ajedrecísticos. podría ahorrarse un valiosísimo tiempo de reflexión si conociera de antemano ciertos patrones. Más adelante puse un algoritmo más sofisticado que hace este intercambio de letras (recuérdese siempre dejar la primera y última letra de cada palabra igual). Es cierto que sí. y no sólo de estructuras de mate. etc. Pero ahora veamos esta frase completa: “Sirhdcogeenr fue uno de los más eairrtoarxnoids fiocíss de la mcáienca cnáituca” . Y así lo dejé. responden con un mohín moviendo la nariz en señal de es una especie de olfato. de posiciones típicas.

al ver una palabra. “y”. “no”. ¿Se podrá hacer una rutina que lea un texto mal formado y lo ponga correctamente? Imagen 2 El programa con la opción de reconocimiento “inteligente” Para que esto sea posible. el sistema pueda buscar en dicho archivo y hallar la que corresponde. Curiosamente la búsqueda no es en ningún sentido algo común. Para cualquier físico será relativamente fácil y podrá leer: “Schroedinger fue uno de los más extraordinarios físicos de la mecánica cuántica” Dicho en otras palabras. Esto en el fondo es un tema de la inteligencia artificial. el mecanismo que usa el cerebro para entender un texto desarticulado con la técnica mencionada se puede volver a su sentido original si se cumplen dos factores: • • el lector tiene un buen conocimiento del lenguaje el lector tiene un conocimiento del mundo exterior o de temas particulares que le facilitan el entendimiento de pasajes así escritos. Aquí tenemos que buscar con los siguientes criterios: 1. “las”. tenemos que alimentar al programa con una base de datos de palabras (nuestro conocimiento del lenguaje). La palabra a buscar debe ser mayor de tres letras (no hay cambio en “uno”. por ejemplo) . para que así. “si”. como lo que se hace frecuentemente.probablemente nos cueste trabajo si jamás nos hemos ocupado de la física y mecánica cuántica.

La razón es que tiene que analizar prácticamente las casi 500 mil palabras. • • . Obviamente hay que buscar otra solución. porque si tengo 7 letras. La palabra a buscar debe contener las mismas letras que la palabra original. La razón de esto es que en el formato original del mismo los autores (para un proyecto de corrección ortográfica en Linux). 3.2. Cuando se le pide al programa que convierta un texto mal formado a uno correctamente escrito. Cuando el programa no encuentra una palabra. hallé que: • • Tuve que poner todas las palabras en minúsculas. pero encontré que es una mala idea. pues mi diccionario de palabras está todo en minúsculas El diccionario consta de casi 500. pensé que lo más fácil sería sacar todas las permutaciones de estas letras y ver si se cumplían dentro de la palabra elegida en cada búsqueda. Como eso complicaba la búsqueda de las palabras en mi aplicación se los quité en esta primera versión. derivaciones de las palabras. El algoritmo lo agregué al programa original y podría decir que de alguna manera busca tener un sistema con visos de inteligencia. Supongamos que buscamos la siguiente palabra: “dnrtmvaescutiete” (destructivamente) De cada palabra que debo buscar en mi diccionario. En el punto 3 surge un problema. hay que calcular 14!. la marco en MAYÚSCULAS para que se vea el cambio de manera notable. pues una búsqueda binaria simplemente en este caso no se puede hacer. debo saber que están todas las palabras de la palabra original sobre la que busco. Así me aseguro que ambas palabras (la que elegí como candidata y la original). Al final de cuentas lo que se me ocurrió es crear una tabla de frecuencias para la palabra que busco y las opciones que tengo. en este caso el subconjunto 'nrtmvaescutiet'.. etc. tengan las mismas letras dentro de la primera y última que no cambian. En el caso del ejemplo. pero no tienen acentos y eñes. pusieron caracteres especiales para señalar acentos. además de la longitud en caracteres de la misma. la primera y última letra de la palabra a buscra debe coincidir con la primera y última letra. El programa tarda en relativamente en procesar el texto mal formado. Al principio. hay que calcular 7! permutaciones..000 palabras.

subir su rating cada vez más. la cual se convertiría más tarde en la USCF (United States Chess Federation). Elo desarrolló una serie de fórmulas para calcular lo bien que un jugador se desarrolla en las competiciones ajedrecísticas. cada jugador tiene un 50% de ganar la partida. Esta dupla se mantuvo como primero y segundo sitio mundial por alrededor de diez años. la cual rige para los torneos en todo el mundo. . sino a que además. dinero a los jugadores por el simple hecho de participar. La otra mujer mejor clasificada era All Kouchnir. el cual la USCF adoptó en 1960 y hasta 1970 por la FIDE. Marshall. en 1970. se sabe en los círculos ajedrecistas que el empate entre dos jugadores no significa la nulidad. Elo fue nueve veces campeón o co-campeón de Wisconsin. mientras que el más fuerte. porque para los profesionales. una tabla de probabilidad de victoria en función de la diferencia de puntos Elo entre los jugadores. muchas veces. Elo pasó al salón de la fama del ajedrez norteamericano en 1988 y murió en 1992. Desde luego que el aumento de participantes en los torneos no se debió exclusivamente a la existencia de una lista de rating internacional. En ese entonces. cosecha un mal resultado. todos se preocupan por mantenerse e incluso. clasifica a sus jugadores de acuerdo a su fuerza ajedrecística. La diferencia de clasificación Elo (o rating) sirve para establecer los méritos de cada uno de ellos. Tan buena fue su idea que al incorporar el rating. La primera lista oficial de rating fue publicada por la FIDE (Federación Internacional de Ajedrez. ser uno de los jugadores más fuertes del planeta implica ser invitado a participar en torneos magistrales. Nona Gaprindashvili. las dos mejores de lo que ahora es la ExUnión Soviética. Siegbert Tarrasch y Frank J. En 1997 dicho listado contemplaba a 18555 ajedrecistas activos. a Emmanuel Lásker. en donde hay jugosos premios y. a partir de los resultados de 210 jugadores de alto calibre ajedrecístico en partidas disputadas en los años 1968 y 1969. de hecho. Siendo matemático. Pongamos un par de ejemplos: si la diferencia de ratings entre dos jugadores es de cero a 3 puntos. La FIDE publica cada tres meses la lista de rating oficial. que ya para ese entonces era la campeona mundial y a la postre lograría la obtención del título de GM pero entre los hombres. Por ejemplo. En 1959 Elo decidió trabajar sobre un sistema de clasificación de los jugadores. José Raúl Capablanca. El ajedrez ha crecido desde el año 1970 de manera notable. que los nuevos resultados en los torneos son calculados a partir del 70 y en 1972 se establece también el rating femenino. la lista de rating de la FIDE de 1980 contenía a 3103 jugadores pero en 1990 la lista ya era de 9186 ajedrecistas. Para quienes jueguen al ajedrez. Alexander Alekhine. Cabe recordar que los primeros cinco grandes maestros de la historia nacieron en el torneo de Petrogrado. la Federación Internacional de Ajedrez logró un esquema que permitía validar los resultados de los jugadores para así otorgarles los títulos de maestro FIDE (MF) maestro internacional (MI) y gran maestro (GM). Los jugadores de ajedrez toman muy en cuenta este número. el nombre Arpad Elo les será familiar. su rating. Un incremento que cualquiera observará como notable. Pero ¿cómo se calcula el rating? ¿a quién se le ocurrió una fórmula que pueda representar en un número la habilidad ajedrecística de un jugador? Arpad Elo. Tiene tanto éxito este sistema. Dicha fuerza se representa por un número que va desde los 1000 puntos (muy débil) hasta no más de 3000 aproximadamente (extraordinariamente fuerte. nadie ha llegado a esta cifra nunca). Así. basándose en la estadística elemental (ley normal de Poisson). Eso sin duda motivó la participación de muchos jugadores. Fue profesor de física y astronomía de 1935 a 1965 en la Universidad Marquette.Ajedrez Calculadora de rating Elo La Federación Internacional de Ajedrez (FIDE). Es decir. si es posible. En términos de rating puede significar más puntos para el jugador más débil y esa misma cantidad de puntos menos para el jugador más fuerte. De 1935 a 1937 fungió Elo como administrador de la Federación Americana de Ajedrez. nacido en 1903 y emigrado a los EEUU a la edad de 10 años. en donde el Zar concedió el título máximo (sin contar el título de campeón mundial). Arpad Elo estableció. por el hecho de no imponerse. por sus siglas en francés). en donde solamente hay 112 jugadoras. el más débil consigue un buen resultado si arranca unas tablas . muchos torneos pudieron significar las aspiraciones de títulos deportivos a los jugadores que lograran los primeros lugares. un matemático húngaro. Pero regresando al asunto del rating.

En cambio.about. pero se basa en una teoría puramente estadística. Pero obviamente aquí no pretendemos dar un curso de álgebra para poder usar estas ecuaciones y encontrar el rating de un jugador. El sistema de rating puede parecer misterioso.com/library/weekly/aa03a25. los ratings de sus adversarios). De la tabla de diferencia de ratings (copiada de http://chess. Así. de acuerdo a esta diferencia de rating entre los jugadores. el jugador más fuerte tiene 64% de obtener la victoria contra un 36% del jugador débil de alzarse con el triunfo. Obviamente. Hoy día hay manera de otorgar un rating provisional a un jugador (a partir de una fórmula modificada de las originales del Profesor Elo). desde luego. Una diferencia de 268 a 278 hace que el jugador fuerte tenga a su favor un 83% de ganar. el jugador fuerte debiese ganar al menos 8 partidas de 10 jugadas. el cálculo de los jugadores se hacía a través de unas fórmulas por demás simples. dos jugadores que tienen el mismo rating tienen la misma oportunidad de ganar una partida de ajedrez (50%). Establecidos estos valores (compilados en una tabla de probabilidad que confeccionó Elo mismo). que la misma diferencia de rating entre dos jugadores implica la misma chance de triunfo. es decir. Esto puede extenderse. le quitará a su rival una cantidad de puntos. al rating promedio de un torneo. sin embargo. La diferencia es en ambos casos de 200 puntos.htm) Tabla 1 Tabla de esperanza contra diferencias de rating Podemos ver que un jugador que le saque 253 puntos a su contrario equivale a que tiene un 82% de posibilidades de triunfo. un jugador de 2400 puntos Elo que juega contra un jugador de 2200 puntos tiene la misma chance de ganar que un jugador de 1400 puntos que enfrenta a uno de 1200 puntos. de acuerdo con sus restantes actuaciones. el cual a partir de esta primera clasificación. el software a escribir en esta ocasión es una calculadora Elo. cuando la diferencia es de más de 267 puntos. En lugar de esto. . contra 17% de que su rival le gane. Elo así describió una tabla que muestra la probabilidad de un jugador de ganar una partida. empezará a moverlo (hacia arriba o hacia abajo). si la diferencia es de 99 a 106 puntos. Dicho de otra manera. que permite al ajedrecista calcular cuánto sube o baja su puntuación después de jugar un torneo en particular (conociendo. si el jugador de menor nivel gana. desde luego. Menos obvio es.

5 puntos. La tabla de Elo es curiosa: Gráfica 1 Puede verse que no es una función estrictamente lineal. Así. si gana el jugador más débil en este hipotético caso.8 puntos. Da la impresión que Elo quiso darle peso a las grandes diferencias de rating de manera que no sea tan brusco el cambio de puntuación en esta situación. Este valor entonces ya no se modifica más. En cambio. 25 si es su primer cálculo de rating hasta completar 30 partidas.basada en una constante K. 10 para jugadores con más de 2400 puntos Elo. si gana el favorito. 15 mientras el jugador no llegue a 2400 puntos Elo. No me meteré mucho en este punto porque creo que el matemático Jeff Sonas sabe mucho más de esto y está mejor calificado para discutir estos aspectos de la fórmula de Elo (ver chessmetrics. aunque en gran parte de la misma se mantiene como si así lo fuera. le quitará al perdedor solamente 2.com). ganará 12. de acuerdo a la fórmula Elo. Imagen 1 Calculadora Elo .

me hice mi propia calculadora de rating para la PC y además le agregué el cálculo del desempeño. me senté un par de días y como mero ejercicio académico.Una vez entendida la tabla y los fundamentos de la fórmula del rating. .

de la que se habla poco y quizá con razón. cuando se hace una demostración pública de alguien jugando una partida de ajedrez con los ojos vendados. por decir lo menos. porque bien sabemos que pieza tocada es pieza jugada. Por ejemplo. es decir. sin ver el tablero. 20. concursos de problemas y estudios en ajedrez. Es tan interesante esta forma de ajedrez que incluso hay grandes maestros de la composición ajedrecística. otra modalidad de ajedrez. donde las ideas más sorprendentes. Esto. los maestros –gracias a su experiencia en el tablero– logran la mayoría de los triunfos. en general. ¿qué beneficios/perjuicios se pueden tener por esta actividad? Imagen 1 Pantalla inicial del software de entrenamiento de ajedrez a la ciega Para quienes jueguen competitivamente al ajedrez. Se trata de jugar el ajedrez a la ciega. por ejemplo. Algunas son más recreativas que el ajedrez competitivo. entonces el jugar ajedrez apelando solamente a la imaginación de dónde están las piezas. Aquí. los aficionados intentan vencer al maestro de ajedrez. Hay. cobran vida en el tablero. quien juega “de memoria”. Por ejemplo. sin embargo. y esa regla es absoluta y sin excepciones. juega al mismo tiempo contra 10. debe acordarse dónde están las piezas propias y rivales en cada momento. donde los jugadores buscan.Ajedrez Ajedrez a la ciega Existen muchas modalidades de ajedrez. Hay que considerar que si el tablero de ajedrez contiene 32 piezas y 64 casillas. También existen modalidades artísticas. vencer al rival. las simultáneas de ajedrez. no nos resta más que admirarlo. donde un avezado jugador (normalmente un maestro). sin tener a la vista un tablero con sus piezas. por todos los medios. puede considerarse una labor muy compleja. más sutiles. pues una partida de ajedrez es un evento dinámico que dura unas cuantas horas. Así. es evidente que el poder jugar a la ciega. Kasparián o Kubbel. Esta es la pregunta que surge: ¿es posible aprender a jugar a la ciega? Y si esto es así. Por ello. dicen los psicólogos. y en ocasiones un par de jugadores lo logran aunque. tendríamos una ventaja sobre muchos de . Si consideramos que hay estudios que indican que las personas comunes y corrientes pueden recordar hasta siete datos de una sola vez (es por ello que no es fácil recordar a la primera oportunidad un número de teléfono). si tuviéramos la capacidad de ver cómo quedará el tablero sin mover las piezas en el mismo. son dos de los compositores de problemas de ajedrez más importantes que haya tenido jamás el juego ciencia. al menos limitadamente. 30 ó 40 competidores. nos permite “mover” las piezas en la cabeza sin moverlas en el tablero. se hace en la memoria de corto plazo.

la mayoría no logra poder calcular todas las posibles posiciones que pueden darse en una partida de ajedrez. Poco a poco. perdiendo dos. con práctica. el gran maestro polaco-argentino. aunque para ello se requiere de paciencia y trabajo cotidiano. pues su cerebro mostraba cada partida como una película en cámara lenta. ganando 39 y empatando 4. trabajo constante. simultáneamente. aunque no sé de muchas experiencias que demuestren esto (aunque acabo de recibir un correo electrónico de Javier González Solabarría. al finalizar unas simultáneas con ocho adversarios. que después de ello. pero no con afán de hacer ningún espectáculo de circo. Una hazaña que le llevó más de 20 horas y. El software en esta ocasión permite practicar el juego a la ciega. Mi récord es de hace dos años donde jugué con nueve oponentes de diversas categorías. Aquí no se trata de simular esas hazañas como la del “viejo” Najdorf. De hecho. pero sí profundizar a un nivel en donde se puede tomar la decisión si una jugada es correcta o no. Najdorf aseveraría más adelante que “una locura como esa no la vuelvo a repetir”. Verá con el tiempo diferencias al respecto de cuán lejos podía ver en unas variantes antes de trabajar con el software y después. los ajedrecistas dedicados logran empezar a ser eficientes en este cálculo mental de jugadas. Imagen 2 El software en su ventana principal La habilidad del cálculo a la ciega es algo que todo jugador debe saber realizar. Hace tres años. puede aprenderse. Obviamente. quien pudo jugar hasta 45 partidas a la ciega. Como una habilidad más. que me dice: “soy un jugador de categoría preferente y desde hace años practico simultáneas de ajedrez a la ciega. los jugadores de la escuela rusa prohíben el espectáculo de las partidas a la ciega por considerarlo dañino a la salud. . me puse malo y conseguí a duras penas llegar a casa”). estudio de muchas posiciones sin mover las piezas. el ajedrecista no durmió las siguientes 48 horas.nuestros adversarios. Úselo para desarrollar su capacidad de análisis en ajedrez. sin lugar a dudas. Esta práctica de visualizar el tablero se hace frecuente en la medida que uno compite en torneos.

5 Hasta donde sé. De la noción al razonamiento conceptual y luego a la aplicación a una situación específica y única. a un concepto. Utilizaban unos sellos para imprimir diagramas y piezas para poner una posición en una tarjeta y ya sea a mano como con máquina de escribir se hacían las anotaciones correspondientes. caso aislado. recomendando el uso de las famosas “libretas de tres argollas” que es común utilizar en las escuelas. Repetición una y otra vez era el lema de los entrenadores soviéticos. El más afamado entrenador ruso. Ed. como fueron la gran mayoría de los de la existencia de la URSS. Personalmente en los años 1980 a 1990 escribí varios artículos al respecto. Batsford. en un artículo publicado por la revista rusa “64” en su número 7 de 2003. Pero el caso del tarjetero es para facilitar el repasar una y otra vez las mismas posiciones. a repraissal”. vivirlas. Para luego aplicar esas ideas y esquemas en posiciones similares pero nuevas. El uso de tarjeteros o cuadernos para recolectar posiciones y variantes era un estándar entre los entrenadores del siglo XX. en donde dice lo siguiente: “Uno de los métodos de estudio más preconizados por la escuela soviética de ajedrez era el uso de ‘tarjeteros’. uno de los mejores entrenadores soviéticos. o incluso más de ello. De la misma manera que un tarjetero con temas de cualquier disciplina académica. una posición fundamental de una variante o sistema de apertura. Pasar de la noción. como revisando un paquete de naipes. Un método muy recomendado por pedagogos de cualquier área. agrupación de casos que están unidos por un patrón. En los años anteriores a la informática. sino un largo artículo del viejo maestro danés. el GM Piotr Arsenievich Romanovsky. los entrenadores soviéticos laboriosamente elaboraban para sus pupilos estos tarjeteros. el jugador puede prepararse revisando una y otra vez las diferentes tarjetas del tarjetero. como una manera de aprenderlas al “dedillo” literalmente. El GM Aaron Nimzovich en su libro de “Cómo llegue a ser Gran Maestro5 “ escrito en la década de 1920. que aparece transcrito en el libro de Raymond Keene: “Aron imzowitsch. en muchos artículos menciona su famoso tarjetero con su colección de posiciones interesantes. sobre la informática aplicada al ajedrez. sentirlas. hasta aprender esas posiciones básicas y las ideas contenidas. La idea es poner en una tarjeta una porción de conocimiento.Ajedrez Tarjetero electrónico de posiciones de ajedrez Leo un artículo del MI Raúl Ocampo. el MI Mark Dvoretsky. como puede ser una posición básica (de las míticas 300 posiciones). Ejemplos de esta manera de trabajar nos lo relata la GM Kira Zvorkyna al comentar el apoyo que como entrenador le dio en los años 1950s. refiere que mando a un encuadernador insertar una hoja en blanco entre cada hoja impresa de un libro sobre un torneo de maestros para poner sus propios comentarios a cada partida. o de alguna posición con una idea especial. . no es un libro. perfectamente. La idea es poder intercalar hojas cuando es necesario” . para luego pasar de nuevo al caso concreto. Memorizarlas. De lo particular a lo general y luego de nuevo a lo particular. Teniéndolas en tarjetas. incluso para alterar el orden a placer.

se pueden tener este tipo de “tarjetas” electrónicas. Así. incluir un diagrama en cada tarjeta. ¿por qué no tener un software especializado para hacer este tipo de tarjetas ajedrecísticas?. aunque es claro que lo que hace el software alemán no es estrictamente esto.chessbase. Igualmente. como menciona Ocampo en su artículo. pues hubo que definir la base de datos. En alguna medida es cierto. Me llevó todo el sistema unos cinco días. debería poder imprimir las tarjetas y desde luego. Dada entonces esta motivación. que permita a los ajedrecistas hacer estos famosos tarjeteros. es decir. pues con Chessbase6. cuál es la información mínima que el sistema debe manejar. sino que además. De esta manera tendríamos esta vieja herramienta modernizada en las computadoras de hoy.com . llegué a la conclusión que no hay software en el mercado especializado que haga precisamente esto. es decir. Más de uno podrá decir que realmente ya no es necesario.Imagen 1 El logotipo del programa A partir esta idea. El programa debería no sólo poner texto. por ejemplo. me di a la tarea de escribir mi propia versión del tarjetero ajedrecístico. hacer búsquedas sobre los temas definidos en las mismas. 6 www.

si el manual de algún dispositivo viene en coreano. Y sí. es decir. ya tengo una versión beta. pude crear en “modo texto” los diagramas. entonces estará encantado. las piezas de ajedrez. ¿por qué en inglés? De acuerdo a la teoría de mi hermano Pedro. la cual denomine ChessCards.Imagen 2 Ventana principal de Chesscards Aprovechando que actualmente existen muchos tipos de letra que despliegan “ figurines”. al mexicano le encanta ser malinchista. Poco a poco el software fue tomando forma y en el momento de escribir esto. de manera que no ocupan tanto espacio en la base de datos con respecto a lo que usarían en caso de usar imágenes bmp o jpg. . ya sé. Vaya.

aunque quizás la principal sea que enfocamos incorrectamente el trabajo casero de aprendizaje. En el estudio del ajedrez muchas veces pasa lo mismo. consultamos bases de datos. el ajedrez ha cobrado cierta relevancia. es evidente que el estudio puede hacer maravillas y sustituir en cierta medida lo que la naturaleza se negó a darnos. Desafortunadamente esto tiene un costo: los programas más poderosos de ajedrez no son gratuitos. Hay de todo y para todos y quien saque provecho de todas estas nuevas herramientas seguramente podrá progresar incluso más rápido que hace apenas unos 10 años. hacemos ejercicios de táctica. Indudablemente son muchos los factores para llegar a jugar bien. por ejemplo. . Es claro que la mayoría de los jugadores tienen cierta capacidad. programas específicos de análisis de alguna variante en particular. la instrucción es autodidacta. participamos en torneos. En repetidas ocasiones he visto a compañeros ajedrecistas sentarse frente al computador para ver partidas de una variante específica. el ataque descubierto. sistemas que juegan al ajedrez con un promedio de 2600 de rating (que compiten ya al tú por tú con los campeones del mundo). Todo jugador. de la posibilidad de calcular largas variantes con precisión. Para ello. Ir a la escuela. este trabajo es una pérdida de tiempo. Los discos compactos con software especializado para estudiar líneas específicas de apertura o resolver ejercicios de diferente dificultad cuestan sus buenos pesos (traducidos. la cual quizás se vislumbró en la mayoría de los casos a tierna edad. Tenemos algunas decenas de libros con ejercicios de combinación. etc. Ponen la partida y la reproducen en el tablero electrónico en breves minutos. si quiere llegar a jugar medianamente bien. se me ocurrió que algo debía hacerse… Así pues. Es claro entonces que el aprender el arte de las combinaciones se basa en realizar muchos estudios al respecto. De eso ni hay duda alguna. Los ajedrecistas leemos muchos libros de ajedrez. a dólares). lo cual hace de todo este asunto del aprendizaje algo más difícil y complejo. etc. el ataque doble. Esto pasa por muchas razones. además. Al final se fastidian y se observa que sólo tratan de recordar algunas de las ideas que pudieron percibir en esa veintena de partidas vistas con celeridad. simplemente indica que no hay la suficiente motivación para que esa gente siga en la universidad. A la larga. claro está. decidí que era hora de escribir mi propio software de entrenamiento… Entrenamiento Táctico es una herramienta para estudiar ajedrez. Sin embargo. Una vez que hayamos resuelto cientos de estos ejercicios empezaremos a acumular estos patrones de ubicación de piezas además de las ideas tácticas como pueden ser la clavada. Así. las que causan más problemas al adversario. va aprendiendo con el estudio sistemático. precisamente. la cual se traduce en bases de datos con millones de partidas. que tenga un interés genuino por comprender lo que se está estudiando. sin ayuda de terceros. El estudio de cualquier tema exige que quien quiere aprender se involucre. pasan a la siguiente partida y hacen lo mismo. gracias a la computadora.Ajedrez ¿Qué tan bueno es su ajedrez? Jugar bien al ajedrez no es solamente cosa de tener facultades para el juego. Frecuentemente nuestros esfuerzos en el estudio no parecen reflejarse en los resultados de las competencias. Pero aún falta el elemento competitivo… ¿Cómo entrenar cuando uno participa en torneos? En este caso el Ajedrez solitario puede darnos la respuesta. En vista de eso. hay que encontrar las mejores. con el agravante de que en la mayoría de los casos. Mucho de este trabajo lo hacemos solos. no basta con ver jugadas. La información está a la orden del día. es claro que el jugador de ajedrez que lo desee puede subir de nivel si su constancia en el estudio es la adecuada y si puede jugar una serie de torneos para ir probando lo que. no es garantía de aprendizaje y el hecho de saber que existe un alto porcentaje de deserción escolar en la enseñanza media superior. tendrá que hacer muchos ejercicios de esta naturaleza. estudiamos incesantemente las aperturas y. Hoy día. empezando por un dominio de lo que se llama táctica. las que encierran amenazas más poderosas. en donde se repiten los patrones de las piezas en ubicación y poder.

probablemente. se conservan mucho más tiempo en nuestra memoria. How Good Is Your Chess? Leonard Barden. Es claro que este tipo de ejercicios deben hacerse simulando las condiciones de juego estrictamente. Una vez hecho esto. Al final del encuentro. Solitaire Chess. podría pensarse que no vamos a estar cuatro horas analizando una sola partida. aunque el título es exactamente el mismo). Desde luego. Ed. desde luego. tanto los clásicos como los modernos. algo tan personal como cuando jugamos un encuentro nosotros mismos y que ponemos todo el interés en dicho momento? Imaginemos que estudio un juego de alguien como. se hace la que hizo el maestro así como la respuesta del adversario y de nuevo estamos en el camino de buscar la siguiente jugada que hizo el ganador de la partida. porque sus partidas han sido analizadas hasta el hartazgo por muchos jugadores. poniéndose un tiempo razonable para el análisis personal. Ed. Considérese también que cuando uno participa en un torneo. por parte del estudiante. con el tablero enfrente e incluso. es evidente que no todas las partidas merecen un análisis exhaustivo por parte del estudiante. Daniel King. Así. Al principio. por ejemplo. las jugadas que uno hace estén alejadas de las que el maestro ha realizado. no necesariamente tiene que serlo así. Sin embargo. La retroalimentación que significa una calificación positiva en las jugadas que uno hace resultan en un afán más serio. gana. es común en las revistas especializadas. por ejemplo. y ya sabemos que las partidas con buenos comentarios siempre serán mejor que cientos de partidas en bloque sin ninguna nota. primero. es decir. Curiosamente no parece haberse comprendido el gran valor didáctico que puede ofrecer al estudiante dicho esquema. De hecho estoy convencido que es preferible analizar una sola partida usando un par de horas. Hay sin embargo muchos modelos de estrategia que vale la pena estudiar con detalle. de hecho. pero la respuesta es afirmativa y el mecanismo se llama ajedrez solitario. para hallar la jugada que sigue. con la parte emocional. cuando uno ve la posibilidad de un remate brillante y el corazón empieza a palpitar más fuerte.A. en seleccionar una buena colección de partidas. desde luego. el excampeón mundial Boris Spassky y quiero que esa experiencia ajena a mí entre dicho personaje y otro gran maestro pase a mi acervo de manera tal que se quede en mi memoria como si fuese una partida que yo hubiese jugado. Ahora bien. Siempre. En otras palabras. 7 . el método consiste en que el estudiante se imagine jugando hombro con hombro con el maestro que ganó la partida. en buena medida. I. empata o pierda. ¿Qué debo hacer? ¿Se puede experimentar en cabeza ajena? Podrá sorprender al lector. Dover. La razón es que dichos encuentros fueron analizados por uno mismo a profundidad.Es fácil darse cuenta que una partida efectuada en cuatro horas no se puede comprender en todos sus aspectos si uno le dedica unos cuantos minutos. Ed. Sin embargo. (los dos libros son diferentes. es posible que el autor de los comentarios de dicho encuentro otorgue puntos por más de una jugada y no solamente por la jugada que hizo el maestro. de una partida de estudio algo propio. Si en algún momento no se predice la jugada correcta. Y a partir de estas reflexiones surge la pregunta: ¿cómo poder hacer. que viendo dos decenas a velocidad constante. normalmente el autor del ejercicio califica el desempeño del estudiante. Este esquema de estudio no es nuevo y. Existen algunos libros que siguen esta idea7 pero con un elemento que refuerza la enseñanza: el calificar cada jugada que hace el maestro. Cadogan. el recuerdo permanece porque nos involucramos en el problema. e intente entonces acertar a las jugadas que en dicho encuentro se produjeron. Es claro que hablamos de las partidas de los grandes maestros del tablero. La idea consiste. Libros como How Good Is Your Chess?. sin contar. Chess (Reino Unido). CornerStone Books o incluso revistas como Chess Life (EEUU) o Jaque (España). con práctica y un intenso esfuerzo por comprender lo que está ocurriendo en las partidas con este formato. si uno estudia un encuentro vía esta técnica del ajedrez solitario. Horowitz. esas partidas que uno juega. Lasker y Capablanca. Por ejemplo. parece preferible voltear hacia los viejos maestros como Alekhine. pues pareciera que eso es también perder el tiempo. nos puede hacer mejorar notablemente en nuestro ajedrez. en intentar ganar y así resolver la partida de ajedrez a nuestro favor. Muchas veces en una partida de ajedrez hay más de una buena jugada. Digamos entre una hora y noventa minutos para el estudio de una sola partida.

y entonces las comparaba con las del comentarista. el cual está en su primerísima versión (le faltarán cosas importantes. Imagen 1 Ventana principal del programa de entrenamiento táctico Por eso. cit. Al principio había una gran discrepancia a favor de este último. con el fin de analizar todas las posibles variantes. pero cuando se llegaba al punto crucial donde se encontraban dichas combinaciones y el mayor número de variantes posibles. De esta forma cualquiera que así lo desee puede generar sus propios libros de ejercicios. se transcribió el primer capítulo del librillo de táctica del MI Guil Russek (Para Ganar en Ajedrez. analizaba sin mover las piezas para hacerlo igual que en una partida de torneo”. por ejemplo). Selector). el estudiar posiciones de táctica. es factible crear sus propios “libros” electrónicos con posiciones específicas. pero luego aprendí cómo ampliar mi campo y a describir cada variante con considerable exactitud. algunas veces (especialmente en posiciones muy complejas). escribía las variantes que había examinado. Al mismo tiempo intentaba ponerme en el estado de ánimo que tenía cuando estaba sentado ante el tablero en la sala del torneo”. Ed. a los cuales puede incluso dotarlos de una calificación (de acuerdo a la dificultad del ejercicio. pág 16. Colocaba a un lado el libro o cubría la página con una hoja de papel y me ponía la tarea de pensar larga y profundamente. como suele pasar con los programas de computadora). aturalmente. y eso puede servir para ver cuánto progresa quien ejecuta los ejercicios en cuestión. La descripción del gran maestro ruso es notable.Kotov describe en su famoso libro8 la manera de entrenarse: “Seleccioné de libros de torneos las partidas en las que habían tenido lugar grandes complicaciones. Como ejemplo de lo que puede hacerse con este software. 8 Op. además de servir Entrenamiento Táctico para. . Luego las veía sobre el tablero. porque precisamente estos ejercicios de ajedrez solitario proveen todo esto que buscó Kotov en su momento para analizar y disciplinar su estudio. precisamente. Y continúa: “cuando había pasado entre media y una hora en este trabajo. El sistema se ha diseñado mediante un lenguaje de comandos los cuales se escriben en un archivo de texto (sin caracteres de control o tipos de letras especiales). dejaba de leer los comentarios.

la tediosa labor de transcripción fuese más sencilla. y además. no hay ciclos iteractivos. de manera que en alguna medida el ejercicio no sólo nos muestra una partida magistral. entre otras cuestiones. El sistema tiene instrucciones que permiten añadir puntos al ‘score’ de quien está haciendo la prueba de ajedrez solitario. se va reproduciendo el encuentro en el tablero electrónico. pues es un texto sin formato que contiene las instrucciones que el programa desplegador simplemente interpreta. Después de haber codificado cuatro o cinco partidas. como un guión que se ejecuta línea por línea y así entonces. por una parte se minimizaran los errores de dedo y por otro lado. La idea es entrenarse para la batalla. la cual está codificada en un sencillo lenguaje de script. Evidentemente el codificar la partida para que quede en el formato que el programa necesita se hace en un editor de textos como notepad. línea por línea. intentando encontrar las jugadas correctas de uno de los jugadores de una partida magistral (normalmente quien ganó). con la ventaja de poder añadir nuevas instrucciones cuando éstas se necesitan. empecé a fastidiarme en lo repetitivo del asunto y me pregunté si no habría una manera más simple de hacer esto. el cual es muy sencillo de programar. recibiendo puntos por jugada acertada. Imagen 1 Generador de scripts para ajedrez solitario . lo que tenemos es un intérprete de comandos de un sistema basado en guiones. para que así. Y más pronto que tarde me di cuenta que necesitaba un programa para editar las partidas.Ajedrez Editor de partidas de ajedrez solitario En el capítulo anterior hablamos de un programa que permite jugar una partida de Ajedrez Solitario. El programa del capítulo pasado sirve entonces para reproducir la partida de ajedrez solitario. es un archivo de instrucciones lineal. Sin embargo. Así entonces. sino que además nos da el estímulo de retroalimentación positiva cuando acertamos las jugadas. es decir. es decir. por simplicidad y porque el sistema de ajedrez de esta naturaleza no lo necesita. que se lleva a cabo paso por paso.

Pero independientemente. El generador simplemente entra en un “loop” (ciclo iteractivo) y lo termina cuando encuentra la instrucción ‘. Las instrucciones del sistema empiezan con punto y se escriben en la primera columna de cada línea.end’. de manera que hace fácil y sencilla la labor de codificación de este tipo de partidas. indicándole al usuario qué debe poner en un momento dado. pues eso es el estándar y así los que entiendan o tengan bases de programación podrán siempre minimizar la curva de aprendizaje. Cabe señalar que las instrucciones del sistema tienen una sintaxis muy simple y en la medida de lo posible el programa generador automatiza cada una de ellas. para regresarlas. la codificación de las partidas debía ponérselas de manera fácil a los maestros que en Europa iban a codificar las partidas para el sitio en cuestión. Hay instrucciones para mover las piezas. incluso los de scripts.com). se programen en inglés.improveyourchess. Cabe destacar que todas las instrucciones del lenguaje de script están en inglés. y por ende.El sistema generador de partidas de ajedrez solitario es un editor de textos que contiene todas las instrucciones que el sistema necesita y además. La razón es que el trabajo se hizo para una página de ajedrez en Inglaterra (www. permite jugar en un tablerito electrónico la partida que se quiere codificar. la tradición obliga a que los lenguajes de programación. para asignar puntuaciones. . de manera que se le puedan añadir más puntos si sus respuestas son correctas. para hacer preguntas al ajedrecista (que está haciendo la prueba) en tiempo real.

Pues bien. en esas condiciones deplorables. Quien haya estado con gripa sabrá lo inútil de dicha enfermedad.Txf2 Tc1+ y mate a la siguiente. Me tiró en cama tres días con sus respectivas noches. ataque al descubierto. ya que después de 2. me atacó el virus gripal. Pues bien. … Dxf2!! Y las blancas abandonan. Por eso la recomendación de estudiar táctica no hay que echarla en saco roto. clavada. Manuel México 1993 Juegan las negras 1. se basa en detalles que describen finalmente una posición y que por ende. aburriéndonos con la tele encendida prácticamente todo el día y sonándonos las narices hasta el hartazgo. no hay ni que analizar qué jugada hacer: puestos todos los elementos en su lugar. casi automáticamente. Los temas son muchos pero finitos y en muchos casos las combinaciones. Esto podría explicar por qué un jugador débil no ve con la misma facilidad una buena jugada que su contraparte magistral. Dentro de uno de ellos. Es claro que en muchos sentidos las posiciones tienen características familiares y el hecho de conocer los detalles típicos nos dan la pauta para encontrar la jugada correcta en una partida. la táctica en ajedrez. a fines de diciembre. Ahí ejecuté una bonita combinación con la que obligué a mi rival a rendirse de inmediato. Dejé la papeleta para caer dormido durante algún tiempo. doble ataque. es decir. la combinación nace por sí misma.000 patrones típicos que se dan en el juego. Se trataba de The Inner Game of Chess. Pareciera que su único afán es mantenernos en cama por algún tiempo. Soltis. Cuando desperté tomé otro libro. han catalogado por temas las posiciones: sacrificios en h7.Ajedrez Patrones en Ajedrez Se dice que un maestro fuerte de ajedrez tiene en su cabeza alrededor de 50. de A. hallé una partida que le gané al FM Isidro Díaz Lombardo hace algunos años. Lo abrí en cualquier página y me encontré con la siguiente posición: . Quienes estudien profundamente la táctica ajedrecística notará que ya muchos autores han hecho la tarea por uno. etc. combinaciones de empate por ahogo. cuando me hartaba de la TV me ponía a hojear algunos de los libros de ajedrez que tengo a mi alrededor. casi para empezar el año 2002. I – López. He aquí la mencionada posición crítica: XIIIIIIIIY 8-+-+-trk+0 7zp-+-wQ-vlp0 6-zp-+-+p+0 5+-tr-+-+-0 4-+-+P+-+0 3zP-+-+-+-0 2-zP-wq-zPPzP0 1tR-+-+RmK-0 xabcdefghy Díaz Lombardo.

Después de 1. ni lerdo ni perezoso contestó: 2. Dxf7!! Y las negras abandonaron inmediatamente por el inminente mate. Aquí. .XIIIIIIIIY 8-+r+-trk+0 7zpR+-vlpzpp0 6q+-+p+-+0 5+-+-zP-+-0 4-+-zP-+-+0 3+-sN-+Q+-0 2P+-+-+PzP0 1+-+-+R+K0 xabcdefghy Lee-Sakharov Campeonato Mundial Juvenil 1963 Juegan las blancas De pronto caí en la cuenta que era el mismo tema que mi partida contra Díaz Lombardo. pero las blancas dieron una sorpresa: 2. Pero eso no fue todo: Más tarde hojeaba la revista holandesa ew in Chess 98/2. Txc3 especulando con que la dama blanca está defendiendo la torre de f1. Me pareció curioso encontrar una posición similar casi por azar. … Txg2?? Y Barua. no lo podía creer. se repite la combinación de la que estamos hablando: XIIIIIIIIY 8-+-+-trk+0 7+Q+-+pzpp0 6p+-zp-+-+0 5+-+Pvl-+-0 4P+-+-+-+0 3+-+-+-+-0 2q+r+-+PzP0 1+R+-+RvLK0 xabcdefghy Barua-Maherramzade Ubeda (op) 1998 Juegan las negras El blanco está perdido. sin embargo. el conductor de las negras comete un grave error: 1. Encuentro la partida siguiente en donde.Txe7 las negras confiaban en 1…. … Dxf7!! Y las negras se rindieron.

Este parecía en final de la historia. Pero unos días después de levantarme finalmente de la cama, hallé en el libro del MI Kopec (Mastering Chess), el siguiente diagrama:

XIIIIIIIIY 8-+-+-trk+0 7+-+l+pzpp0 6-+-+-+-+0 5+-zPp+-wq-0 4-+-zPn+-+0 3+-+-+-+-0 2-tr-+-wQPzP0 1tRN+-+RmK-0 xabcdefghy
Mc ab-Mullen Juegan las blancas Después de 1.Dxf7!! las negras tienen que rendirse. Curiosamente, hace poco aquí en la página de noticias de ajedrez www.Chessbase.com, Frederic Friedel publicó una serie de combinaciones que se dieron en un fuerte torneo en Turquía. Aquí hallé la misma combinación pero con un nuevo atuendo, es decir, en una posición totalmente diferente a las ya vistas:

XIIIIIIIIY 8-+q+ktr-+0 7+-+l+p+-0 6-+nzPpwQr+0 5+-+-+-+-0 4-+-+-+-+0 3+N+-+-+R0 2-zPP+-+PzP0 1+-mK-+R+-0 xabcdefghy
Atakisi, U – Ruck, R 4th IECC Estanbul, Turquía 2003 Juegan las blancas

Las negras aquí se equivocaron, pues su última jugada fue 30. ... Tg4-g6 en lugar de la requerida, 30. ... Tg4g8. Y aquí las blancas sorprendieron sin duda a su rival brillantemente: 31. Df7!! Tf7 32. Th8 Tf8 33. T8f8 mate. Notará el atento lector que el tema se repite. El patrón es el mismo incluso cuando la posición no lo parece. Si uno ve decenas de situaciones parecidas, si se le presentan en la práctica, es seguro que hallará la combinación ganadora. En muchos sentidos el ajedrez es búsqueda de patrones conocidos. Para conocerlos entonces hay que ejercitarlos. Es decir, en otras palabras, a trabajar esa visión combinatoria. La pregunta que surge de todo esto es: ¿se puede programar una computadora para que encuentre los patrones típicos? (como los mostrados en este artículo). Sin duda se necesita de un lenguaje que describa el tablero en las patrones que definan las posiciones ganadoras, y cómo actuar en esos momentos. En ese trabajo me he involucrado y ya he comenzado con la codificación de un software específico que defina patrones y jugadas.

Ajedrez Patrones en ajedrez II

Veo en http://npr.etri.re.kr/ un programa de computadora que “pinta al óleo” una fotografía.

Esto en realidad no algo nuevo para nosotros. En este mismo libro puede hallarse mi propia versión de dicho filtro para óleo digital. Sin embargo, la gracia del software en cuestión es que pinta de manera imperfecta. Los investigadores a cargo de este trabajo se han preguntado ¿Cómo es que ser humano hace una pintura? Y a partir de esto se entra en el fascinante mundo del “non-photorealistic rendering”, lo cual quiere decir, generación de imágenes no fotorrealístas. Las imágenes generadas con este programa nunca se repiten, no son exactamente iguales, cambian porque el software está diseñado a pintar con errores, como los seres humanos. Fantástico ¿no? De la misma manera me he preguntado muchas veces ¿cómo es que los jugadores juegan al ajedrez? Ya sabemos que ningún jugador de carne y huesos usa los algoritmos que las computadoras utilizan en general para poder jugar. Muchos investigadores de este fenómeno han encontrado que los jugadores de ajedrez no perciben una posición como una entidad estática, sino como una colección de acciones potenciales. Así, entonces, esto puede verse como que un jugador humano busca seguir las jugadas más prometedoras sin considerar todas las alternativas que existen. Para que esto pueda suceder, el jugador de ajedrez tiene que evaluar las posibles jugadas y en muchos casos tiene motivos para desechar muchas jugadas, pues no son las mejores, o al menos no lo parecen. Entonces ¿qué hace? Aparentemente busca esquemas conocidos, patrones muy específicos, en donde las jugadas correctas son claramente identificadas porque hay una continuación que gana o que adquiere una ventaja muy evidente. A partir de esto se me ocurrió que ¿por qué no incorporar estos patrones a los programas de computadora? Si esto pudiese hacerse, entonces en lugar de que la máquina analizara todas las posibilidades, podrían bien ahorrarse análisis que no lleva a ningún lado. El problema entonces es ¿cómo generar estos patrones de manera que una máquina pueda buscar en ellos y llegar a la conclusión de que hay un patrón específico aplicable? Después de muchos meses meditando sobre el asunto, encontré que se requiere de un lenguaje gráfico, que no sólo defina el patrón, la posición en el tablero, sino también la existencia de este análisis dinámico de qué pieza ataca a qué pieza/peón, para así llegar a configurar un lenguaje de patrones, que defina de la manera más humana posible, cómo es que pensamos en cada posición de ajedrez. Me tardé mucho en llegar a esta conclusión, porque en mi fuero interno estoy seguro que bien debe haber un lenguaje simbólico, algo parecido al que tiene la geometría analítica, que a través de ecuaciones puede manipular hipérbolas, parábolas y elipses. Así, para quienes sean avezados en estos temas, les debe quedar claro que y = x² habla de una

que en realidad está indefenso.Dh7+ Rf8 4. buscando patrones existentes en las posiciones que se están jugando. tienen su poderosa dama ubicada en h6 con doble ataque a dicho peón. aún se requiere elaborar mucho más. pero ahora con la dama blanca que está en h6. si consideramos que los jugadores de ajedrez humanos. Nótese que en este caso. Por otra parte. El patrón entonces será: la amenaza del Alfil blanco a h7. No obstante esto. Por ejemplo. al analizar esta posición. y además. por lo que la combinación de mate 1. en primera instancia.Df7# es posible”. me puse a trabajar sobre esta idea de los patrones de ajedrez y del cómo podría ser útil para poder hacer un programa que jugara al ajedrez y buscara las jugadas más prometedoras. con centro en (0. considérese el siguiente patrón: XIIIIIIIIY 8-+r+-+k+0 7zp-+-+p+p0 6-zp-+p+-wQ0 5+-+-+-+-0 4-+q+-+-+0 3+-+-zP-+P0 2P+L+-zPP+0 1+-+-+-mK-0 xabcdefghy Juegan las blancas Aquí el patrón es claro: hay mate en cuatro jugadas (empezando por 1. Esto en mi programa se ve en el diagrama así: .Ag6+ Rg8 3.parábola. hacer notar que el peón de negro no sólo no está defendido más que por el rey. Mientras se me ocurría cómo generar dicho lenguaje simbólico. impide el escape del monarca negro del inevitable mate. La misma amenaza. Desde luego que en algunos casos habrá necesidad de observar si es necesario tomar en cuenta otras figuras en el tablero.0). el peón de f7 no está defendido por nadie.Axh7+ Rh8 2. la situación de algunas piezas parece irrelevante (por ejemplo.Axh7+). Y aunque la idea sería crear un sistema en donde todas estas cuestiones las decidiera el propio software. sino que además. bien nos dirán algo así como esto: “mira. el Alfil de c2 amenaza peligrosamente h7. pues sólo el rey negro lo protege y en cambio las blancas. además del alfil. los peones blancos y el rey blanco).

en cambio. lo que no interactúa con el patrón que buscamos tendremos el siguiente diagrama definido: XIIIIIIIIY 8-+-+-+k+0 7+-+-+p+p0 6-+-+-+-wQ0 5+-+-+-+-0 4-+-+-+-+0 3+-+-+-+-0 2-+L+-+-+0 1+-+-+-+-0 xabcdefghy Y su patrón: . Las flechas rojas. Si quitamos todo lo que sobra. cómo se defienden entre ellas. es decir.Nótese que las flechas azules describen las piezas blancas interactuando unas con otras. muestran las piezas negras que están siendo atacadas por las respectivas piezas blancas. es decir.

Una vez con esta información. que conste). bien podemos poner la secuencia de mate u orientar al software para que entonces sólo analice esta posición específica. El software en acción Aunque mi programa es aún experimental y no está terminado (no estoy aún muy convencido si necesito una simbología más rica. pero ¿para la estrategia? ¿No podría generalizarse algo de esta naturaleza para este tema siempre más complejo que el cálculo de jugadas? Me parece que esta idea tiene sus virtudes y hay que explorarla más a fondo. por ejemplo. Igualmente. aunque desde luego que tengo muchos libros e información ajedrecística acumulada en tantos años. ya se sabe qué hacer. cómo jugar. Si se tiene una colección de patrones. quizás ya alguien ha hecho una especie de catálogo de patrones de posiciones de ajedrez. Imagen 2 El software de análisis de patrones . Probablemente los haya para la táctica. una “pieza” en el tablero que sirva simplemente para identificar que una figura blanca ataca una casilla determinada porque en este caso sería parte de un patrón específico y totalmente claro). el problema se reduce a hacer una búsqueda en la base de datos de patrones y si se encuentra alguno. cómo actuar en el tablero. lo cual quitaría de tajo todos los análisis inútiles que la computadora hace cada vez que valora las jugadas en una posición dada (aunque lo haga muy velozmente.

Prometí enviarle a mi amigo el software y así lo hice. Telmex. corregir un par de situaciones que no me terminaban de gustar y así. No obstante que el programa es aún funcional. y no me equivoqué. contraté con la empresa Cablevisión su servicio. al final de la jornada. lo dejaban a uno en la línea de “atención a clientes” por tiempo indefinido y cada problema llevaba al menos una semana intentar resolverlo. era mucho más barato… pero como dicen por ahí: lo barato sale caro. que sigue teniendo la funcionalidad del original. escribí un programa que verificaba –minuto a minuto– la conexión con la red de redes. Éste. nos guste o no. que me indicaba. fallaba también la de Internet. que reclamé porque no tenía Internet por horas. Pensé en ese entonces. Poco después. allá por los tiempos en que estaba conectado a Cablevisión”. Si se iba la señal televisiva de Cablevisión. actualizado. minuto a minuto para ver si seguía conectado o no. sin importar si la señal de tv por cable funcionaba. Le dije que hablara con el proveedor y que le platicara su problema y entonces añadí: “si el problema no se ha arreglado aún. La experiencia fue de mal en peor. en alguna ocasión. comparado con su mayor competencia. No solucionaban nada. De hecho. funcional prácticamente todo el tiempo y con un área de soporte que ninguna otra compañía que dé servicios de Internet puede tener. puedes usar un programa que escribí para monitorear la conexión a Internet. porque un par de meses después de que tenía mi brillante servicio de banda ancha.Internet ¿Está conectado a Internet? Hace quizás ya unos pocos años. que finalmente hay que irse con el gigante en el mercado. en unas pocas horas he salido con un programa renovado. quien me atendió en esa empresa me dijo que anotara cada vez que el cablemódem me desconectara de la red. Así. porque después de esta experiencia no quiero saber más de ellos). si hubo desconexión y cuánto tiempo efectivo no se tuvo acceso a Internet. cuando tenía mis dificultades con el servicio mencionado. porque en ese tiempo (no sé ahora. Obviamente su petición era un poco absurda. Infinitum de Telmex. pero ahora luce una interfaz más moderna. me cambié a Infinitum. simplemente Internet no se conectaba a ninguna velocidad. es una megaempresa y su servicio de Internet de banda ancha es muy sólido. porque no iba a estar “monitoreando” la red. Imagen 1 El monitor de Internet midiendo si uno está conectado a la red . éste comenzó a fallar. decidí darle una “manita de gato” al código fuente. La realidad es que el servicio de Teléfonos de México lo hace muy bien y no tengo quejas… Pero he aquí que un amigo mío me dice que hace un par de días que su conexión a Infinitum parece estarlo desconectando contínuamente. el soporte técnico de Cablevisión era poco menos que pésimo. El sistema creaba una bitácora (un archivo de texto). Porque sí. Y sí. cuando empezó la conexión de banda ancha a Internet.

es bastante probable que lo que esté pasando es que estamos desconectados nosotros. sino que. he de decir que saber si uno está conectado a Internet es un problema que puede resolverse de muchas maneras. que precisamente me dice si el sitio web está activo.arl. Una vez elegido el sitio. no es el acrónimo de “Packet InterNet Grouper”. (La historia completa en http://ftp.com) o google (www. Con ello podemos asegurarnos que estamos o no conectados. Curiosamente.yahoo.com). La más fácil. le puso “ping” porque pensaba que hacía el mismo ruido que lo que hace un sonar cuando encuentra un punto de interés en la pantalla del mismo. el cual es un programa originalmente en Unix. es intentar saber si algún sitio –que comúnmente está funcionando en la red de redes– está activo o no. Si no lo está. el comando ping. Para ello. pues ambos sitios siempre están funcionando. de acuerdo al autor.html). utilizamos un comando llamado “ping”. . Un ejemplo es usar yahoo (www.mil/~mike/ping.Para quienes estén interesados en la parte técnica. el “ping” manda una serie de bytes al sitio y éste responde con otra secuencia en milisegundos. a mi entender.google.

Internet Mi solución contra el correo chatarra

Hace unos días empecé a recibir una centena de correos en donde se me indicaba que mis mensajes estaban rebotando, es decir, no llegaban a su destinatario. Se me hizo raro, porque no suelo mandar cientos de mensajes de correo por día. Lo que descubrí entonces fue que un spammer usaba –para mandar su propaganda de medicinas contra la impotencia– mi dirección de correo como remitente. Cuando algún destinatario no existía o rebotaba por la razón que fuere, yo, y no el spammer, recibía los mensajes de error. Llevo así una semana con cientos de mensajes por día de correos no recibidos o fallidos. Lo peor es que en algunos sitios ya me bloquearon pues mi dirección es de spam. Vaya, que estoy como “boletinado” por spammer, aunque claro está, no es mi culpa. Lo peor del asunto es que no se puede hacer nada para evitar que alguien use una dirección de correo específica para usarla como remitente. Esto ocurre porque el protocolo de correo (SMTP Simple Mail Transfer Protocol, por sus siglas en inglés), no fue diseñado para autentificar al remitente. Y de hecho, Microsoft está apelando por una iniciativa para cambiar el protocolo de correo y así hacerlo más robusto, minimizando el problema del spam. El spam ha sido considerado ya un problema serio en la red. Para empezar, como el envío de correo electrónico es gratuito, entonces hay quien se sirve de inmediato con la cuchara grande. Para un usuario de Internet, mandar mil mensajes o uno solamente es igual, no tiene costo. Cuando la mercadotecnia se dio cuenta de las posibilidades que esto ofrecía para promover sus bienes y servicios, entonces nos inundaron nuestros buzones virtuales con cuanta basura, desde proponer hacerse rico poniendo una granja de avestruces, hasta el comprar una estrella y bautizarla como mejor queramos (aunque esto es un fraude porque no se pueden comprar los nombres de las estrellas). La realidad es que mucho del spam existente bien podría eliminarse si quienes proveen los servicios de Internet limitaran la cantidad de correos que sus usuarios pueden mandar. ¿Cuántos correos por día mandará una persona “normal” en Internet? ¿cincuenta? ¿cien? ¿mil? Yo creo que mil por día ya es excesivo, pero asumamos que los proveedores del servicio de Internet limitaran a 1000 mensajes diarios por usuario. Sin duda mucho spam desaparecería, porque estamos hablando que los spammers mandan miles de mensajes diariamente. Como el asunto del spam no parece tener una solución trivial, se han buscado muchas alternativas. Una de ellas, que se me ocurrió a mí (aunque no soy el único), es la de atacar el fuego con fuego. Si reconozco a un spammer, le mando 1000 correos idénticos, reclamándole su actitud. Obviamente eso sólo puede hacerse con un programa, el cual escribí en el 2004 con las herramientas que en ese entonces tenía. Hoy, usando actualizaciones del software que uso para programar (Delphi), hacer un programa que mande correos idénticos a una dirección de email es un asunto casi trivial. Así que le di una manita de gato al que escribí en el 2004 y lo actualicé. Usando Indy, unos componentes específicos para Internet (que vienen en Delphi), los cuales están más trabajados que en versiones anteriores, ya no he encontrado errores de sockets ni de sincronía al hacer la conexión a la red de redes, asunto cotidiano con la versión del 2004 (y el cual no sabía cómo resolver).

Imagen 1 Contra el correo chatarra Sé que más de uno dirá que con mi solución sólo doy pie a que exista más spam aún. Yo creo que tenemos el derecho a atacar con las mismas armas a quienes nos atacan, sino pues estamos en desventaja. Pienso que mi software no será la solución final y que quien decida usarlo lo haga de manera responsable y no a todo aquel que piense que lo spamea, valga la expresión.

Internet Biométrica: o es lo que escribes, sino cómo lo escribes.

Los sistemas de cómputo están en todos lados. Son parte de nuestra vida cotidiana y no se concibe el mundo moderno sin computadoras, cajeros automáticos, teléfonos celulares, la red internet, etc. Para que dichos sistemas sean efectivos, deben de ser seguros, de tal manera que la información que posean solamente esté disponible para los usuarios autorizados. La seguridad de los sistemas de cómputo modernos se basa usualmente en mecanismos de autentificación a través de nombres (login) y contraseñas (passwords). Algunas instituciones con información muy sensible o importante requieren del uso de tarjetas de identificación personalizadas o bien, de terminales especiales. El mecanismo tradicional de nombres de usuario/contraseña ya no es –quizás– suficientemente seguro debido a los ataques constantes de terceros por hacerse de esta información para ingresar a sistemas de cómputo de manera ilegal. Debido a esto, aquí exploramos la posibilidad de incorporar la dinámica del teclado, como una expresión medible de un usuario de forma tal que ahora no solamente se puede acceder a un sistema con el nombre y la contraseña correcta, sino además, midiendo si el usuario escribe su contraseña como acostumbra hacerlo. Se sabe, desde hace mucho, que el ritmo al escribir en un teclado es específico para cada usuario9. Este ritmo depende, desde luego, de las costumbres y prácticas que tenga la persona con el teclado. Quienes usan frecuentemente máquinas de escribir o teclados de computadora incluso, escriben correctamente sin necesidad de mirar las teclas. Quienes tienen menos experiencia son más lentos en su escritura. De esta forma, es factible pensar que la manera de escribir es una medida biométrica y que es susceptible de ser analizada e incorporarla en esquemas de nombre/contraseña, para así autentificar de manera más sólida al usuario que pretende ingresar en un sistema de cómputo. El método aquí estudiado tiene que ver con los tiempos que el usuario tarda en oprimir cada tecla de su contraseña, lo cual forma un perfil biométrico digital, el cual puede ser analizado y comparado para saber si se trata del usuario con permisos para ingresar al sistema.

Está en tus manos, en tu cara, en tus ojos La biométrica es la medida de las características físicas y de comportamiento que nos hace a cada ser humano único. A diferencia de los nombres/contraseñas de los sistemas de cómputo, ciertas medidas biométricas no se pierden, no pueden ser duplicadas o robadas. Pertenecen a cada ser humano en particular. Esto da la posibilidad de sistemas que sean imposibles de ser violados por terceros de manera ilegal, puesto que la información biométrica de los usuarios es única e irrepetible. Las características fisiológicas como pueden ser las huellas digitales, son buenas candidatas para la identificación de personas, ya que son únicas para cada ser humano, incluso si se trata de gemelos idénticos. Más aún, son difíciles de copiar sin causar daño severo a la persona. De esta forma, la biométrica está ganando popularidad, porque cuando es usada en conjunto con métodos como contraseñas o incluso tarjetas de identificación electrónicas, proveen un nivel extra de seguridad. Algunos de los sistemas biométricos usados para identificación humana se basan en la geometría de las manos, patrones térmicos en el rostro, las venas en la retina, voz y firmas manuscritas. Hoy en día hay algunos dispositivos de reconocimiento biométrico en el mercado. Sin embargo, algunas técnicas usadas por estos mecanismos son fáciles de burlar o bien, son generalmente costosas e invasivas.

9

Benjamin Miller. Vital Signs of Identity. IEEE Spectrum, pp 22-30, 1994

para efectos prácticos. En algunos casos es factible incluso medir los ciclos de reloj a través de instrucciones de bajo nivel o de ensamblador. Características del sistema Un perfil digital del teclado se obtiene midiendo los tiempos que el usuario tarda en escribir una tecla y la siguiente. para posteriormente ser analizados. La imagen 1 muestra el perfil del usuario cuya contraseña es “la_morsita”. Esto sin embargo. . no lo hace más pobre que una medida biométrica tradicional y tiene una gran ventaja: es prácticamente gratuita. Debido a factores que se explican más adelante. pues no se requieren de dispositivos extras. Debido a esta resolución. el cual funciona similarmente a la firma manuscrita que la gente tiene. es factible entonces medir –con relativa precisión– los tiempos de retardo entre tecla y tecla oprimida. ¿Cómo son? Un perfil digital del teclado se define como el tiempo que tarda un usuario en escribir su clave o contraseña. Algunos autores le denominan a esto tiempos de latencia o retardo. se parecen lo suficiente como para dar acceso a ese usuario particular al sistema. El único hardware requerido es el teclado. se basa en medir los tiempos de retardo que cada usuario en particular tiene al escribir su contraseña. lo que se necesita es un programa que mida primero dichos tiempos de retardo y los guarde. siempre y cuando sea lo suficientemente precisa. El hardware actual de las computadoras permite medir tiempos hasta de milisegundos. donde el eje x contiene el número de teclas orpimidas y el eje y los tiempos de retardo de una tecla oprimida a la siguiente. debe existir un factor de tolerancia para intentar discernir si la contraseña alimentada al sistema y su perfil. De esta manera. Los perfiles. Una vez realizado esto. medir ciclos de reloj de la máquina que milisegundos. Imagen 1 Perfil de un usuario cuya contraseña es “la_morsita”. no importa qué medida se tome. La intención en este caso. Bajo esta concepción. se define un “perfil” digital de cada usuario. La medida de su parecido es la que decide si se da acceso al sistema al usuario en cuestión. De hecho. Así. En este caso. Los datos obtenidos pueden ser analizados a través de una gráfica cartesiana. es lo mismo. permitiéndole al sistema medir los tiempos de retardo entre tecla y tecla oprimida. cuando el usuario alimenta su contraseña. ésta pasa por dos filtros: (a) ver si se trata de la contraseña correcta y (b) si se cumple con el perfil digital.o es lo que escribes. sino cómo lo escribes La forma en que un usuario escribe en el teclado de la computadora tiene más de medición del comportamiento humano que de características fisiológicas. se decidió utilizar ciclos de reloj para generar el perfil del usuario.

sobre las pendientes que dicho perfil tiene. Evidentemente los usuarios no escriben de la misma manera. Sin esta información parece más difícil que un impostor acceda a un sistema a través del robo de alguna contraseña. jamás puede ser infinita. lo interesante es hacer un primer análisis y descubrir si es lo suficientemente adecuado para los fines de seguridad que se persiguen. Sin embargo. De la misma manera puede analizarse el perfil digital de una contraseña para saber si es lo mismo que el usuario escribió al digitar su contraseña. hay ciertos elementos que la identifican como escrita por la misma persona. un mismo usuario mantendrá constante un mismo perfil. el análisis debe hacerse directamente. Si la firma le parece que no coincide visualmente. contra la alimentación de la contraseña por parte del usuario. Michael K. es decir. A este factor le llamamos Tolerancia y lo tomamos como una medida porcentual sobre la cantidad de pendientes donde se es igual el perfil registrado a la contraseña alimentada. En esta primera aproximación. Sin embargo. Ciertas curvas en las letras. Análisis de los perfiles Existen muchas ideas al respecto de cómo analizar un perfil digital del teclado para así saber si el usuario es el correcto y no un impostor. Los métodos van desde la estadística descriptiva (usando la t de student para comparar la muestra de un usuario contra la hipótesis (el perfil))10 hasta aquellos que utilizan redes neurales. cierta fuerza y presión en algunos de los rasgos escritos identifican de manera general a un usuario verdadero de uno falso. no estamos siquiera considerando el valor de la pendiente. Sin embargo. pendiente de una tecla a la siguiente. La comparación se basa más en la forma de la gráfica que en otros datos. la idea es que el sistema mantiene en secreto la manera de validar un perfil. solamente si es positiva o negativa. 73-82. Password Hardening Based on Keystroke Dynamics. Desde luego. De esta manera se pretende identificar a un usuario legal de un impostor considerando la analogía del perfil contra una firma manuscrita.Todos los perfiles tienen finalmente una forma de “diente de sierra”. la forma del perfil se mantiene constante. El perfil de la imagen 1 se convierte entonces en: positivo negativo positivo negativo positivo negativo positivo negativo positivo. su contraseña. Así. pp. este factor va de Fabian Monrose. intentando discernir si el tipo de perfil pertenece al que el usuario ha introducido. pide al cobrador más pruebas de su identidad). considerando el perfil gráfico mostrado en la imagen 1. La magnitud de cada diente de sierra será mayor en la medida que el usuario tarde más al pasar de oprimir una tecla a la siguiente. Sin embargo. el análisis de perfil es un arreglo que muestra las pendientes de la curva diente de sierra del perfil y compara. Pruebas empíricas demuestran que al escribir repetidamente una palabra (contraseña). por ejemplo. por la naturaleza discreta de los eventos dentro del teclado. Dicho de otra manera. podría hacer las pausas adecuadas para así acertar al perfil registrado. 10 . November 1999. Factor de Tolerancia Si le pedimos a un usuario que haga su firma manuscrita un par de veces. si un usuario impostor conoce el método que se está usando para medir el perfil digital. Así entonces. el cajero rechaza el cheque y no lo paga (o bien. el perfil digital se convierte en una lista de valores que definen si la pendiente es positiva o negativa (la pendiente. Con el mismo criterio. en una primera aproximación. Proceedings of the 6th ACM Conference on Computers and Comunications Security. aquí necesitamos un factor sobre la comparación de los perfiles digitales contra los que el usuario escribe. en un cheque. el cajero tiene que hacer una validación de la firma mostrada en le documento contra la que él tiene en sus registros computarizados. debido a la naturaleza de la gráfica. De esta forma. por lo menos en un buen porcentaje. Reiter. observaremos que ambas firmas no son estrictamente iguales. En este sentido. lo que parece evidente es que. y tardándose estrictamente lo mismo. una línea vertical). Susanne Wetzel.

Software de demostración Todos los análisis se llevaron a cabo en un programa de demostración para entender en la práctica la validez de los perfiles digitales biométricos del teclado. Si nuestro factor de tolerancia es de 80% le estamos diciendo que mientras el sistema no identifique el 80% de las pendientes correctamente. El porcentaje de coincidencia es de 79% y el acceso es permitido.0% a 100%. por ejemplo. La imagen 3. 65% (aún así bajo). El acceso es rechazado. El porcentaje de coincidencias es de 39%. La imagen 2 presenta el intento de un impostor de duplicar el perfil del usuario cuya contraseña es “la_morsita”. muestra al usuario correcto escribiendo su contraseña. Aquí las coincidencias son del 79% por lo que el usuario tiene acceso al sistema. el sistema rechazará a este usuario. no se le dará acceso al usuario. Imagen 2 Contraseña alimentada por un impostor (en azul) contra el perfil de la contraseña “la_morsita”. si el factor de tolerancia es. El sistema está escrito para Windows 98 en adelante en el lenguaje Delphi 5 (de Borland). La imagen 4 muestra la ventana principal del programa de demostración: . Imagen 3 Contraseña alimentada (en azul) por el usuario legal contra el perfil de la contraseña “la_morsita”. en cambio. De esta manera. Aquí el sistema da un porcentaje de acierto de 39%.

Sin embargo. Por ejemplo. por ejemplo. considerando solamente si son positivas o negativas da un buen acercamiento a la validez de la idea. Barra deslizable de tolerancia: Permite al usuario definir cuánta tolerancia (entre la contraseña de un perfil y la alimentada por el usuario) debe haber para aceptarla o rechazarla. Botón Ayuda: despliega una nueva ventana con la ayuda sobre los botones y comandos del sistema. así como una incertidumbre de tolerancia. ante la falta de perfiles las conclusiones sobre la bondad de esta idea aún están en tela de juicio. se necesitan pruebas estadísticas considerando todo género de usuarios..Imagen 4 Ventana principal del software de demostración El sistema contiene una serie de botones que permiten las diferentes acciones de procesamiento y análisis. porque de ser menor. en donde una pendiente. (a) que la contraseña sea la misma y (b) el porcentaje de similitud de las pendientes del perfil registrado contra el perfil alimentado.: despliega información sobre el autor de este software. Obviamente. Botón Salir: termina la ejecución de este programa. Botón Verificar contraseña: Aquí el sistema comparará la contraseña alimentada contra el perfil que dicha contraseña tenga. el cual contiene la contraseña alimentada y los números que describen el perfil de quien alimentó ese dato. De esta manera se pueden comparar los valores alimentados contra un perfil determinado. Algunas conclusiones preliminares Para probar que este esquema de perfiles digitales biométricos basados en el retardo entre teclas puede validar a usuarios legales de impostores. . Botón Acerca de. Desde luego que es posible generar más parámetros de comparación. el sistema rechazará esa contraseña por inválida. podemos concluir que el esquema del análisis de las pendientes.txt’).. 90% de tolerancia significa que el usuario debe escribir su contraseña con un mínimo de certeza del 90%. A continuación la descripción de los mismos: Botón Inicializa valores: Limpia el campo de alimentación de la contraseña y la última gráfica (y perfil) alimentado. Botón Ver/esconder gráfica: permite al usuario desplegar solamente las gráficas que le interesen. Botón Lee perfil: permite graficar cualquiera de los perfiles que se encuentran en el archivo de contraseñas. Botón Añade password/perfil: permite –una vez alimentada una contraseña– guardarla en el archivo de contraseñas (‘passwords. Se miden dos factores.

entendemos que se necesita muchas más experiencias prácticas para validar los beneficios de esta idea. De esta manera. Esto quiere decir que el perfil de un usuario a través de la dinámica del teclado es susceptible del tipo de teclado que se está usando. Esto puede ser interesante en sistemas de cómputo con información muy sensible. se estaría incorporando más precisión a la comparación. Sin embargo. Quizás en este caso la única manera de soslayar esta dificultad sea subir el nivel de tolerancia sobre el perfil alimentado contra el que pueda dar el usuario al alimentar la contraseña. duplicarlo.). Cabe señalar que las pruebas se hicieron con un teclado estándar de computadora. por ejemplo. el sistema podría así evitar que se introdujera al mismo.comparada contra la del perfil. A la fecha no tenemos ninguna respuesta a esta problemática. Es evidente que si un usuario legal en un sistema no viene en las condiciones adecuadas para usarlo (enfermo. drogado. . evitando así que un impostor pudiese. etc. Es nuestra opinión que un sistema basado en contraseñas y perfiles dinámicos del teclado pueden incrementar la seguridad de los sistemas de cómputo. pero es obvio que el perfil de un usuario y su contraseña puede ser muy diferente si se usa un teclado de laptop o computadora portátil. sea igual en ±10%. incluso sabiendo el método de verificación usado.

Internet Cuide a sus hijos Internet puede ser una herramienta estupenda. decidió poner manos a la obra. si queremos bloquear las direcciones en donde aparezca la palabra ‘sex’. NannyWare es un programa que bloquea los sitios que un adulto no quiere que sean vistos por menores u otras personas. Vea su manual del usuario para hacer este cambio en Windows 2000. abramos tres instancias de Internet Explorer. generando annyWare como una posible solución al problema de control de contenidos en la red. y considerando los peligros que ciertos contenidos pueden ser malinterpretados por los pequeños. o preadolescentes. desde el menú de la ventana principal. es claro que la facilidad para encontrar información en Internet. si hay pequeños en casa.com. Debido a que muchas veces no es posible estar al pendiente de los menores. Esto puede hacerse copiando el programa al directorio o carpeta: C:\WINDOWS\Menú Inicio\Programas\Inicio (considerando que usa Windows 98. es necesario llevar un control sobre los sitios que visitan y a qué páginas acceden. pero claramente. esas tres páginas se cerrarán automáticamente. bloquear el acceso a www. muchas veces hay contenidos para adultos en un sinfín de páginas. El usuario podrá notar que no funciona el botón ‘X’ para cerrar la aplicación o bien.com e www. No obstante. Por ejemplo. como todo lo que hace el ser humano. El sistema analiza cada 15 segundos los programas que están ejecutándose en la PC y así. Córrase NannyWare y dígasele que se quiere bloquear todas las direcciones que tengan la palabra ‘chess’. bloqueé la ventana cerrándola para no poder ser accedida. es decir. Por ello mismo. Es posible bloquear direcciones específicas así como aquellas que contengan secciones de palabras. La naturaleza humana parece estar dispuesta a estirar todas las reglas al límite.com. Se sugiere que el sistema se cargue siempre desde el arranque de Windows. El sistema revisará que cuando Internet Explorer se encuentre en un sitio en donde ‘sex’ aparece en alguna parte. No quiere decir que el sistema funcione mal. y bloquea –cerrando la ventana del navegador ofensor– automáticamente. debido a la naturaleza pública y sin censura de la red. por los motivos que sean. Como ejemplo ilustrativo.chesscafe. www. no se puede cerrar. una vez ejecutado. La tecnología de NannyWare captura las direcciones que se escriben en el navegador Internet Explorer. Cuando éstas se rompen entonces vienen las consecuencias. supongamos que queremos. El sistema. la red de redes.chessbase. es uno de los inventos más notables de nuestra época. XP o Vista). La Morsa Software Co. basta con escribir esa palabra en los URLs a bloquear. En cada una póngase una de las direcciones web mencionadas. si encuentra algún contenido ofensivo (o declarado así por el usuario). En 15 segundos a más tardar. sin importar que haya más de una instancia del mismo. Por ejemplo.inforchess. cerrará dichas ventanas de cada navegador en donde aparezca esa parte de la palabra dentro de la dirección www de internet. Por ejemplo. . no puede ser eliminado de la memoria. Se han deshabilitado estas opciones. puede ser llevada a los extremos.

podría cancelar este programa y con ello su posible efectividad. NannyWare funciona en esta versión sólo con navegadores de Microsoft (Internet Explorer). Dicha clave se guarda en el directorio en donde fue instalado nannyware y se llama password. considerando que el nivel promedio de los usuarios de la computadora personal carece de conocimientos al respecto. Avant Browser y otros. . para proteger a los menores El sistema cuenta con un programa que genera una clave o contraseña para que solamente un usuario autorizado pueda dar de alta/baja/cambios ligas de Internet (URLs).Imagen 1 annyware. Se está trabajando para poderlo usar con navegadores como Netscape. Cabe señalar que en términos generales. cualquier persona con ciertos conocimientos de cómputo y particularmente. Mozilla.txt. de forma tal que sea difícil saber cuál es la contraseña y así dar de baja el programa y evitar su funcionamiento. Sin embargo. nannyware puede ser una estupenda herramienta para proteger de contenidos ofensivos o indeseables en un momento dado. del sistema operativo. El archivo no se puede ver normalmente porque el propio generador lo pone de modo invisible en la carpeta o directorio en donde se instaló.

con el tiempo. Por supuesto. mi programa se da cuenta y cierra inmediatamente la aplicación. esta solución no es la mejor. Por ende. la ayuda de este tipo de programas para comunicarse incluso en un negocio. se me ocurrió escribir un programa bloqueador de MSN Messenger. porque la gente está platicando vía este programa. Así pues. tales regaños tienen poca efectividad y a la larga no queda más remedio que tomar acciones más severas. El monitoreo se hace cada dos segundos y tiene algunas características que lo hacen difícil de detectar en la computadora. en las universidades. y entiendo que en muchos casos. el software trabaja de manera local). evidentemente. se midan más en el uso del Messenger. El sistema debe instalarse en la máquina del usuario que usa este programa (es decir. en particular el MSN Messenger.Internet Bloqueador del ms–messenger Uno de los problemas que se están convirtiendo en “endémicos” en el cómputo actual es el uso y abuso del mensajero instantáneo. Sin duda que día a día millones de mensajes “instantáneos” pasan entre máquinas y eso. Probablemente la reprimenda caiga mal en quienes la reciben y ante la eventual amenaza de un despido. pero cuando esto se hace el efecto es general. es decir. ya que los mensajes y pláticas se dan incluso de continente a continente. de tal manera. no es posible bloquear en una oficina el uso de este programa pues quienes primero brincarán son los que lo usan para el trabajo mismo. Sin embargo. me refiero). es un extraordinario avance de la comunicación. Imagen 1 Logotipo del bloqueador de mensajeros instantáneos (cortesía de Juan López) Obviamente los administradores de las redes locales cuentan con herramientas para bloquear cualquier programa. lo único que . Sin embargo. Lo he visto instalado en oficinas de gobierno. de tal forma que cuando quiere entrar a platicar en línea. son la mayoría. lo cual en mi opinión. En algunas ocasiones. que si el usuario no es muy avezado en cómputo (incluso algunos con cierta pericia técnica). todos los usuarios de la red están imposibilitados de usar el programa prohibido. pues. es importante. en todas partes. Una manera de enfrentar el problema es hablar en la oficina con quienes consideramos abusan de este privilegio del mensajero instantáneo. a quienes que habría que bloquear son a aquellos que de alguna manera abusan. en las oficinas no está aún valorada la cantidad de tiempo que se pierde (horas de trabajo.

las reglas de convivencia casi exigen siempre un castigo o multa a los eventuales infractores a una regla del sentido común. Todos ellos son sistemas de chateo. no falta quien quiere sacar ventaja de ello o se siente más inteligente que los demás porque hay personas que creen que las reglas son para los tontos nada más. que nos beneficia a todos. y éste último incluso vía voz. De hecho. y más aún. pues simplemente no hacen caso.notará es que el messenger se ha estropeado e incluso. al ser humano muchas veces no se le puede tratar con la razón. no le permite reiniciar su antigua práctica de platicar mientras está trabajando11. sin duda. reinstalándolo. de acuerdo a mi experiencia. 11 . A la fecha bloquea los mensajeros ya mencionados. pero que desde luego. También está Yahoo! Messenger. No es. Si nos fijamos en el mundo moderno. AOL Instant Messenger e incluso Skype. Hay otros mensajeros instantáneos en el mercado. el mejor método. pero el abuso es el que le da al traste completamente. esconder una aplicación dentro del sistema y no indicar cómo está escondida para hacerle difícil de detectar. usan con alegría Google Talk. desde luego. con su nicho de usuarios muy bien establecido. se ha intentado esconderlo lo suficiente para que sea difícil de deshabilitar. De esta manera. en GMail. desarrollé todo un sistema bloqueador de mensajeros instantáneos. Desafortunadamente. sus cuentas de correo están. pero para el problema que nos ocupa resulta bastante acertado el enfoque. Por ejemplo. los que consideran que Google es una maravilla. Cabe señalar que un usuario más o menos avezado en cómputo podría hallar la manera de desbloquear el Messenger. La realidad es que la idea de la comunicación instantánea vía Internet es muy buena. explicándoles el abuso en el que incurren. es decir. después de entender cómo bloquear al MSN Messenger. Este esquema se llama “seguridad por oscuridad”.

La tesis del gemelo fue precisamente sobre un programa para jugar scrabble y él. Cuando lo vi pensé que sería muy fácil hacer un programa que buscara en un diccionario las palabras y dadas las restricciones..305 palabras.. creo que se va duplicando.. El concurso trata de encontrar palabras que empiecen con la primera letra de la primera inicial. . Dichas palabras pueden ser de una cantidad de letras variables. Al llegar a mi casa encontré que Jesús ya me había mandado el archivo con 449. también conocido como Yixus). por ende. ni ‘A’.Proyectos varios Juego de palabras Veo en la televisión un concurso. Debe llegar el momento en el que ya no se puede poner ninguna. El juego –como puede verse– tiene cada vez más restricciones y cada vez resulta más difícil poner una palabra. Por cada palabra puesta. ‘PUDRIR’. ni ‘O’ ni ‘T’ en la cuarta posición. pero una vez que ya se puso la primera palabra.. la longitud de las siguientes palabras queda fija. Por ejemplo ‘PIEDRA’. inicialmente. ¿de dónde sacaría yo un diccionario con muchos términos para ser usado? Casualmente ese día. pero no sirve. que deben de ser de seis letras.. ni ‘T’en la quinta posición y tampoco ‘A ‘ni ‘S’ en la sexta posición. Parece que ésta sí se puede poner. pero que no se repitan ninguna de las letras en el orden que están en la primera palabra. incrementando las restricciones obligadas por el juego.. al platicarle mi idea. ni ‘S’ ni ‘L’ en la tercera posición. mientras pensaba cómo hacer. compartió para que este programa pudiese hacerse. Pensemos en alguna otra. se gana dinero. imaginemos jugamos nosotros (por teléfono es el concurso). el cual. y que además. así que se puede llegar a un monto interesante. pero la cuestión era. tenía un amplio diccionario. una ‘L’ en la tercera. tenga la misma longitud que la palabra original. me reuní con el “Gemelo” (Jesús Ortega. Veamos PELOTA PASTAS PUDRIR Y así sucesivamente. Nada despreciable. El software Hasta aquí el juego. una ‘T’ en la quinta y una ‘A’ en la última letra. Así. con las siguientes restricciones: ya no puede ponerse en la nueva palabra una ‘E’ en la segunda letra. Pensemos en alguna otra. casi medio millón. que ha sido (o es) el campeón nacional de Scrabble. en donde se trata de formar palabras. Ahora la tercera palabra no debe tener ni una ‘A’ ni una ‘E’ en la segunda letra. Las restricciones crecen palabra a palabra. y que la primera palabra (la que se da inicialmente en la televisión) es PELOTA Ahora sabemos que tenemos que formar palabras que empiezan con ‘P’. No debe ser un programa difícil de hacer. puse manos a la obra y en un par de horas hallé cómo hacer las búsquedas. una ‘O’ en la cuarta. me fuera diciendo qué palabras sería posible poner. Por ejemplo.. ¿Qué palabra podemos poner? A mi se me ocurre PASTAS Entonces si esa es la palabra elegida por el concursante tendremos PELOTA PASTAS Aquí entonces empiezan más problemas. porque termina en ‘A’ y ya está en la sexta posición (en ‘PELOTA’) esa ‘A’..

‘PANZON’.. pues con la selección de cada palabra se va limitando el número de posibles palabras que pueden ser elegibles.. que le dé una palabra diferente a la primera. Tal vez ésta fue la parte más difícil de programar. en donde la palabra inicial es PELOTA Si le damos buscar. considerando las restricciones que inicialmente se ponen. Ahora puede decirle al programa. por ejemplo. dando click sobre el botón ‘Buscar’. el juego queda así: PELOTA PANZON . Coloque la primera palabra en el casillero que dice Palabra del concurso Ésta es la palabra inicial. ejecuta el software. Este procedimiento es todo automático y al final tendrá un icono que al darle doble click. nos dará un montón de palabras. Consideremos el ejemplo original. Encontrará entonces un menú muy simple: ‘Juego’ y ‘Ayuda’. Así. De aquí elegí. Imagen 1 El software en acción ¿Cómo se usa el software? Instale el programa corriendo el ejecutable. Normalmente puede empezar el juego o bien pedirle que haga un juego nuevo.Desde luego ahora había que programar las búsquedas lo cual es un interesante ejercicio de programación.

. Pero el sistema nos dio siete palabras y no tuvimos ni que pensar......... PELOTA PANZON PICADO PLACAS Una búsqueda más y obtenemos ahora sólo 36 palabras...Podemos escribir la palabra en la caja de ‘palabra del juego’ o bien. Ahora intentemos una segunda búsqueda.. Pongo PUERIL... Elegí PLACAS. será más restrictiva que la anterior y nos dará. PELOTA PANZON PICADO PLACAS PORQUE Hacemos una búsqueda más y sólo hallamos 9 palabras. Una nueva búsqueda y tenemos... Nos da 371 palabras. definitivamente.170 palabras que puedo poner... ¡Genial! el programa encontró dos. cada vez menos palabras. PELOTA PANZON PICADO PLACAS PORQUE PRIMER PUERIL Una búsqueda más no da más palabras.. . Elegí PICADO y la puse como la tercera palabra: PELOTA PANZON PICADO Sigamos. marcar la palabra con el ratón y dar doble click.. Elegimos PORQUE y la pongo en el juego. Elijo PRIMER y la coloco en el juego PELOTA PANZON PICADO PLACAS PORQUE PRIMER Hagamos una búsqueda más. la palabra pasará a la ventana del juego. que por ende. Puede verse que el programa encontró 796 palabras que pueden ponerse ahí...

Tienes sed. los investigadores de la motivación Ernest Dichter y Louis Cheskin fueron amonestados públicamente debido a sus contribuciones científicas que habían sostenido los intentos de los publicistas por manipular a las personas. tan poco como para que el consciente no pueda advertirlo. La escena transcurre en plena noche. no alcanza la representación consciente y. ¿Es posible usar la computadora para generar mensajes subliminales? Sin lugar a dudas. sin duda alguna su influencia alcanzará a un nicho (pequeño o grande) de la población expuesta a estos estímulos. Incluso en películas de Walt Disney podemos encontrar imágenes subliminales. por ejemplo. De hecho. de Virginia (EE. Por ejemplo. mientras que la de la bebida tan sólo un 18%. Simba. La intención de esta manipulación sigue siendo una incógnita. determina la conducta de la persona al margen de su voluntad consciente. y parece se el primero en sugerir que los estímulos no percibidos de modo consciente bien podrían afectar los sueños. por diversas circunstancias. podrían estar influyendo en el comportamiento y hábitos de las personas. Hay muchos ejemplos de mensajes subliminales en el cine y la televisión: Uno de ellos es “El Exorcista”. Entre los sub-estímulos visuales. los actores y actrices influyen en la moda cotidiana. pero que de ser cierta la teoría subliminal.UU.) ha denunciado a la Disney por el empleo de sexo subliminal.C. máquina que sirve para proyectar en una pantalla mensajes invisibles que pueden ser captados por el subconsciente. rugidos de león y maullidos de gatos. como baja intensidad. demostró el taquistoscopio. Independientemente de que sea cierto que es posible influir en el comportamiento y hábitos de las personas a través de mensajes subliminales. cabe destacar una máscara de la muerte. después de publicarse el libro de Vance Packard “The Hidden Persuaders”. Hace 2. No se necesita ser un genio para darse cuenta que. De esta manera se han diseñado multitud de programas que precisamente hacen esto: enviar mensajes muy específicos a la pantalla. Éstas se van moviendo hasta que finalmente construyen la palabra “sex”.Proyectos varios Mensajes subliminales Ya en los escritos de Demócrito (400 a. Así pues. la American Life League. En 1957. Aristóteles explicó de modo más detallado los umbrales de la conciencia subliminal en su Perva aturalia hace casi dos mil años. se denomina percepción subliminal a la captación de un estímulo que.) se podía leer: “mucho de lo perceptible no es percibido por nosotros”. o fuman. Platón habló de esta noción en su escrito Timeo. que ocupaba toda la pantalla. por ejemplo. se encuentra en lo alto de una montaña con el firmamento repleto de estrellas al fondo. falta de atención o breve duración del mismo.250 años Aristóteles explicó en su teoría del Sueño: “Si los impulsos que tienen lugar durante el día no son demasiado fuertes y poderosos pasan inadvertidos debido a impulsos altamente despiertos. Algunos piensan que mediante la computadora personal es posible ayudar –mediante mensajes subliminales– a dejar de fumar. Esto aclara lo que pasa en el sueño. entre los efectos de la banda sonora se incluye el zumbido de un enjambre de abejas enfurecidas. enviando letreros alusivos al respecto a la pantalla por muy poco tiempo. ya mayor. En 1958. . James Vicary. Si ciertas estrellas de la farándula usan algunos accesorios. proyectada en numerosas ocasiones durante el filme. Un ejemplo de estimulación subliminal lo podemos encontrar en El rey león. investigador del mercado norteamericano. por tan poco tiempo que los usuarios simplemente no lo notan. Cuando sólo hay ecos débiles en sus oídos los hombres creen que se trata de algo relampagueante y extraordinario”. o se visten de una peculiar manera. entonces los pequeños impulsos parecen grandes.5%. en la televisión. sin embargo. bebe coca-cola”. es evidente que se hace uso de estas técnicas desde hace muchos años. come palomitas. El director Friedkin ha empleado técnicas subliminales visuales y auditivas para reforzar los efectos emocionales. El resultado fue asombroso: La venta de palomitas se disparó un 57. así como gruñidos de cerdos al ser degollados. Pero mientras dormimos tiene lugar lo contrario. Durante la proyección de una película aparecía un fotograma (En el cine se muestran 24 por segundo) con el siguiente mensaje: “Tienes hambre.

.Imagen 1 Pantalla principal del software subliminal Así entonces. modos de ser. Quien use este programa debe estar consciente de que se le están aplicando técnicas subliminales y debe estar de acuerdo. se decidió que el sistema no pudiese esconderse o minimizarse sin que el usuario lo note. simplemente puede cerrar la aplicación. etc. se ha decidido investigar si es posible que los mensajes subliminales afecten realmente a los usuarios en sus comportamientos. deshabilitando los mensajes programados. De no estarlo. quizás enviando mensajes no constructivos o poco benéficos. Para evitar el mal uso de este programa. hábitos de compra. El sistema permite mandar mensajes (definidos por el usuario del software) por un tiempo muy pequeño y sin importar en la aplicación que se encuentre activa.

El paquete venía con un disco de regalo. amén de una pantallita de vivos colores y una colección de programas fantásticos para todo tipo de actividades. Por ejemplo. entre los que destacan un juego de tenis en tres dimensiones. una maquinita Palm Zire 71. además de jugar contra el contrario humano. Y. Éste es el estándar que describe la notación de una partida de ajedrez. cientos de ellos en la modalidad compartible (shareware) y los hay también de dominio público o freeware. Así. tiene integrada una base de datos de partidas de ajedrez en formato PGN (portable game notation). considerando su pequeño tamaño. cuyo costo no es de más de mil pesos. más cara y costosa que . En este caso olvídese de los asistentes personales que no sean compatibles con Palm o con Windows CE. pantalla de color. pilas recargables. un futbol sóccer de las mismas características y un fascinante juego de carreras de coches que sorprende por su realismo. Imagen 1 El emulador de la Palm. tiene dos megas de RAM y corre a más de 200 Mhz. Pues bien. con un poder de cómputo francamente espectacular. PocketChess Deluxe contiene el PocketChess Companion for Windows. el cual permite integrar nuevas bases de datos de partidas a la Palm. además del clásico software de respaldo y sincronización con la PC. Además. la recomendación es irse con el fabricante líder del mercado. que cuesta 20 dólares. como obsesivo y apasionado del ajedrez. me hice de una Palm Tungsten E. el cual traía seis juegos. tarjeta de expansión de memoria. me permite llevar a los torneos mis bases de datos de aperturas más usadas sin necesidad de tener que cargar con computadora personal. el cual. supera en velocidad doscientas veces a una Apple IIe y tiene veintitantas veces más memoria que la computadora personal mencionada. Es decir. Caben en la palma de la mano y tienen una capacidad de memoria y poder de procesamiento mucho mayor que las computadoras a bordo del módulo lunar de la nave espacial Apolo. que conste. de acuerdo a las preferencias del usuario. estoy hablando del modelo barato de Palm. Cualquier otra plataforma no compatible limitará mucho su radio de acción por. la cual contiene 32 megas. indispensable cuando se programa este dispositivo Todo esto en una computadorcita que cabe en la palma de la mano. por sus siglas en inglés) son verdaderas computadoras. Si usted quiere hacerse de una de estas maquinitas. encontré que este programita. La realidad es que estas dos plataformas contienen muchísimos programas. la falta de software. Otros modelos tienen más de 32 megas de memoria RAM y corren a 400 Mhz. compré semejante artilugio porque vi un programa de ajedrez llamado PocketChess Deluxe. después de experimentar un año completo con la Zire 71. precisamente.Proyectos varios Programando la Palm Los asistentes personales (PDA. La verdad sea dicha.

El sistema shareware tiene un par de limitaciones poco importantes.com. Antes de decidir comprarlo bien puede echarle un vistazo. Hallé algunos sistemas comerciales y otros shareware y freeware. Igualmente. en 20 minutos escasos. de hecho.pdatoolbox.estos PDA. porque finalmente debe haber manera de crear aplicaciones para este juguete. encontré PDAToolbox. Pero lo mejor aún estaba por venir. . Es como una versión superrecortada de un sistema de desarrollo más completo pero hace muy bien la tarea. PocketStudio es Delphi para Palm. Pues bien. Encontré que PocketStudio es la mejor opción si sus antecedentes como programador (como son en mi caso) es Delphi. Lo malo es que cuesta alrededor de 150 dólares. usando PDAToolbox diseñé una demostración de una base de datos telefónica. El código fuente en este caso requiere de PDAToolbox. Me sumergí en la red buscando herramientas para programar la Palm. aunque hay una versión de prueba por 30 días. ya que. Me llevó un par de horas entender la mecánica de desarrollo y hoy. el ambiente de desarrollo. el cual permite crear aplicaciones de bases de datos en pocos minutos. el cual puede ser bajado de www. generé toda mi aplicación. hay miles en el mercado.

Pero incluso esto también se vende. Esto se da incluso cuando hablamos de software. éste viene cubierto por una tinta que protege todo el largo número. aquí se narra tal y como se publicó en un medio de circulación nacional) El mundo de la tecnología casi siempre va de la mano con el de la mercadotecnia. significaba tener un contrato por un tiempo determinado. Alguien inventa un dispositivo X. ya no es de extrañarse ver casi a cualquiera con un teléfono celular o un biper (supongo que se llama así porque hace “bip”). Pues bien. en donde los usuarios de algún servicio de telefonía móvil compra tarjetas con tiempo-aire. La idea es genial. hay que ir a la tienda más cercana y comprar una nueva tarjeta. de manera tal. que resuelve una dificultad Y. ya hay un tercero que está viendo la manera de comercializarlo. Eso. De esta manera. se ha acabado. el clásico protocolo que aceptan dos partes en cualquier negocio. etc. en la central telefónica.Proyectos varios ¿Es usted honrado? (parte I) (A diferencia de los otros artículos de este libro. que curiosamente. pues simplemente no hay manera de usar el teléfono. Imagen 1 El programa generador de IP para telcel Las tarjetas telefónicas no son más que un pedazo de papel –tamaño tarjeta de crédito– que tiene un código que se alimenta al teléfono y entonces nos da tiempo aire. de un teléfono móvil. hacerse. todo el control del tiempo-aire de cada teléfono celular se lleva a través de un software que valida. firmar de aceptado. en lo que respecta a la telefonía celular. cada código de cada tarjeta y entonces el negocio es redondo. sin duda. la cual nos dará más tiempo telefónico.. El comprador entonces usa una moneda para raspar y retirar la tinta y descubrir el código impreso. Para evitar que cualquiera copie el código de la tarjeta de tiempo-aire. con el avance de la electrónica y las telecomunicaciones. Cuando éste se agota. Lo instalamos y el código al final de cuentas son ceros y unos en la memoria de la computadora. es decir. Ahora hay el “plan amigo” (y todos esos nombres agradables y bonitos para cobrarnos). es algo intangible. y en menos de lo que imaginamos. por ejemplo. Nos dan un medio físico en el cual el programa está almacenado. que uno solamente tiene acceso a usar el teléfono por el tiempo contratado. . En un inicio. Si el código alimentado no es correcto. Uno compra un programa que nos permite realizar alguna tarea en la computadora.

el código legal –sin pagar desde luego por éste. lector. ¿qué me contestaría? Invariablemente que sí. ¡gratis! ¿Lo quiere? ¿le gustaría tener tiempo aire sin pagar por él? Mándeme un correo si quiere el programa y le daré instrucciones de cómo hacerse de él. una cadena es tan fuerte como su eslabón más débil. como alguien me dijo cuado vio el programa: “bueno. ¿o no? O vayamos más lejos: ¿No es el costo del teléfono celular carísimo en nuestro país? Nomás compare lo que paga cualquiera en Estados Unidos por ese mismo servicio. si es honrado.Sin embargo. Más de uno dirá que esto es ilegal. Pero bueno. Imaginen entonces que alguien encuentra la manera en como se generan los códigos que otorgan tiempo aire y crea un programita que le da al usuario del mismo. ¿o me equivoco? Pues bien. lectora. sí. Finalmente. me encontré hurgando en la red Internet un programa que da tiempo aire gratis. pero ¿no es ilegal copiar música de discos compactos y pasarla a los reproductores de mp3 como el iPod? ¿O no es ilegal copiar películas en DVD? todo el mundo lo hace. la parte más susceptible de ser atacada por los bandidos cibernéticos. si le pregunto a usted. sin pagar un solo centavo. quien se horrorizará de saber lo que pagamos aquí. ¿verdad?” . es un crimen sin víctimas. y el software en este caso es probablemente.

desde luego. 200 pesos de tiempo aire a la cuenta de dicho celular. que los seres humanos somos capaces de querer obtener beneficios. escribí sobre un programa de computadora que generaba las secuencias necesarias para obtener códigos. todos aquellos que me pidieron (y que recibieron) el software en cuestión. Lo único que hace el programa es un bonito espectáculo con visos científicos (por los letreros que manda cuando éste se ejecuta). si se nos da la oportunidad. Ahumada. en donde aparentemente está generando la clave correspondiente para abonar. Dicho en otras palabras: más de uno habrá pensado alguna vez en si hay forma de hacerse de dinero. Los Bejaranos e Imaz que rondaron hace un par de años por el gobierno capitalino así lo creyeron pero se les pasó por alto que los estaban videograbando. pásamelo. me contestó: “es que es muy caro tener teléfono celular. Hoy día. habrán caído en la cuenta de que dichos programas son un fraude. que era literalmente robar. aunque es una necesidad”. sin pagarlos. Al final le aclaré el truco para que no se fuese con la idea de que no quería ayudarla en su economía. ¿si?” Pero cuando le dije que eso era hacer trampa. y que además. sin comprometerse. . si podemos hacer que todo esto sea anónimo. tan es así es que yo no uso teléfono móvil. Hubo gente que me lo pidió de inmediato. Al momento de escribir esto he recibido alrededor de 30 mensajes de gente que no pudo aguantarse a tan jugosa oferta de hacerse de tiempo para hablar desde su celular sin pagar por ello. El software funcionaba tanto para teléfonos móviles de la compañía Telcel y Pegaso. Cuantimás. quizás de mucho dinero. pero yo solamente me estaba poniendo pesado para hacerle ver lo mal que actuaba insistiendo en que le pasara semejante software.Proyectos varios Es usted honrado? (parte II) Hace unos días (ver artículo anterior). no pueden generar esos códigos que las compañías celulares usan para activar más tiempo a los usuarios de los teléfonos móviles. Imagen 1 Un clásico teléfono celular Cuando comentaba con una alumna de la Ibero sobre este programa de claves telefónicas para tiempo aire me dijo: “yo lo quiero. porque efectivamente. personaje que me sorprendió por sus múltiples negocios en todos los ámbitos existentes en este país. con las consecuencias conocidas en los video-escándalos. Por supuesto que entendía perfectamente su argumentación. daban tiempo aire gratis. que al ser alimentados en el celular. La intención original era mostrar finalmente. ahora parece ser que lo conocen todos los políticos de México. en breves segundos. Le dije que no era una necesidad. los hizo caer en este espectacular gambito.

Ojalá todos actuáramos como el Sr. sin embargo creo que es mejor así. a lo mejor mañana salen videos tricolores o blanquiazules. Tal vez sea también un ser corrupto. pero declino en nombre mío y de mis hijos. entre los que me pidieron el software. así que no son “unos pesos más o menos”. pues Slim es el tercer hombre más rico del mundo y unos pesos más o menos no le afectarán (argumento falso. Evidentemente no es mi idea moralizar ni decirle a nadie si hace bien o mal. dándole yo mismo el ejemplo a mis hijos que apenas son unos niños. podríamos ser capaz de estas actitudes totalmente fuera de la ley (calificadas al menos como robo. Quedo a sus apreciables órdenes”. no bajo de “cerdo” a Slim. negándome a pagar mordidas y si cometo alguna falta y es justo. Si un millón de usuarios usa una sola vez este supuesto programa de tiempo-aire gratis. Atentamente Ing. Te estoy rastreando. es que yo soy usuario de teléfono celular y creo que es perfectamente posible crear un software para robar tiempo aire a las compañías telefónicas. no por algo no das la cara. entonces pagar multas exigiendo mi recibo de la tesorería. Sin embargo. en este caso a la compañía celular). Debo agradecer enormemente a Enricco Wizard (quien ha fallecido hace un par de años).Hubo gente que me escribió diciéndome que no tenía ningún remordimiento en usar este programa. porque no es correcto llevar a cabo lo que haces. recibí un correo que decía esto: Hola morsa: Nuevamente me pongo en contacto contigo. Les confesé por correo privado mi estudio “estadístico”. es algo que esta enquistado ya en nuestra esencia nacional. Algunas veces le he entrado a la mordida por algún motociclista salvaje con mirada de perro. ya que para esto me pagan. pues no hay crimen que perseguir y eso nos libera de una carga innecesaria a todos. Miguel A. Le agradezco su oferta del programa para robar tiempo aire. [. que no nos asombra ya casi nada. Cada quien sabrá cómo actúa y se responsabilizará de sus actos. te recomiendo que retires tu publicidad si no quieres tener legales con el dueño de mi empresa (Ing.. porque yo trabajo en la programación de los mismos y estoy en busqueda de jakers que intentan encontrar la forma de hacer fraude. de cualquier forma espero que como usuario de Telcel y empledo del mismo. Slim). Cabe destacar que como el software no funciona. pero en fin..] Pero el punto al que quiero llegar. Pero la diferencia es que ahora salen a la luz los videos que prueban lo que ya sabíamos. No se a cuenta de qué esa necesidad de insultarlo. no pude nisiquiera ingresar a la liga que anotaste. no lo negaré. pero no me interesa. Pero lo mejor del asunto fue el mensaje que me envió el Sr. Soto Rivera. mi sondeo sobre el tema y mi intención de mostrar que todos (me incluyo). con argumentaciones similares. Quedo a tus ordenes para cualquier duda. ¿quién sabe?. de Villahermosa Tabasco. Lo transcribo tal y como me lo mandó: “He leído su artículo y quiero decirle que tiene razón al hablar que estamos tan acostumbrados a la corrupción. Telmex perdería 200 millones de pesos en un momento). Postscriptum Cierto tiempo después de haber publicado el artículo sobre tiempo aire gratis. al cual felicito por esa contundente negativa a ser cómplice de un fraude. de un acto más de corrupción finalmente. siempre lo hemos sabido. y. creador del software mencionado. hubo un par que me preguntaron si era truco o verdad. Soto. Otro más. Sergio Luna . tendrá sus razones. pero sí creo que podemos empezar a dar la batalla a la corrupción desde uno mismo.

por la Universidad de Essex). Entra a la liga en mi blog: http://la-morsa. no entiendo el problema. De una vez te aviso que no quitaré nada de mi blog. . ¿de verdad crees que lo andaría repartiendo gratuitamente y de forma pública? Como sea. Mi blog tiene mi foto. Esta fue mi contestación: Hola. Pero para que veas lo absurdo de todo el asunto.blogspot. Soy desde hace muchos años un profesional del cómputo (físico por la UNAM y maestría en inteligencia artificial. Ahora bien. de nuevo. porque no hago nada ilegal. El programa que menciono es meramente una broma. Así que tu percepción sobre mi persona está fuera de lugar. fuera de lugar. Si tu trabajo es buscar hackers (con h. está mi correo y con gusto te doy mi teléfono. es extraña tu percepción porque siempre he dado la cara. por si quieres hablarme y discutimos lo que quieras.por un mero estudio estadístico sobre la honradez de los que me leen. un sondeo para saber qué tan honrada es la gente. ni de ninguna otra compañía. Te sugiero que leas lo que escribí después de que hablé del supuesto programa que daba tiempo-aire gratis. me parece lamentable tu amenaza o pseudo amenaza de que me estás rastreando. sólo leyó la primera parte del artículo o quizás nunca entendió las explicaciones del mismo. que estoy convencido has sacado de proporción. porque tus amenazas legales están. supongamos -en beneficio de la discusión. el ingeniero Sergio Luna. En fin. Te reitero que estoy en la mejor disposición de aclarar tu percepción sobre este asunto. pero yo no tengo nada que hacer en ese rubro. No puede generar ningún código ni de telcel. no j). xxxxxxx.html para que veas que todo fue un estudio.Este señor. saludos Manuel López Michelone Finalmente me comuniqué con el ingeniero en cuestión y resolvimos la dificultad cuando terminó por entender que no tenía un programa como el creía. Sergio. ni de pegaso.com/2007/03/tiempo-aire-gratis-para-celulareslas. Quiero saber como de qué me piensas acusar. a ver. pues lo celebro. y no tengo ni ganas ni tiempo para buscar hacer trampas o hallar maneras de defraudar a nadie. dudo que el ingeniero Slim sea tan tonto como para perder dinero y tiempo demandándome -no sé exactamente cómo.que tuviese un programa que me diera tiempo aire gratis.

por ejemplo. para aprender ruso. Sin embargo. al tener que escribir las notas en español y ruso. la cual sin duda le ponía pasión y empeño a su trabajo. Mi plan tenía como objetivo poder leer quizás la literatura rusa de ajedrez. quita mucho tiempo de la programación. ya salen sobrando. y eso. Así. el ruso usa el alfabeto cirílico. hecho en la computadora. porque como bien sabemos. o mejor dicho. La maestra Svetlana Dougar-Jabon es sin duda un pilar en el departamento del ruso en el CELE y me alegró saber que aún está trabajando ahí. en algún momento decidí ir al Centro de Enseñanza de Lenguas Extranjeras (CELE). exalumna mía en Sistemas Computacionales. no está completa. obviamente quitando algunas partes que en mi opinión. Para la cuestión de pronunciación le pedía a Marianna echytalo. para el aprendizaje del idioma ruso. Para el inicio del software puse la imagen que pueden ver en este artículo y le agregué una introducción musical muy rusa (¿y qué mejor que el tema del inicio del juego del tetris?). de manera que sea fácil de alimentar. en algún momento se me ocurrió tomar mi manual de ruso y estudiar por mi cuenta. La cuestión es que muchos años después de estos estudios. . que me ayudara con las frases que quiero alimentar al sistema. No obstante esto. Así que decidí ir al CELE a buscarla con un pretexto: un bosquejo de curso. en la UNAM. Imagen 1 Pantalla inicial del software Me apena un poco regresar y decirle a la maestra Svetlana que necesito prácticamente empezar de cero. Me basé en lo que el manual que tengo dice. puesto que sin práctica estas cosas suelen olvidarse. Es apenas la lección primera y desde luego. Estuve seis semestres con el mismo grupo y la misma maestra. de Ucrania (que a todo esto habla perfectamente español y ruso).Proyectos varios Bosquejo de un curso de ruso Cuando era estudiante de la Facultad de Ciencias. encontré que el lenguaje ruso por sí mismo es fascinante. De hecho. decidí que tenía que re-empezar. he notado que necesito un sistema para poner las partes de gramática. se complica enormemente. después se me ocurrió que mejor sería regresar al CELE para hacer este estudio de manera formal. y salió este programita.

así como la entonación. En fin. esto es apenas un bosquejo. porque el manual de ruso tiene muchas lecciones. mostrando cómo se pronuncian las palabras. porque incluso uno aprende mucha más gramática cuando tiene que armar cada lección. No obstante. La verdad es que es un trabajo monumental. sino también vídeos de Marianna.Imagen 2 Parte de la primera lección Tengo otras ideas para incorporar: no sólo poner el audio de cómo se pronuncia. y eso hace complicado el pasarlas todas a un programa. el esfuerzo puede valer la pena. pero podría progresar en un curso completo (porque no califica como un programa de enseñanza de ruso aún por sí mismo. .

poner en powerpoint cada imagen con algún efecto de transición de una imagen a la que sigue. Sin embargo esto implica que el usuario. Obviamente existen algunas soluciones simples. Ha hecho algunos comerciales y alguna película por ahí. por ejemplo. es decir. que es actriz. Sé que no se ha aplicado lo suficiente para desarrollarse en ese campo porque tiene otras actividades y además.Proyectos varios Portafolio para modelos Todos los nichos de mercado parece que pueden ser atacados desde el mundo del software. A partir de esto se me ocurrió que por qué no llevar el portafolio a los productores en disco compacto. También decidí incluir música de fondo ad hoc para que la presentación del portafolios fuese más atractiva a los sentidos. Son más de una centena de fotografías en buena resolución y entonces me puse en campaña. etc. decidan a quién le dan el trabajo. Le platiqué esto a Isabelle y ella entonces me dio un disco con una sesión de fotos que le hicieron hace algún tiempo. tengo una amiga. película. Isabelle. comparando notas. en algunas ocasiones la llaman para que vaya a hacer el casting para un comercial. o lo que sea. Por ello mismo. por ejemplo. para que los productores puedan registrarlos adecuadamente y ya con las imágenes puedan acordarse mejor de quienes aspiran a conseguir el trabajo en un anuncio publicitario. Prácticamente todos los artistas llevan a estos procesos de casting sus fotos o videos. Sin embargo. Ahí es donde se eligen a los actores y actrices que participarán en el comercial de marras y muchas veces los productores tienen que hacerle pruebas a muchos de los aspirantes para que después. Se podrían leer las fotografías del disco y el sistema daría la opción de hacerlo automático o manual. incluyendo fotos. corto. teléfonos. pensé que la solución era crear un archivo ejecutable que hiciese todo. ahora ya es madre de un niño. Imagen 1 El portafolios de Isabelle . de manera que solamente el productor tendría que poner el cedé en su computadora y de inmediato un sistema automatizado le desplegaría toda la información del actor o actriz. Por ejemplo. quien va a ver este portafolio de fotografías tenga instalado el powerpoint. curriculum vitae.

Para ello decidí que no tenía sentido romperme la cabeza programando las transiciones visuales. para actores y actrices que andan buscando trabajo. es posible modificar el comportamiento del programa para hacer otros portafolios. más fácil de llevar) y le di la primera versión a Isabelle de su portafolio de modelo. Limpié los detalles que no me gustaban. La virtud de mi enfoque es que cambiando las fotografías y un par de archivos de control. . Y no me equivoqué: encontré un componente para Delphi que me hace las transiciones de una fotografía a la siguiente.Un problema a resolver era el de las transiciones entre imagen e imagen. Copié todo a un disco compacto (del tamaño de una tarjeta de crédito para que así sea además. El componente es muy versátil pues tiene muchos efectos que pueden usarse de manera muy simple. Con todos estos elementos a la mano en un par de horas tuve una versión funcional. sino que podría ver si en Internet ya alguien había programado algo por el estilo.

Encontré la solución: usar una biblioteca que sea compatible con Windows y que además. francamente patético. el usuario interesado puede revisarlo y modificarlo a su antojo. Desafortunadamente. comencé a trabajar sobre un programa que permitiera leer un texto en español usando el sintetizador de voz de la tarjeta de sonido.lea un texto en viva voz podría depender de si la tarjeta tiene algún subsistema o interfaz para hacer síntesis de voz. nos permita acceso a la tarjeta de audio particular que el usuario tenga disponible. que apareció en PC Techniques. incluyendo el español mexicano. Los avances son increíbles. lo que se hizo fue hacer que los fonemas del inglés se comportaran —en la medida de lo posible— como si estuviesen en castellano. Sin embargo. Hacer un programa que -por ejemplo. el SAPI 5.3 que Microsoft pone a disposición de los desarrolladores. en la medida de lo posible. Lo primero que pensé es que quizás cada fabricante tenía su propio “driver” (manejador) para hacer síntesis de voz.3 en inglés. en los últimos años las computadoras ya incluyen todos los dispositivos más populares dentro de la misma tarjeta madre (motherboard). encontraremos que lo dice como si fuese un gringo leyendo algo en español.3 se convierte en una puntada. evidentemente eso limitaría las posibilidades de cualquier software. Si nosotros usamos este paquete para pedirle al sistema que lea un texto en formato ASCII. un texto en español. en una curiosidad que no usamos mucho. cómo se liga el programa con el sintetizador de voz y gracias a que se entrega con todo el código fuente. Habiendo decidido esto. tarjeta de vídeo con 24 millones de colores. si observamos cualquier computadora casera. el poder actual de los equipos de cómputo caseros sobrepasa muchas veces las alternativas que se tenían hace apenas un par de años. usando simplemente el sintetizador que SAPI 5. Esto es un sistema de demostración que pretende mostrar cómo se hace la interfaz del usuario. prácticamente cualquier computadora actual contiene una tarjeta de vídeo y otra de audio compatible con el estándar más reconocido en su momento. se tomó la decisión de usar SAPI 5. debido a la manera en que está construido este sintetizador. lector de DVD. o bien. la ciencia y los avances tecnológicos son cada vez más rápidos y ii. uno de los pretendidos estándar en esta industria. modificándolo de manera que use los fonemas ingleses en su modo más españolizado posible. Afortunadamente actualmente la mayoría de las tarjetas de audio tienen esa posibilidad. Así. podemos hacer que la computadora “lea” (por decirlo de alguna manera). gracias a esta biblioteca (que Microsoft incluye en su Windows). Desafortunadamente. Puse pues manos a la obra. el cual es Speech Application Program Interface. de 24 velocidades. Para que este software funcione. Si así fuese. el cual es el manejador del sintetizador de voz. hallaremos probablemente la multimedia. etc. de feb/mar 1995. Microsoft y otras empresas venden sintetizadores con fonemas para otros lenguajes. Las computadoras actuales para la casa contienen muchas una tarjeta de sonido SoundBlaster o compatible. Esto representa muchísima más tecnología que lo que se podía conseguir a nivel laboratorio de cualquier prestigiada universidad hace no más de diez años. Por ello. hay que adquirlos por separado. . Dicho de otra manera. la cual se representa a partir de tarjeta de sonido de alta resolución (mínimo 16 bits en estéreo en canales A/D). algunas inimaginables para la mayoría de los usuarios. es decir. está pensado para el idioma inglés y no para el castellano. es posible modificarlo (vía software). no vienen gratuitamente como el SAPI 5. Con todo respeto. En cierto sentido el SAPI 5. Así. Esta tarea fue realizada por Michael Covington y la explica en su artículo: El Hablador. A partir de esto se me ocurrió qué tan difícil sería hacer un programa que leyera un texto con voz. a través de ésta. sin lugar a dudas. para que hable en español. Esto ocurre porque i.3.3 otorga. es decir. La idea es tener compatibilidad con todas las posibles tarjetas de audio. el cual contiene toda la información relevante y necesaria para hacer que la computadora hable. No obstante.Proyectos varios Sintetizando la voz La tecnología casera ofrece muchas posibilidades.

el siguiente es el de pasar a fonemas las palabras. la palabra ‘astillero’ se termina por convertir en AasstIYyEHEHDXOW que es precisamente lo que dice el SAPI. hay que acentuar ortográficamente las palabras correspondientes. guerra favor ser. particularmente en el artículo escrito por Covington. resta entonces traducir a los sonidos que el SAPI tendrá que decir. para que el programa hable lo más correctamente español. transformar la palabra a los fonemas que la representan. Que sirva como introducción al tema apasionante de la síntesis de voz. Pasar a sonidos que dirá el manejador del sintetizador (ver función fonetics). En este sentido. Teniendo cada palabra. Es de utilidad como una referencia elemental sobre el sintetizador y el cómo se han manipulado los fonemas. buey. La función que hace esto es fonetics.1 qué decir. el siguiente paso es acentuar adecuadamente cada palabra. vaca desde gato. s o vocal. considérese la palabra ‘pelota’. zorro junta Símbolo y w C m n N l r R Ejemplo yo. la función fonemiza la convierte en los fonemas correspondientes. cinco. sino que son los símbolos que representan estos sonidos. Dada la oración a decir.Es importante destacar que la discusión que sigue a continuación no necesita ser seguida por nadie que quiera usar el programa. Una vez hecho esto. El proceso a seguir contempla los siguientes pasos: • • • • Separar las palabras de la oración. quince burro. Mucho ojo. así como los silencios o aspiraciones que debe tomar. Por ejemplo. es necesario consultar la revista mencionada anteriormente. la cual le dice a SAPI 5. Esto quedaría así: ‘astiyéro’. aureola chico mal tener niño lado pero perro Tabla 1 Los fonemas en español Para una descripción más completa de la transformación de los fonemas ingleses al español. Fonetizar la palabra (traducir a fonemas) (ver función fonemizas). No necesita originalmente acento ortográfico. esto no son los sonidos que el sintetizador debe decir. llamar lingüista. Esto se hace a partir de la función ExtractWords de la unit StrngTTT. Analizar cada palabra y acentuarla adecuadamente (ver la función acentua). la palabra pasa a la siguiente etapa del procesamiento como ‘pelóta’. pasa a ser: ‘astilléro’. . Por ejemplo. La pronunciación de las palabras en español es muy fácil de deducir a partir de la manera en que se escriben y eso hace la tarea mucho más sencilla. Una vez realizado este paso. La siguiente Tabla I (resumida) es la de los fonemas en español: Símbolo P T K B D G F S J Ejemplo peso tabla kilómetro. Sin embargo. porque las palabras graves no se deben acentuar si terminan en n. Estos tienen una representación. Así entonces. Habiendo hecho uso de esta función. cosa. es decir. Esta acentuación es artificial. la palabra ‘astillero’ Al acentuarla para procesarla adecuadamente. primero hay que separar las palabras de la oración. Esto quiere decir. para que el Monologue la diga de manera correcta.

Cargue cualquier archivo (modo txt o rtf) y escuche cómo el sistema lee completo el texto. Si todo sale bien. aparecerá la siguiente imagen (ventana): Imagen 1 El software ejecutándose El sistema permite leer un texto completo. Sin embargo.¿Cómo se usa el software? Nos Hablamos (así se llama el programa). ejecute spchapi.exe. como son si la voz que habla es de hombre o mujer. ¿Cómo se Ejecuta os Hablamos? Una vez habiéndose asegurado que SAPI 5. Debido a que éste programa es meramente experimental. simplemente córrase Nos Hablamos. Para ello. Nos Hablamos asume que existe instalado el SAPI 5. permitir que el usuario dicte por voz a un procesador de palabras. También puede reconocer palabras.1 está instalado. el cual viene incluido en este sistema para que Windows pueda usar la parte de audio y voz (sin necesidad de instalar todo el SDK). o que dé instrucciones habladas. así como la velocidad y el volumen de audio de la misma.3. por ejemplo. los cuales vienen en SAPI 5. requiere de una serie de archivos de Windows.3 para poder hacer uso del sintetizador de voz. Hay que decir que en Windows Vista el sistema no funciona. Cabe señalar que SAPI hace más que síntesis de voz. . también es posible solamente instalar los manejadores mínimos para que el sistema funcione. No sé las razones pero ya estoy investigando al respecto. El sistema tiene parámetros que pueden ser cambiados. Es un sistema que al menos ocupa 150 megas al bajarlo del sitio de Microsoft.

¿Por qué os Hablamos? La historia tiene algunos años.. en la vida del autor de este software.. Puede para muchos ser el equivalente al “hasta luego”. me decía... esta frase significaba mucho pues cierta mujer divina me lo decía al despedirnos. “ os hablamos”. En cierto momento. y permitía seguir la liga de la relación más adelante. . en lugar del “adiós” pero en mi caso iba más allá. Este software va dedicado precisamente a ella.

le incorporé unos cronómetros internos para medir el tiempo que el sistema pasa en cada aplicación activa. nos puede quitar muchas horas laborables en simpáticas pláticas. el propio programa puede mandar un correo al administrador de la red. hay un programa más que cada vez se hace más presente en todos los ámbitos: el mensajero electrónico instantáneo. en las oficinas. veremos que la mayoría de los equipos de cómputo casero hacen las labores clásicas de editar textos. a través de los múltiples paquetes que para esto existen. Sonaba realmente como reto interesante y puse manos a la obra. consultar bases de datos. la cual permite tener acceso a un buen número de funciones que normalmente los programadores de aplicaciones comunes y corrientes no necesitan. Sin embargo. o al jefe. Si el usuario se sale de esa plática y se pone a usar otra aplicación como Excel. entonces el sistema medirá el tiempo que utiliza cada una de esas aplicaciones. se puede escribir una rutina que revise qué aplicaciones están siendo ejecutadas y además. aunque uno solo es el que está activo en la máquina. tanto privadas como gubernamentales. Yo ya podía saber cuando alguien entraba a platicar en el mensajero instantáneo de Microsoft (msn Messenger). sin nos descuidamos. Si regresa a una plática. entonces el cronómetro empiece a marcar el tiempo. Se les ve en todas partes. gracias a las pláticas por la red. En los sistemas multitareas como Windows. que indique cuánto tiempo el usuario pasó en cada aplicación. si nos adentramos más en este fenómeno. Encontré entonces que gracias al API. se reduce. Al final del día. De esta manera. el software entonces regresa al cronómetro del Messenger y sigue sumando segundos. veremos que la computadora se ha adueñado de muchísimos espacios cotidianos. Acto seguido. y usando Delphi como herramienta de programación. a quien se desee. Debido a esta problemática. el primer paso estaba realizado. realizando presentaciones multimedia. Word.Proyectos varios ¿Son sus empleados productivos? Si meditamos un poco. cuál es la aplicación activa. aunque sigue siendo de 8 horas. hacer cálculos por demás complejos usando una hoja electrónica (como Excel) o bien. Igualmente. ya son tan comunes como el teléfono. sino que el problema es que muchas veces nos quitan tiempo valioso para nuestras labores académicas o de trabajo. Se les encuentra en las casas particulares. en 6 o menos. Powerpoint o Photoshop. el programa que permite comunicarnos con otros usuarios de computadoras a través de Internet y que. La dificultad comienza cuando se exagera el uso de esta herramienta y entonces nuestra jornada de trabajo. Así. En muchos sentidos la pantalla (el monitor) y el CPU (la computadora). es decir. Es cierto que hay equipos de personas que tienen que comunicarse entre ellos por diferentes razones laborables y el mensajero es una estupenda solución. Y no es que tenga algo de malo comunicarse con otros usuarios a través de la gran red. se pueden tener varias aplicaciones (programas) abiertos. un buen amigo me sugirió escribir un programa para llevar el control de este fenómeno. a una hora determinada. en el cuarto de los hijos. escribí el código necesario para que cuando un usuario entre a platicar con alguno de sus contactos. Hallé que Windows tiene una gran biblioteca de funciones (llamada API por aquello de Application Programming Interface). .

Sí. tendrán razón para amonestar a quienes abusen de la mensajería instantánea por Internet. además de pretender con esto minimizar el tiempo perdido con todas estas pláticas inútiles pero divertidas. Pensemos que actualmente nadie en una oficina podría hablar por horas en su tiempo laboral. sé que es un programa espantosamente fascista. Con la red es posible regresar a esta práctica y la verdad es que los empleadores. pero el reto técnico me animó a hacerlo. para platicar con sus amigos y familiares. . en algún momento.

they sent me over 5.000 pieces of plastic to scan! Q . and what types of images to make it from. Details in a Photomosaic may be smaller than a tile and regions within one tile may add to the overall design. So we looked at those images and decided to make a Photomosaic of Abraham Lincoln.I see what I have images of and then select an appropriate subject. A mountain range in one tile.” A . for example. but for now I prefer to keep my custom tools for myself. When I graduated. The Photomosaic forms the subject on its own.I use computers such as Silicon Graphics workstations with over 30 GB of disk space and 256MB of RAM. they provided me with images from their collection of Americans and I made the Statue of Liberty. The software tries to pick the tile that is the most visually similar to that area. Likewise. designed to create and license them. When the Library of Congress wanted me to make a poster for them.What do you think is the correct relationship between the dimension of the “pieces” and the distance of the viewer? . I then use a photograph of the main overall subject as a reference.I created Photomosaics as a class project while a student at the MIT Media Lab.What are your computer needs? A . The first step is to decide what subject to make. I need far more tiles to consider during the selection process than end up in the mosaic.Is it all automatic? A . for each grid spot on the mosaic. This is because I eliminate many that do not have the right qualities. I do not want to market software products because I do not want to create a computer company. my software compares all of the available photographs with that area of the overall subject image. I just want to make artwork and I build tools to help do this. Q . or the brightness.I see that the individual pieces of the Photomosaic are related in content to the larger subject.I prefer to work with clients that have their own collection of images. I do not blend an image of the subject with the mosaic. I then view the mosaic from a distance and decide to remove tiles that visually draw attention to themselves. My software considers hundreds of aspects of each photograph during the selection process. 2. Then.There is also a lot of hand work involved. When I created the cover of the Stock Market Photo Agency’s catalog (American Mosaic). when I did an ad for Mastercard made from thousands of credit cards.Do you think that this technology could be sold like a “normal” software? A . they told me that most of the images in their National Digital Archive were from the American Civil War.Each tile in a Photomosaic is much more than a pixel. Q . called Runaway Technology. may end up as an eyebrow on the main subject. but also the shapes of objects within the tiles.Was Photomosaics an MIT project or your own project? A .Apéndices Apéndice I Entrevista con Robert Silvers (sin traducción por aquello de ¡Traductor traidor!).000 is a good start but I prefer much more. and limit my image database to tiles of the desired subject. The Photomosaic is not done until it passes several iterations of this. Q . During development. Do you have a “giant-archive” of images or did you make an agreement with a stock agency ? A . I turned the idea into a company. I look at the mosaic up close and remove tiles where I do not like the content or subject matter. It is not simply the color of the tile. Also.Yes. It often works that way -. Q . Q . A 1996 Interview with Silvers: Q .How does the software choose the images? Is it only about color and density or do you use a trick that allows a tile to be better than a “pixel.

or do you produce only one version of the image and later resize it with a program like Photoshop? A . I try to generate a file the size that I need.When I was still a student at MIT. Q . For example.There are several lines of Photomosaics merchandise coming out.Can you produce the same image with lots of resolutions. It won Best of Category for digital printing out of 5. Somewhere in between. The more tiles in a Photomosaic the easier it is to see the overall subject up close. Q . these views cross over.After I compute a Photomosaic (decide the location of tiles). if the Photomosaic were to be used on a postcard I could not use as many tiles as if it were going to be a poster because if I did each would be too small to see. including a collection of jigsaw puzzles from Buffalo Games and a series of 10 posters available from Portal Publications.For Mastercard I made a Photomosaic of George Washington’s face from 5000 Mastercards.What is your association with the magicians Penn & Teller? A . The Library of Congress is already selling a poster that I made of Abraham Lincoln composed of Civil War photographs from the Library’s National Digital Archive. and it was shown on TV 425 times. Q . or a little larger. Runaway Technology has applied for a trademark on the word “Photomosaics” and the whole process is based on patent-pending technology.A .Hewlett Packard won an award using a Photomosaic that I created for them. How did this happen? A . Penn and Teller came to visit the Media Lab and as soon as I showed them a sample of output from my newly-developed Photomosaic project. Q .000 images are stored on my Silicon Graphics workstation at various resolutions that allows me to generate the bitmapped file at different sizes.and wrote me a check on the spot (so I would not use school funding to do something as trouble-attracting as making the image he requested).Finally. The mosaic was of an image of Italy.Have Photomosaics won any awards? A . When viewed from afar one should only see the main image.After I did the cover for Wired. Q . Penn was the first person to commission me – he wanted me to make an image of a subject too controversial to even mention here . one of Bill Gates’ friends approached me to make a portrait of Bill as a 40th birthday gift. He wanted to know in detail how the process worked and we brainstormed for about 15 minutes over various ideas before we decided that I would do one of him. A . If I have very few tiles you may have to be very far away to see what the subject is. Neil Schwartzen of the LOC (202/707-5112) says it is the best selling poster the Library’s gift store has ever carried.Do you have plans for merchandise? A .I heard you were commissioned to do a portrait of Bill Gates . A Photomosaic is an image on multiple scales. I generate the bitmapped file. Q . Q .Al Gore came to visit the Media Lab and I showed him my work.I design a Photomosaic to be viewed from various distances depending on the media in which it will be reproduced. so I have to estimate the viewing distance to help decide where this cross over point should be. When viewed from up close one should only see the individual tiles. they each had to have one.What about Vice President Gore? A . then use Photoshop to fine-tune the size. Over 100. 21 million copies of the ad were printed.Yes.Does Photomosaics use proprietary technology? A . I also must be careful to allow each tile to be visible. Q . .200 entries in the 1997 Premier Print Awards given by the Printing Industries of America. I like to keep them at least 1cm wide. tell me more about the ad you did for Mastercard.

Para generar la imagen JPEG el software pide el nombre del archivo de texto creado y entonces lo procesa directamente en pantalla. Fragmento de la imagen armada con el visualizador Figura 23 Una vez generada la imagen. . el cual contempla no sólo ver el fotomorsaico creado. Se recomienda usar la extensión JPEG en las imágenes creadas para evitar confusiones con las de la biblioteca de imágenes (que son todas JPG). se puede usar la opción “Guardar a disco”.Apéndices Apéndice II Programa visualizador de los fotomorsaicos Otra aplicación de soporte para el software de los fotomorsaicos es un programa desplegador de los mismos. sino guardar la imagen creada en un archivo en formato JPEG. con 128 megas de RAM y 6 gigabytes en disco duro en resolución de 800x600 pixeles a 16 millones de colores. La siguiente imagen muestra el software visualizador corriendo sobre un archivo de prueba (cuya terminación es txt y del cual ya se habló de su estructura en la discusión de la obtención de los resultados. Cabe señalar que para poder crear el fotomorsaico el archivo TXT a procesar debe estar en el mismo directorio donde residan las imágenes ya que éstas se leen del disco duro en el momento del procesamiento de la información. Notas técnicas: Desarrollado en Delphi 5. en una máquina Pentium III.

El programa toma una imagen JPEG y se puede magnificar la región que se desee. de manera tal que puedan analizarse los detalles de cada fotomorsaico realizado. He aquí la función de cada icono: Carga la imagen JPEG de alguna unidad del disco duro Permite amplificar la imagen (zoom in) poco a poco Permite alejarse de la imagen (zoom out) poco a poco Permite incluir/quitar barras de scroll sobre la imagen para moverse a lo largo y ancho de la misma. Figura 24 Lupa por software . El sistema tiene las opciones como iconos. Termina la ejecución del software La siguiente imagen muestra este software corriendo.Lupa por software También es posible utilizar un lente magnificador (lupa) escrito por software.

Una vez generado el archivo de salida se puede crear una imagen usando el programa de despliegue y creación de imágenes JPEG o bien. ya que el software permite más de una colección. el cual se debe guardar (estrictamente necesario) en el mismo directorio en donde se encuentra la colección de imágenes. El sistema tiene opciones que le pedirán: 1. A saber: • Velocidad del procesador central (CPU) • Modo de depuración apagado (no mostrar avance en el desarrollo de la generación del sistema) . Nótese que el tiempo necesario para la creación del fotomorsaico depende de varios factores. los cuales son: • • • • Generador de fotomorsaicos (versiones para Windows9x y para la interfaz www) Procesador de la colección de imágenes Programas de estadística y monitoreo del software Programas de despliegue de resultados • Programa visualizador de fotomorsaicos • Lupa por software • Bonus (presentaciones animadas) Generador de fotomorsaicos Este programa genera el fotomorsaico considerando que ya existe una colección de imágenes preprocesadas de acuerdo con el Procesador de la colección de imágenes (véase más adelante). Para llamar al programa úsese la consola de comandos. la cual puede ser BMP o JPG y se elige una colección específica de imágenes (los mosaicos). para ser procesado con el software generador de imágenes. el cual se da como un archivo HTML (para ser visto de inmediato en el navegador de Internet de su preferencia) o bien TXT. en una máquina Pentium III. Una vez teniendo toda la información necesaria el sistema genera un archivo HTML y otro TXT con el fotomorsaico particular. El generador necesita de la lectura del archivo imagen. 2. 3. se elige un nombre para el resultado (archivo de salida). Este último no requiere de extensión porque el generador crea dos archivos. Notas técnicas: Desarrollado en Delphi 5. El nombre de la imagen a procesar El directorio en donde reside la colección (biblioteca) de imágenes El nombre de archivo de salida. Una vez seleccionado esto. con 128 megas de RAM y 6 gigabytes en disco duro en resolución de 800x600 pixeles a 16 millones de colores.idx. usar el navegador de html de us elección para ver el resultado final.Notas técnicas: Desarrollado en Delphi 5. El generador de fotomorsaicos toma una fotografía escaneada (cualquier imagen). Apéndice III Los programas El sistema generador de fotoMORSAicos se basa en varios subsistemas. uno con extensión ‘txt’ y otro con extensión ‘html’. con 128 megas de RAM y 6 gigabytes en disco duro en resolución de 800x600 pixeles a 16 millones de colores. en una máquina Pentium III.

Este archivo es necesario para que el generador pueda trabajar. El Procesador de la colección de imágenes genera entonces un archivo de texto llamado “imagen. El Procesador de la colección de imágenes simplemente toma cada imagen JPEG que encuentra en el directorio deseado. considerando a la imagen toda como si fuese un mosaico de un solo color sólido. Guarda además el número de color de acuerdo a como Windows maneja las tarjetas de vídeo de 24 bits y por último.idx”. cuya estructura ha sido analizada antes.Este modo de depuración se puede habilitar o inhibir en la medida de las posibilidades. He aquí la imagen del programa cuando éste es ejecutado (vea siguiente figura) Figura 20 Procesador de la colección de imágenes Este programa permite generar un archivo que indexa las imágenes a través de sus colores promedio. la procesa aplicando un filtro mosaico y entregando el color promedio en tripletas RGB(R.B).G. Una imagen que muestra dicho software se presenta a continuación: Figura 21 . guarda el nombre del archivo de la imagen.

Programa de estadística y monitoreo del software Este programa básicamente mide la cantidad de colores disponibles en la colección de imágenes. en una máquina Pentium III. aproximadamente).idx para analizar los colores. Es sólo una ayuda al programador (y por ende no se incluye en la consola de comandos). La siguiente figura muestra una imagen del mismo: Figura 22 Así se puede entender por qué el generador no encuentra un determinado color o bien la selección resulta a todas luces ridícula.Notas técnicas: Desarrollado en Delphi 5. . Este programa hace uso del archivo imagen. Es un sistema muy elemental y solamente fue escrito para encontrar cuáles colores son los que faltan y cuáles son los que se tienen en exceso. El sistema generador de mosaicos puede trabajar sin necesidad de este subsistema. los cuales están dados en 16 rangos (un millón de colores por rango. con 128 megas de RAM y 6 gigabytes en disco duro en resolución de 800x600 pixeles a 16 millones de colores.

Sign up to vote on this title
UsefulNot useful