¿Cuál es la diferencia entre Facebook y Twitter?
29 de marzo de 2011
De gira por Sonora
Publicado por
Raúl
0
comentarios
Etiquetas: emprendedores, innovacion
8 de octubre de 2009
My ramblings on time travel (in fiction)
Hace un par de noches estaba leyendo un panel de discusión sobre la película "The Time Traveller's Wife" ("Te amaré por siempre" en la ingeniosa traducción) y uno de los participantes argumentaba que existía un grave error, según las reglas de viaje en el tiempo presentadas en esa película, sobre lo que el personaje principal podía o no podía hacer en sus escapadas en el tiempo. A mí me parece que TTTW es una película que logra ser fiel a sus propias reglas sobre el viaje en el tiempo, y el libro en el que está basada aún más.
Por eso me pareció divertido leer a toda una serie de bloggers mostrando sus argumentos de por qué TTTW no presentaba errores en las acciones del personaje, y cómo a nuestro excéptico amigo no le cabía en la cabeza ninguna de esas explicaciones. La lectura por supuesto me llevó a realizar mi propio análisis de la película, y con éste, a comparar con otras de las muchas películas que he visto y que involucran viaje por el tiempo.
De este modo, y sin más preámbulo, les presento, amigos cibernáutas, mis propias reflexiones sobre la dinámica del viaje en el tiempo, y su uso (y abuso) en la ficción. Después pondre mi muy personal, nada humilde y definitivamente subjetiva opinión sobre la calidad de la consistencia interna en diferentes películas y libros.
Perdón por el inglés, pero finalmente, esto fue una respuesta a un blog en ingles
Continuara
Publicado por
Raúl
0
comentarios
9 de mayo de 2008
Entre paréntesis y lenguajes funcionales
Por ahora, me dispongo a traducir el pequeño programa que presenté en mi columna.
Este programa, escrito en el lenguaje Scheme, me gusta porque muestra la expresividad del lenguaje y el poder del cálculo lambda, en el que está basado. De manera adicional, demuestra algunos conceptos interesantes de teoría de la computación.
Primero defino la semántica de las expresiones define y λ, así como el uso de funciones:
- (define var expr) asigna el resultado de evaluar la expresión expr a la variable var;
- (λ (x) expr) define la función que recibe el parámetro x, y que regresa el resultado de evaluar la expresión expr;
- (f x) evalua la función f con el parámetro de entrada x.
Con estas definiciones podemos olvidar los paréntesis y nuestra expresión se ve menos intimidante:
(define infinito (λ ( ) ((λ (f) (f f)) (λ (f) (f f)))))
Así, infinito es el nombre de una función sin parámetros de entrada que, de ser evaluada, regresa la expresión de color rojo. esta expresión en rojo es muy interesante. Veámosla a detalle, coloreando sus partes:
((λ (f) (f f)) (λ (f) (f f)))
Las expresiones verde y roja son de hecho la misma expresión, y ahora debe ser sencillo para el cibernauta descifrarla: (λ (f) (f f)) es la función de parámetro f que regresa la expresión (f f) . Esta última, a su vez, ¡sería una función f evaluada en sí misma!
Con esta expresión vemos una de las características de los lenguajes funcionales: las funciones son ciudadanos de primer orden y pueden tratarse como cualquier parámetro o variable.
Descifremos al fin nuestra expresión:
- (λ (f) (f f)) es una función que recibe la función f como entrada y regresa f evaluada en si misma. Llamemos a esta función cenzontle;
- ((λ (f) (f f)) (λ (f) (f f))) es la función cenzontle evaluada en sí misma; lo interesante de la función cenzontle es que, al ser evaluada en sí misma, regresa exactamente la misma expresión, esto es, ¡la función cenzontle evaluada en sí misma! Este es uno de los ejemplos más simples y no triviales de un programa que se escribe a sí mismo (Esta función se conoce como la función Ω -Omega- en cálculo lambda);
- finalmente, llegamos a nuestra expresión original, (define infinito (λ ( ) ((λ (f) (f f)) (λ (f) (f f))))), que de manera simple y elegante, define infinito como una función que, al ser evaluada, regresa a la función que se replica eternamente a sí misma.
Para más información sobre Scheme y el calculo lambda pueden consultar la sección sobre el tema del sitio de Think Artificial.
Publicado por
Raúl
0
comentarios
Etiquetas: cálculo lambda, lenguajes funcionales, programación, Software Guru
6 de marzo de 2008
Recuento del BRM
Estoy de regreso de Ginebra, completamente exhausto pero muy satisfecho. El trabajo de las delegaciones ha enriquecido mucho el cuerpo del estándar. Participé en comites "ad-hoc" para revisar el tema del formato de fechas y el tema de formatos de transición (nombre que se le asignó a los archivos creados en versiones viejas de Office). También pude intercambiar comentarios sobre aspectos de internacionalización con uno de los delegados de Israel, y me queda clara la preocupación que la delegación de Malasia tiene por proteger su industria del software (Malasia muy probablemente votará NO al estandar).
En cuanto a México, nuestra delegación no podría haber sido más polarizada, sin embargo logramos hacer un buen trabajo, consiguiendo que en nuestras dos participaciones el pleno aceptara nuestras propuestas e integrándonos a las diversa discusiones y grupos de trabajo.
No todo es miel sobre hojuelas, dado lo controvertido de este estándar. Creo que la narrativa de Tim Bray, de la delegación canadiense, sumariza las distintas complejidades del BRM. Por otro lado, la recopilación de Brian Jones sobre las resoluciones tomadas a lo largo de los cinco días del BRM es un indicador de la cantidad y calidad del trabajo realizado.
En unos días, se tomará una decisión sobre la aprobación del estandar. Primero en México, dentro del comité de software convocado por la Dirección General de Normas. Posteriormente la decisión de ISO.
Por lo pronto, sólo espero. Mientras, puedo decir que me siento muy satisfecho y afortunado de haber participado en este proceso. Buenas noches, cibernáutas.
Publicado por
Raúl
2
comentarios
26 de febrero de 2008
BRM en Ginebra
Estoy en Ginebra, a dos días del BRM. Ha sido una discusión interesante, con las delegaciones de cada país presentando sus comentarios a las respuestas de ECMA sobre su propuesta para que OOXML se convierta en el estándar 29500 de ISO.
Me ha tocado participar de cerca con la delegación canadiense, algo muy interesante dado que, aunque algunos de sus integrantes son muy vocales en su rechazo a ISO 29500, tienen propuestas muy claras sobre las mejoras al estándar y un equipo muy dinámico dispuesto a hacer realidad estas mejoras.
Mis pláticas con los canadienses se extendieron hasta bien entrada la tarde y estoy exhausto, pero se renueva mi opinión sobre el calibre de muchas de las personas que han venido al BRM, y el ímpetu para mejorar el texto del estándar.
Publicado por
Raúl
0
comentarios
12 de febrero de 2008
OOXML y la opinión pública
Bueno, creo que es imposible negar que la aceptación de OOXML como estandar ISO ha despertado interés. Me han buscado dos reporteros para pedir mi opinión sobre el tema.
El primero fue francamente agresivo en cuanto a buscar una confrontación en la guerra de estándares, y me pareció que el pensaba que la adopción de OOXML sería una afrenta al software libre.
La segunda reportera me agradó mucho, hizo preguntas muy coherentes, como, ¿cuáles serían las repercusiones de la estandarización en la comunidad?, ¿quién se beneficiaría o se perjudicaría?, ¿cómo cambiará mi manera de trabajar?
Espero leer pronto las entrevistas para darles mis comentarios.
Publicado por
Raúl
0
comentarios
28 de enero de 2008
OOXML, round dos
A finales de febrero se llevará a cabo en Ginebra la reunión del comité internacional de ISO para discutir la inclusión de Open Office XML como un estandar de ISO.
Yo he sido miembro del subcomité mexicano desde el año pasado, cuando se votó para decidir si OOXML era sometido por la vía rápida.
Ahora vamos por la segunda parte, con las recomendaciones que se han hecho a nivel mundial, y en Ginebra espero un debate intenso e interesante ( y espero que por las razones correctas), dada la gran polarización que ha generado este estándar. Ya les estaré contando.
Publicado por
Raúl
0
comentarios
