Automágica: durante 2017 estoy trabajando bastante en Automágica, mi software para editar libros: Más información - Posts relacionados

Rompecabezas T (solución)

Ayer dejé planteado un rompecabezas, ¿pudieron solucionarlo? Cuando empezamos a probar nos costó bastante, el juego fue la atención de la noche hasta que desistimos. Incluso empezamos a elaborar teorías sobre el Pensamiento Lateral, aventuramos que el resultado sería algo deforme, incluso que la T se formaría con espacios en blanco y las maderas al rededor.

Bien, no. La solución, una vez hallada, no parece muy complicada. Si no pudiste resolverlo y como nosotros te pusiste a elaborar teorías para proteger tu amor propio: lo siento, simplemente no pudiste resolverlo.

A continuación la solución:

2 partes

3 partes

T armada

Sobre el juego

El juego es producido por La Parra, taller de juegos. Santa Fe, 9 de julio 4843.


Rompecabezas T (enunciado)

Este fin de semana lo estoy pasando en Pellegrini. Llegué anoche y fuimos a comer con mi familia. A la vuelta vino mi aigo Joel y mi mamá nos dió un rompecabezas hecho en madera bastante interesante. Consiste en 4 piezas de madera que hay que disponer de cierta forma para formar una letra T mayúscula.

Las piezas son las siguientes (como son de madera, podemos darlas vuelta y usarlas del lado que más nos convenga):

Amarillo

amarilloamarillo 4amarillo2amarillo 3

Azúl

azul 3azulazul 4azul 2

Verde

verdeverde 3verde 2verde 4

Rojo

rojorojo 2rojo 3rojo 4

Ya antes en el blog había planteado este tipo de juegos, se los dejo para pensar un poco. Mañana la solución.

UPDATE: solución al rompecabezas.





Programar

Estoy leyendo el libro Structure and Interpretation of Computer Programs.SCIP

De su primer capítulo:

Vamos a estudiar la idea de proceso computacional. Los procesos computacionales son seres abstractos que habitan las computadoras. A medida que evolucionan, los procesos manipulan otras cosas abstractas llamadas datos. La evolución de un proceso es dirigida por un conjunto de reglas llamado programa. Las personas crean programas para dirigir procesos. En efecto, conjuramos los espíritus de las computadoras con nuestros hechizos.

Un proceso computacional es, en efecto, como la idea que tiene un hechicero de un espíritu. No puede ser visto o tocado. No está compuesto de materia. Sin embargo, es muy real. Puede realizar trabajo intelectual. Puede responder preguntas. Puede afectar el mundo desembolsando dinero en un banco o controlando un brazo robótico en una fábrica. Los programas que usamos para conjurar procesos son como los conjuros de un hechicero. Ellos son están hechos a partir de expresiones simbólicas y esotéricos lenguajes de programación que prescriben las tareas que queremos que nuestros procesos realicen.

Un proceso computacional, en una computadora funcionando correctamente, ejecuta programas en forma precisa y exacta. Así, al igual que un aprendiz de hechicería, los programadores novicios deben aprender a entender y anticipar las consecuencias de sus conjuros. Incluso los errores pequeños (usualmente llamados bugs) en los programas pueden tener complejas e inesperadas consecuencias.

Afortunadamente, aprender a programas es considerablemente menos peligroso que aprender hechicería, por que los espíritus con los que lidiamos están convenientemente contenidos de forma segura. La programación en el mundo real, sin embargo, requiere cuidado, experiencia y sabiduría. Un pequeño error en un programa para diseño asistido por computadora, por ejemplo, puede llevar al colapso catastrófico de un avión o un dique o a que un robot industrial se auto destruya.

Los grandes ingenieros de software tienen la habilidad de organizar los programas de forma tal que que pueden estar razonablemente seguros de que el proceso resultante realizará las tareas que se deseaban. Pueden visualizar el comportamiento de sus sistemas. Saben como estructurar los programas de forma que los problemas no anticipados no lleven a consecuencias catastróficas, y cuando los problemas aparecen, pueden debugear sus programas. Los sistemas computacionales bien diseñados, como los automóviles o reactores nucleares bien diseñados, son diseñados en forma modular, de esta forma las partes pueden ser construidas, reemplazadas y debugeadas en forma separada.


Para vos Freud!

Feliz día mamá!

Para vos Freud

Día de las madres, 2007


Viendo a los conectores lógicos como relaciones entre conjuntos

Mi amigo Joel estudia Filosofía en Rosario y este fin de semana estuvimos charlando sobre lógica. Durante la charla me enseño que los conectores lógicos se pueden pensar como relaciones entre conjuntos. Yo nunca los había visto así.

Esta forma de pensarlos es a veces muy útil y sirve para darnos cuenta cual es el conector indicado para representar cierto conocimiento. Por ejemplo, muchas veces me encontré queriendo representar conocimiento del tipo "Los conejos son blancos" y errónea e instintivamente escribía:

B(x): x es blanco

C(x): x es conejo

C(x) ^ B(x)

Lo cual es un error. La forma correcta de representar ese conocimiento es:

C(x) -> B(x)

La implicación entre C(x) y B(x) puede entenderse una forma muy simple:

C es el conjunto de todos los conejos y B es el conjunto de todas las cosas blancas.

Recordemos que la información que queremos representar es "Los conejos son blancos", enfatisando: Todos los conejos son blancos. No hay conejos grises o negros, todos son blancos.

El ejemplo en cuestión no era este, sino otro, pero lo importante es que Joel me explicó que la implicación es equivalente a la relación entre conjuntos de inclusión e hizo un dibujo parecido a este:

Conejos blancos

En el dibujo se ve claramente el exacto conocimiento que queríamos representar: si algo es conejo, entonces es blanco. Si pertenece al conjunto C entonces pertenece al conjunto B. Porque el conjunto B incluye al conjunto C. El conjunto de las cosas blancas incluye al conjunto de los conejos.

El resto de los conectores lógicos también pueden verse como relaciones entre conjuntos.

AND : intersección

AND o conjunción, muchas veces simbolizado con ^, es verdadero cuando los dos predicados que conecta lo son. Así pues B(x) ^ A(x) será verdadero cuando x pertenezca tanto a B como a A.

AND sin corchetes

OR: unión

OR o disyunción es una relación menos estricta ya que para ser verdadera solo necesita que uno de sus predicados sea verdadero. En el ejemplo anterior, que x pertenezca a B o a A. Eventualmente podría pertenecer a ambos conjuntos.

OR sin corchetes

XOR: unión - intersección

Unión MENOS intersección. La disyunción exclusiva es verdadera cuando x pertenece exclusivamente a uno de los conjuntos, pero es falsa cuando pertenece a ambos.

XOR

-> : inclusión

Es el caso del ejemplo de los conejos con el que empezó este post.

IMP sin corchetes

<-> : mutua inclusión

La doble implicación es un caso especial de la implicación ya que se define como A -> B AND B -> A. Así mismo su representación en forma de conjuntos es un caso especial de la inclusión. En el dibujo puede verse claramente que cuando decimos A(x) <-> B(x) estamos diciendo que cualquier elemento x que pertenezca a A también pertenece a B.

bimp

NOT : no pertenencia

Todos los conectores pueden pensarse como conjuntos: NOT A(x) significa que el elemento x no pertenece a A.

NOT

Para finalizar: todos los conectores lógicos pueden pensarse como relaciones entre conjuntos. Si se crean conectores a partir de algunos de los listados anteriormente, también se podrán definir las relaciones entre conjuntos correspondientes.


Una historia de emoticons

El 19 de septiembre de 1982 a las 11:44, hora de la costa este de los Estados Unidos, Scott Fahlman proponía en medio de una serie de mensajes medio en serio y medio en broma el uso de la secuencia de caracteres :-) para denotar que algo se estaba escribiendo en broma en un mensaje que decía:

19-Sep-82, 11:44

From: Scott E Fahlman <Fahlman at Cmu-20c>

I propose that the following character sequence for joke markers:

:-)

Read it sideways. Actually, it is probably more economical to mark things

that are NOT jokes, given current trends. For this, use

:-(

Que traducido quiere decir:

19-Sep-82 11:44 From: Scott E Fahlman Propongo que se utilice la siguiente secuencia de caracteres para marcar lo que sean chistes: :-) Se lee girando la cabeza. De hecho, probablemente sería más práctico marcar las cosas que NO sean chistes, dado como está el patio. Para eso, se podría usar :-(

La propuesta cayó bien, fue ganando apoyo en la CMU y luego en otras universidades y empresas, se fue difundiendo por Internet, y el resto, como se suele decir, es historia y ahora hay montones y montones de emoticonos distintos para indicar otras tantas cosas (http://es.wikipedia.org/wiki/Emoticono#Estilo_occidental).

El propio Scott Fahlman reconoce en la página Smiley Lore :-) que es perfectamente posible que se le hubiera podido ocurrir utilizar estos mismos caracteres antes a alguien, pero dice que nunca ha conocido a nadie que diga tal cosa y que nunca ha visto ninguna prueba de que esto hubiera sucedido.

Pero casi más curiosa que la del origen del smiley en sí es la de como se recuperó el mensaje original de Fahlman, que durante mucho tiempo se consideró perdido pues ni él ni nadie lo habían guardado porque en su momento nadie pensó que pudiera llegar a tener una relevancia tan especial; desde luego es como para pensar otra vez más si no formamos parte de una civilización virtual.

Así, después de varios intentos fallidos anteriores para localizarlo Mike Jones se propuso encontrar el mensaje en cuestión y en febrero de 2002 se puso a repasar el código fuente de los programas bajo los que corría el sistema de mensajes en los que fue publicado el de Fahlman para averiguar qué nombre podía tener el archivo en el que se guardaban los mensajes.

Con esta información se puso en contacto con Howard Wactlar, el antiguo director de los servicios de informática de la CMU, para ver si se podrían recuperar esos ficheros. Watclar y Bob Cosgrove, quien en ese momento dirigía los servicios de informática de la universidad, descubrieron que aún había almacenadas cintas con copias de seguridad de la época en la que

Fahlman más o menos recordaba haber escrito el mensaje… el problema era localizar un lector y un ordenador que fueran capaces de leerlas, además de localizar las cintas en sí.

Dave Livingston encontró una unidad de cinta de 9 pistas que aún funcionaba, que conectada a un ordenador con FreeBSD instalado permitió leer las cintas que Kirk Berthold y Michael Riley finalmente localizaron almacenadas en otro lugar, y, finalmente, Jef Baird se encargó de ir leyendo cinta tras cinta de las que aún funcionaban hasta que el 10 de septiembre de 2002 por finlocalizó el mensaje en cuestión, poniendo fin a un interesante ejercicio de arqueología informática al que el propio Fahlman llamaba el «Proyecto Celacanto Digital».

El hilo de discusión en el que fue publicada la propuesta de Fahlman, junto con una descripción más detallada del proceso de recuperación de este se puede leer en el hilo original :-) (http://www.cs.cmu.edu/%7Esef/Orig-Smiley.htm).

Fuente: http://www.microsiervos.com/archivo/internet/cuarto-siglo-emoticonos.html

Gracias Gustavo por pasarme este artículo por mail.


Un fin de semana resfriado

Este post iba a estar titulado "Nos vemos el lunes", por que venía a mi pueblo por el fin de semana largo. Lamentablemente estuve resfriado todo el fin de semana y tuve que usarlo para cuidarme.

El resfriío se cura solo en 7 días y con el médico en una semana.

Luego de esta reseña de saber popular, los dejo! Empieza Ver para leer.