14 de junio de 2008

Juegos en Linux

Hoy vi 3 listados (en inglés) con los 42 mejores juegos para linux comerciales, gratuitos, y mas gratuitos y se me ocurre que con eso como material de base, es bueno para hablar de mi experiencia con juegos y linux.

En principio, muchos de esos juegos no tienen que estar hechos especialmente para linux para correr en el. Hay emuladores de otros sistemas operativos y arquitecturas que permiten jugar con buena performance muchos juegos en linux. Para tirar una pequeña lista dentro de lo que recuerdo:

  • DosEmu para juegos DOS. Hay una gran cantidad de juegos que siguen vigentes por mucho que haya pasado el tiempo, por ejemplo había bastante lindos pinballs que aun hoy día andan via esta emulación.
  • M.A.M.E. para juegos de consolas (viejas y no tanto). Asteroids, pacman, 1942, miles de clasicos estan disponibles, y ya para consolas mas nuevas tambien hay una gran cantidad, como Killer Instinct o mas nuevos, que supe disfrutar en su momento.
  • ZSNES para juegos nintendo. Es mas especifico que el MAME, pero la gran variedad de juegos que hay para nintendo hace que valga la pena. Debe de ser el emulador donde probe menos variedad, pero lo que probé, funcionó.
  • wine (finalmente sale la versión 1.0 estos días, luego de tantos años) y derivados comerciales (Cedega, CrossOver) permiten jugar un buen porcentaje de los juegos para windows.
  • Juegos Web, Java, Flash son tan multiplataformas como las tecnologías en las que se apoyan, y todo eso esta para linux (una excepción son los juegos en shockwave). Puzzle Pirates (en java) o Dofus (flash, aunque hay portales enteros de juegos flash para probar) son buenos ejemplos que he probado en esa dirección.
Y lo mas importante, estos emuladores, maquinas virtuales o tecnologias web están incluidas normalmente en la distribución de linux que uno elija, los juegos en si hay que buscarlos en la web o comprarlos (de ser comerciales).

Y que hay de los juegos para Linux? En la distribución que uno use puede encontrar bastantes juegos incluidos (muchos de ellos nombrados en los enlaces del principio, al menos respecto a los gratuitos/libres), y otros pueden bajarse de internet, o comprarse (caso de los comerciales). Para mi distribución (Kubuntu, basada en Debian) instalarme muchos juegos es simplemente buscarlos/elegirlos en el adept e instalarlos.

He probado un montón de juegos estos años que uso Linux. FPSs como el Enemy Territory, OpenArena, Quake III o Unreal han sido mis preferidos que recuerde ahora, pero hay para todo tipo de gustos.

Supongo que la principal critica respecto a juegos y linux es "pero puede correr el juego XX?" (siendo XX el juego que uno usa actualmente en otra plataforma o que es el ultimo hit ahí). La respuesta es... bien, depende. No se puede prometer eso para ninguna plataforma hasta donde se. Actualmente los fabricantes de juegos comerciales centran su atención en consolas especificas para juegos, y luego windows (y tal vez, con suerte, macintosh). Muchas veces esos juegos también andan en linux, muchas veces no.

Linux no es una consola especifica para juegos, pero es suficientemente dúctil para proveernos suficiente en ese sentido como para mantenernos bastante entretenidos. Uno puede sacrificar la ductibilidad, estabilidad o seguridad de lo que usa con tal de usar tal o cual juego, o uno puede conservar todo eso y moverse dentro de lo que tiene disponible, que sigue siendo un universo de grande, con algunas omisiones especificas

13 de junio de 2008

Zeitgeist, la pelicula

Vi esta película, y realmente... me shockeó. Como describen ahi, que relacion hay entre el cristianismo, el ataque a las torres gemelas del 9/11 y la Reserva Federal de Estados Unidos.

Supongo que podria hablar mucho al respecto... pero un video (ojo, dura 2 horas, y esta subtitulado en español) vale por mucho mas que 1000 palabras. O si quieren, pueden verlo directamente en el sitio de la película.

Como agregado posterior, hay un sitio donde se hace un análisis crítico de esta película (supongo), y se encuentran algunos documentales relacionados con la temática en FreeDocumentaries.org

7 de junio de 2008

La 0-esima ley de la robotica

Asimov fue un gran escritor de ciencia ficción. Entre los grandes "inventos" de sus libros, en una sociedad donde iba a haber robots inteligentes, vio la necesidad de 3 leyes que tenían que seguir los robots para poder ser asimilados por la sociedad y no temidos. El foco de esas 3 leyes era la protección de seres humanos, priorizaba no hacerle ningún daño a los humanos (o hacer algo que evite ese daño), seguir sus ordenes y evitar dañarse a si mismo, pero siempre respetando las leyes anteriores. Si bien esas 3 leyes parecían convertir en seguros al uso de robots en la sociedad, muchos de sus cuentos, e incluso algunos libros, tuvieron como núcleo argumental robots que o causaban daño a humanos, o dejaron causar, a pesar de esas leyes tan escritas a fuego en el diseño de sus cerebros positrónicos.

Pero mi propio foco no va ahí . En Los Robots del Amanecer, un par de robots, habiendo avanzado en sus capacidades, se reprogramaron a si mismos para tener una ley 0-ésima, donde el foco era no dañar a la humanidad, o evitar que ese daño fuera cometido, tomando precedencia sobre todas las otras.

Ah, la humanidad, que abstracción. Como uno puede distinguir los "representantes locales" de la humanidad como un todo y decidir que algo que puede ser malo para algunos en realidad es para el bien de todos (o del resto, cuando menos)? De hecho, como alguien puede decidir que algo es bueno o malo en ultimo termino a este respecto?

Asimov mismo agrego un poco de su propia madera a este fuego. En una de sus series futuras, Fundación (bah, termino metiendo la mayoría de sus libros de ciencia ficción en ella), se invento una ciencia llamada psicohistoria, donde era posible predecir el comportamiento de sociedades completas (tenia que ser con un numero suficientemente grande de personas) hasta muy adelante en el tiempo, y por lo tanto (estando al tanto de esa ciencia, por supuesto) decidir lo que era mejor para la humanidad. En uno de sus libros, El Fin de la Eternidad, hablaba de una organización (la Eternidad) que controlaba los viajes en el tiempo, y hacían cambios en el para lograr que la civilización prosperara, sea mas feliz, segura, etc, con el conocimiento de que pasaba el un futuro con la humanidad si eso no se hacia. Ambos enfoques resultaron tener problemas (desde el clásico quien vigila a los vigilantes a no considerar algunos factores externos), pero lo que importa acá es que en ambos enfoques tenían una herramienta efectiva para decidir si algo era bueno o malo para la humanidad, en la acepción de la ley ceroésima.

Y nosotros, como estamos?

Nosotros tenemos varias formas de leyes. Moral, ética, religión (al menos, la parte que dice como debemos o no comportarnos), leyes propiamente dichas, en su mayoría dando normas de como convivir en sociedad, como actuar para no dañar nuestra "humanidad" local, dando un guia de lo que seria "bien" y "mal" dentro de lo que podemos preveer en el tiempo y consecuencias.

El problema con las leyes escritas es que normalmente son absolutas, no relativas. Hay cosas que pasan de ser buenas a ser malas en determinada escala (esta bien tomar 2 litros de agua por día, no lo es tomar 20), o en determinadas situaciones (matar es bueno o malo? y para defenderte?) o cuando se consideran o ignoran determinados factores tal vez externos (volar fue bueno, el aterrizaje brusco malo).

Hay alguna forma de flexibilidad en algunos sistemas judiciales, para algunos casos. Un juez puede decidir que algo en determinada situación o ante determinados factores era en realidad bueno y no malo (a veces creando precedentes tan peligrosos como esas leyes escritas), pero que pasa cuando el espíritu de la ley considera el problema en el corto plazo y no en el largo?

Eso un poco era el problema central para la Eternidad. Se consideraban la seguridad y felicidad en el corto plazo, se terminaba dejando todo mas o menos igual siempre, no habiendo cambios dramáticos (viajes espaciales en el caso del libro), evitando en el largo plazo cosas que cambien todo varios ordenes de forma cualitativa.

Hay leyes donde este problema es tal vez mas claro que en otras. Legislación sobre patentes, derechos de propiedad sobre obras o ideas, por ejemplo, tienen un efecto a corto plazo claro y fácil de ver. A quien hace un gran aporte se le recompensa, es un incentivo para hacer algo, hasta tal vez para el bien común. Pero a largo plazo? Mucho del avance de la ciencia se debe a, según palabras de Newton, estar subido a hombros de gigantes, usar libremente la obra y ideas de otros para avanzar un poco mas, hacer retroceder nuestros propios límites otra pulgada. Colocar minas en el campo de las ideas, donde tan solo para mirar en determinada dirección tenes que pedir permiso, pagar o directamente te este prohibido (y para peor, sin ninguna indicación clara en ese campo que hay una mina ahi, sabes que si pisas en el lugar equivocado serás penalizado), es algo con todo el aspecto que en el mediano/largo plazo, provocará daños a, bien, la humanidad como un todo.

26 de mayo de 2008

Origenes del spam

El spam es un problema, y serio, hoy dia. Segun la empresa Marshal, entre un 70 y un 90% de todo el correo de internet es spam, reduciendo la utilidad del correo, provocando perdida de tiempo, y dando riesgos de seguridad.

Una de las formas mas simples de reducir el spam es detener su origen, de donde surge. Los analisis posteriores, que se basan en p/ej contenido, son por un lado mas caros de implementar (requieren mas recursos) y han sido burlados de muchas maneras a lo largo del tiempo.

Que tipos de origenes ha tenido el spam a lo largo del tiempo?

  • Servidores/rangos de IP propias: Muchos han establecido su negocio formal de spamming (hay una linea que separa promocion en linea de spam, me refiero a los que pasan esa linea), contratan servidores o rangos enteros de IP para hacer envios masivos de correo. Creo que es de las primeras formas organizadas de envio de spam. La solucion a este enfoque fueron listas negras, RBLs y similares. Si una IP individual se dedica a enviar correo basura, via varios mecanismos queda en alguna lista negra (chequeable por ejemplo, via consultas al DNS) y uno puede denegar el correo desde ese sitio. De las muchas que hay disponibles, he probado en este respecto a Spamcop y a lista SBL de Spamhaus.
  • Servidores mal configurados, aplicaciones web inseguras, proxys/smtp abiertos: de ser muy abusados esas maquinas pueden terminar en listas negras. En la medida que esos problemas de configuracion o de seguridad son arreglados esos servidores dejan de estar disponibles para este envio. Esta fue la otra forma organizada de envio de spam desde principios de internet. Hay listas especificas para este tipo de maquinas, como por ejemplo la XBL de Spamhaus.
  • Troyanos y Botnets: En vez de usar servidores individuales en pequeñas cantidades para ser bloqueados o no por listas negras, porque no ir a la mayoria de las maquinas en internet, las personales? Con un poco de ingenieria social, vulnerabilidades en sistemas operativos/browsers/plugins, spam o sitios hackeados, se han creado botnets de cientos de miles de maquinas, las cuales pueden ser usadas para enviar spam (o para capturar claves, direcciones de correo, tarjetas de credito, etc). Ya el numero de maquinas que potencialmente puede enviar spam crece varios ordenes, y ser muy dinamica, poner en lista negra una IP individual de un adsl hogareño se vuelve impractico. Las 2 soluciones mas importantes a este respecto son listas grises (esperan que la maquina remota se comporte como un servidor real, reintentando enviar mensaje luego si es rechazado) y poner en listas negras IPs donde no deben haber servidores de correo (como p/ej la PBL de Spamhaus)
  • Servicios en linea de uso masivo: Hotmail, Gmail, Yahoo, etc. Hay una gran cantidad de servicios que dan direcciones de correo y permiten configurarse para enviar por smtp/imap/etc correos. Si uno crea una cuenta y empieza a enviar miles o millones de mensajes, lo mas probable es que esa cuenta sea detenida. Pero la tendencia actual es tener botnets que hacen 2 cosas: generan direcciones al azar en esos servicios de forma rapida y dinamica, y enviando desde esas direcciones via estos servicios en linea (que no pueden ser bloqueados basandose simplemente en el origen ya que mucho correo real viene de ahi). Hoy dia todos esos tipos de servicio usan una tecnica (llamada captcha) que muestra un texto distorsionado bajo el supuesto que no es automatizable o suficientemente rapida su decodificacion. Pero aparentemente eso ya no es tan valido, ya sea porque se han hecho programas para decodificar esos captchas como minimo para esos 3 servicios, o porque se le ha dado una vuelta al problema (via ingenieria social, disfrazar de juego el decir que tiene un captcha). Es de esperar que este tipo de servicios en linea pueda contrarrestar esto, ya sea mejorando la tecnica (p/ej en Asirra, en una muestra al azar de animales, decir cuales son gatos, algo mas dificil que determinar texto en un grafico, al menos para un programa) o bloquear acceso a lo que parezca que hace esta actividad.

24 de mayo de 2008

Formas de publicar y colaborar en internet

Hace unos años descubri TikiWiki, un ambiente para publicar en internet, que tenia un fuerte componente de colaboracion en las vias que permitia publicar. Ya que las formas que permite son de las mas usadas hoy dia, me basare un poco en el la lista de formas, aunque puedo referirme a distintas implementaciones de ellas por otros sitios/programas.

El enfoque que le quiero dar en esto tocaria un poco el ciclo de vida de lo publicado, como es accedido, como se colabora con el, y ventajas que da. Puede servir para elegir entre las distintas alternativas, o ver que partes faltan en el puzzle para hacer las cosas mas comodas o con mas sentido.

Wiki: Es editar de forma colaborativa un texto individual. La informacion se accede principalmente por el nombre del texto, como definiendo una palabra o frase en un diccionario/enciclopedia (eso lo hace especialmente adecuado en el caso de la Wikipedia). Los aportes del mismo autor o terceros van en el mismo tiempo, agregandole, borrandole o modificandole cosas, quedando en la historia asociada a ese texto en particular cuales fueron esos cambios. Otra forma de colaboracion con esto son comentarios o notas sobre un texto en particular, que pueden ir o en una pagina de discusion asociada (en formato wiki tambien) o como comentarios. Dado su acceso por nombre, provee mecanismos que facilitan el enlazar otras entradas del wiki dentro de un texto, y crear nuevas entradas previamente referenciadas.

Blog: Usualmente el texto es editado por una o varias personas autorizadas. Tambien, usualmente, es para describir algo que paso o se le ocurrio a quien escribe en el log cerca del momento de la escritura dentro de la tematica de ese blog. El acceso es mas bien cronologico, asociado mas al momento en el cual fue creado mas que al topico en particular que se refiere (puede verse en la URL de este misma pagina) . Los aportes son principalmente en forma de comentarios.

Foros: Hay muchas variedades, pero para centrar ideas, que sean foros basados en hilos (threads). Uno postea el primer mensaje de un hilo, y otras personas pueden responder a el y ser respondidas a su vez.

Tikiwiki tiene muchisimas formas mas de publicar contenido (puede verse aca un resumen), pero por un lado estoy supersimplificando en las hipotesis, y lo hare de forma mas extrema en las conclusiones.Para mi las principales componentes (con sus combinaciones) en esto serian:

  • Definicion: Puede verse como contenido atemporal, como un dato. Puede permanecer igual por largos periodos de tiempo o no, pero esta en el mismo lugar y habla fundamentalmente de lo mismo.
  • Coleccion: Agrupacion no necesariamente cronologica de datos individuales/definiciones. Una persona o lo relativo a ella puede verse como una coleccion, un mapa tambien, lo mismo que una base de datos o la Wikipedia como un todo.
  • Flujo: Es mas que una informacion individual, un flujo de informacion a lo largo del tiempo, algo que recibe cosas nuevas todo el tiempo, y donde las cosas viejas van perdiendo visibilidad.
  • Discusion: Charla, comentarios, intercambio de ideas, pero usualmente no esta planteado como algo definitivo.
Puede hacerse algo mas simple y mas completo que propuestas actuales con estos 4 componentes? Hay algun componente importante que no este cubierto con esta distincion? Supongo que la pregunta que me interesa mas a mi, hay algo que combine todos estos componentes de forma simple, intuitiva y que explote todas las posibles combinaciones al maximo?

Mis ideas han derivado un tanto a lo largo del tiempo (puede verse mis ideas pasadas alrededor del proyecto Tikiwiki aqui, en ingles) pero aun estan lejos de una conclusion definitiva al respecto. Espero que cuando vea algo que combine todo esto de forma correcta (si, la definicion de correcto es muy subjetiva) lo reconozca.

4 de mayo de 2008

Trucos de la percepcion

Ah, la percepcion. Uno se encuentra en determinado contexto, algo que nos da nuestra cultura, nuestra historia, nuestro conocimiento, y interpreta la realidad dentro de ese entorno.Que pasa si digo que en realidad en la siguiente imagen enlazada hay en realidad 9 delfines? (si lo que vieron de primera fue realmente 9 delfines, estee... si, es lo que hay)

Ya sabemos que la percepción a veces nos engaña, las ilusiones ópticas son un ejemplo conocido de eso (hay una buena colección acá) y las hay de origen fisiologico (como cuando se colocan cosas de colores muy brillantes u opuestos) y las de origen cultural (interpretar formas conocidas en algo ambiguo).

Pero lo que no sabia era el rol del lenguaje en la percepción. Como percibimos el arcoiris? Aparentemente, los bebés lo perciben distinto a los adultos, y la razon de eso es el lenguaje. Nosotros asignamos nombres a rangos de colores (rojo, naranja, amarillo, etc) y cuando vemos el arcoiris, identificamos esos rangos y "vemos" las franjas. La gente cuyo idioma nativo no tiene palabras separadas para azul y verde, por ejemplo, lo percibe de forma diferente. Y esto no se limita a la vista. Tengo la idea que en el idioma chino no hay sonidos equivalentes a nuestras erre o ele, por lo cual es relativamente comun pronunciarlas mal o no distinguirlas cuando se escuchan.

Cuanto nuestra primera educación cambia el como percibimos al mundo? Uno de mis cuentos de ciencia ficción preferidos fue "Mimsy were the borogoves" de Lewis Padgett (cuento brutalmente masacrado en la pelicula "Mimsy, mas alla de la imaginacion" estrenada el año pasado), donde unos niños obtenian juguetes educativos de un futuro lejano y su percepción del mundo cambiaba lo suficiente como para hacer lo que consideraríamos magia. No creo que sea nada tan dramático como eso ("magia" seria un arma evolutiva muy poderosa como para no aparecer en el mundo moderno de alguna forma) pero si puede cambiar lo que consideramos inteligencia, relacionamiento con otros, o habilidades (musical, estetica, determinacion de patrones, etc).

(01/06/08) Hay un articulo (en ingles) que toca alguno de estos conceptos y enlaza a mas informacion relevante en este articulo de Scientific American.

24 de marzo de 2008

El problema del contexto

Soy amante de la ciencia ficcion, pero tambien informático. Uno ve ahi maquinas que hablan, se comportan, conversan, de forma bastante humana, y muchas veces se ubica eso en entornos cercanos en el tiempo... pero como informático, tengo que volver a la realidad, y darme cuenta porque eso aun es bastante dificil. Hay mucho que se ha hecho al respecto, pero creo que uno de los problemas mas grandes a ese respecto es el tema de los contextos.

Que es son los contextos? Wikipedia tiene una definicion formal, yo lo veo como el ambiente, el entorno, lo que rodea al mensaje en si (ya sean palabras, imagenes, olores, etc). Aca me centrare en palabras, para fijar conceptos... pero todo es generalizable a otros tipos de mensajes.

Influyen fuertemente en el significado, el sentido de las palabras, de los textos, de libros enteros, etc (no es lo mismo una foto de un local de McDonalds que esa misma foto agregando que fue sacada en la union sovietica hace 20 años, u olor a humo en una papeleria vs en una parrillada), y son influidos por ellos. No es lo mismo la palabra herir cuando estamos hablando de guerra o violencia que cuando estamos hablando de temas sentimentales, pero si herimos, digamos, con sangre, en donde estabamos hablando de temas sentimentales, ahi ya el contexto cambio, y mucho, tal vez con una sola palabra.

De donde vienen esos contextos?

  • El texto en si: uno define y redefine contextos en la medida que va desarrollando algo, un cuento, una exposicion, lo que sea
  • Tradicion, cultura de un pueblo/zona/familia/etc. Porque hay cosas que son terriblemente ofensivas en un pais y inocuas o sin sentido en otros, aun compartiendo el mismo idioma?
  • Otros textos anteriores de amplia difusion. Toma un gato, ponele botas, y ya hay un monton de cosas que uno espera o no se asombraria de encontrar.
  • Historia
  • Educacion
  • muchos otros etcs.
Los contextos se crean, se derivan de otros, se modifican a lo largo de un texto. Y el verdadero significado de ese texto, en cualquier punto, depende del estado del contexto que puede estar modificando.

Muchos cuentos (ultra)cortos, chistes, o frases efectistas se basan en buena parte en jugar con los contextos. Te introducen en uno, y cuando uno esta perfectamente acomodado en el, con muy poco lo cambian totalmente. Si digo, por ejemplo "El barco llego a los confines del mundo" uno se ubica atras en el tiempo donde el mundo tenia confines, y el barco podia haber sido vikingo, pirata, explorador, uno espera mucha gente adentro, y mas cosas. Uno ya esta en un contexto o en varios que considera probables y sabe que esperar, que de muchos significados posibles tengan una gran cantidad de palabras. Ahora, si le agrego a eso "... y cayó" estoy haciendo un cambio tirando a dramatico en donde estaba pensaba que estaba parado. Puedo estar cambiandole el significado a todo lo que viene, y a todo lo que vino tambien, con una simple palabra. A mi en particular, que me gusta la serie Mundodisco de Terry Pratchett (un mundo plano de fantasia, donde hay un borde del mundo a traves del cual, bien, caes) ya me puede colocar en ese contexto o en alguno similar (creo que algo por el estilo pasaba en la pelicula Piratas del Caribe, por ejemplo). Pero uno no se queda en blanco ante algo inesperado, muchas veces se inducen nuevos contextos basandose en informacion que no cuadra con los anteriores.

Ahora, como funciona lo del parrafo anterior? Uno tiene un texto corto, y el contexto fue rellenado por lo que uno sabe (o no) de historia, literatura, cuentos populares, etc. Los cambios que hubo en el contexto pueden haber sido totalmente nuevos o apoyarse en otras fuentes, y podian ser provocados por hasta palabras individuales.

Hay mucho donde uno puede jugar con los conceptos y todo lo que implican... pero como introduccion, creo que da una buena idea, volvamos a realidades mas tecnologicas.

Tanto traduccion, como mantener una conversacion "humana", requiere (para que sea suficientemente buena, al menos) comprension de lo que se esta tratando. Uno toma un texto, lo "entiende" y actua frente a eso (dice algo que significa lo mismo en otro idioma, responde agregando sus propias ideas, aportes, etc). Pero entender el significado real de algo (si uno quiere que valga para todos los casos) implica poder manejar los contextos posibles donde este ubicado. Toda la informacion de base, los contextos que uno va adquiriendo a lo largo de una vida, y todos los juegos de identificacion, adaptacion y creacion de contextos que uno naturalmente hace al escuchar/leer/mirar algo para poder comprenderlo tambien deberia estar ahi (ya a todos nos ha pasado quedar "fuera de contexto" en una situacion u otra). Y decidir cuales de estos contextos podria estar usando el que genero el texto de todos los posibles. Y este es el pequeño obstaculo que hay que salvar para llegar a las utopias de inteligencia artificial que ponia al principio.

Nota hacia la inteligencia "natural": para captar lo mas posible de un mensaje, hay que compartir entre el generador y el receptor todos los contextos usados, no hay que tener todos los contextos del mundo. Educar tiene que tener como componente importante dar contextos comunes a todos, dar herramientas para comprender a otra gente y su obra. Ser pobre en este aspecto significa obtener mucho menos de lo que se nos da, como que nos den fotografias a todo color y solo las veamos en blanco y negro por no tener herramientas para comprender lo que falta. Me acuerdo hace unos años, viendo la pelicula Shrek (para enfocarnos en los niños), haber notado la cantidad de referencias que hay a cuentos infantiles y cultura en general embebidas ahi, y cuanto mas se podia disfrutar la pelicula teniendo esa base, cosa que tal vez muchos niños hoy dia con, digamos, un tanto de resistencia a la lectura, podian haberse perdido o no entendido.