Ogeid » 2004 » Febrero

Reciclado

Recién estaba mirando la página de la (cada vez menos tolerable) CNN. Una noticia acerca de la estación espacial internacional (ISS) me llamó la atención. Resulta que el astronauta ruso (o cosmonauta, para los nostálgicos) tuvo que suspender su caminata espacial porque el traje no le funcionaba bien. Según sus palabras “llovía dentro del casco”. Eso me llevó a preguntarme acerca de la administración del agua como recurso crítico en un objeto hermético en órbita con gente adentro durante meses. También me hace acordar a la historia de Dune y sus stillsuits. ¿Habrán hecho algo similar?

Google mediante, aquí está la respuesta. No tiene desperdicio, literalmente.

Juegos

Hace veinte años, en el verano de 1984, escribí uno de mis primeros programas complejos. Era una imitación del Pacman hecho en BASIC para la Texas TI99/4A. En esa época yo todavía no tenía mucha idea sobre técnicas de programación, era una cuestión de ensayo y error. De alguna forma logré que funcionara y fuese entretenido para mis amigos, a pesar de que sólo tenía dos fantasmas en lugar de cuatro por una cuestión de velocidad, y de que los fantasmas, en lugar de moverse por el laberinto, atravesaban paredes y se le venían encima al Pacman. Tenía varios bugs, a veces contaba mal los puntitos que comía el Pacman y el jugador se quedaba dando vueltas en un laberinto vacío.

Por esos tiempos programé otros jueguitos simples, casi todos imitaciones y alguno original. Recuerdo uno que llamé Dólar. Se jugaba dentro de un rectángulo (caja fuerte) cuyas paredes se iban acercando mientras el jugador intentaba recolectar billetes (signos $) y escapar antes de morir aplastado. Lamentablemente en esa época no había discos rígidos, todo mi código estaba guardado en diskettes de 5 1/4 que más tarde se volverían ilegibles.

Unos meses más tarde pasé a las Sinclair, y más tarde dejé las computadoras por completo hasta que me compré mi primera PC al empezar la facultad en el ‘89. Nunca volví a programar un juego hasta la semana pasada, en que se me dio por hacer el de los cuadrados. A diferencia de los de hace veinte años, este es un juego de ingenio. El hecho de haberlo programado y conocer sus mecanismos hace que me sea imposible juzgar si es entretenido o no. La dificultad de comprender la gracia de un juego de antemano me hace sentir admiración por los creadores de grandes clásicos como el Tetris, donde se encuentran la acción y el ingenio.

La esencia de un juego, aquello que lo hace placentero y entretenido, es bastante intangible. Evidentemente es más fácil crear un gran juego si se cuenta con un presupuesto enorme. Es una situación análoga a la de las grandes producciones de Hollywood. Desde hace varios años los juegos más complejos tienen guionistas, músicos, dibujantes, voces de actores, partes filmadas, etc. Sin embargo, siguen apareciendo juegos muy adictivos creados por un programador. Uno de ellos es el Vexed, que me entretuvo durante horas de espera en aeropuertos, aviones o colas de bancos. Creo que debo haber completado más de doscientos niveles antes de cansarme.

Me encantaría que algún día se me ocurriera una gran idea para un juego que le llegase a los talones al Tetris. Mientras tanto me dedicaré a cuestiones menos lúdicas. Game over, please deposit coin.

La sensación de seguridad

Malcolm Gladwell es un columnista del prestigioso New Yorker. Escribió también un libro muy interesante y recomendable, The Tipping Point, que habla de psicología de masas, redes sociales, memes y otras epidemias (es un buen complemento para Linked).

Via Kottke leí un artículo que escribió el mes pasado acerca de los SUVs (Sports Utility Vehicles, conocidos como 4×4 en Argentina). Cualquiera que haya conducido por las autopistas urbanas de Estados Unidos habrá observado que por momentos estos vehículos superan en número a los autos comunes.

En USA el principal argumento para vender SUVs es el tema de la seguridad. Recuerdo un comercial de TV en el que mostraban una mujer andando por un camino de tierra en una planicie africana. De repente, aparecían unos tigres amenazadores que comenzaban a perseguirla. Ella pisaba el acelerador y se alejaba, aliviada.

Yo siempre odié los SUVs. Ir detrás de uno es molesto porque tapa la visual, son ostentosos, gastan más combustible, etc. Eran muy comunes entre mis compañeras de trabajo (más que entre los hombres), que decían sentirse seguras al manejar un mamotreto sólido con una posición visual elevada.

Cuando tuve que comprar un auto en el que haría treinta kilómetros todos los días para ir al trabajo y otros tantos para volver, investigué un poco el tema de la seguridad. Resulta que los vehículos más seguros no son los SUVs sino los autos chicos y medianos bien construídos, en los que además de la protección del habitáculo se tiene una mejor capacidad de maniobra para reaccionar ante una situación peligrosa. El VW Jetta que terminé comprándome costaba la mitad de lo que un SUV típico, tenía más pique y agarre, gastaba mucho menos y era el doble de seguro respecto de la tasa de mortalidad del conductor.

El artículo habla de cómo los seres humanos en general apuntamos a la percepción de la seguridad desde lo emocional (al decir de un psicólogo, desde el cerebro reptílico) en lugar de encarar el tema desde lo racional y estadístico. Quizás por eso sea que en Argentina es raro ver gente que conduzca con el cinturón de seguridad abrochado, que duplica las chances de sobrevivir un accidente. Por ese mismo motivo muy poca gente tiene el mismo miedo antes de subir a un auto que a un avión. Ni hablar de cómo los norteamericanos siguen aterrados con la amenaza terrorista si bien es más probable ser fulminado por un rayo que morir en un atentado. En fin, lean ese artículo y otros de Gladwell, son entretenidos.

Seguridad en Windows 2000

Hace una semana, alguien de mi familia me llamó para pedirme ayuda. Su computadora tenía varios virus, entre otros uno que se dedicaba a distribuir spam. Esto le había ocurrido anteriormente, en su momento le aconsejé que dejara de usar el Outlook, abrir archivos adjuntos, etc.

Me puse a analizar un poco la situación. Esta computadora, con Windows 2000, está conectada a un cable modem. No estaba detrás de un firewall, con lo cual estaba expuesta a cualquier vulnerabilidad remota de Windows. Yo hace años que uso principalmente Linux y no conozco mucho de seguridad en Windows, pero me puse a averiguar. Entre otras cosas, luego de reinstalarle el Windows 2000, tomé las siguientes precauciones (probablemente insuficientes):

- Obviamente, instalé todas las actualizaciones críticas de Windows.
- Instalé un antivirus. Hay dos que son gratuitos para uso personal sin fines comerciales, el Avast y el AVG. Instalé el Avast simplemente porque no encontré argumentos convincentes respecto de cuál es mejor.
- Instalé un programa para detectar spyware, el Spybot S&D. Me pareció más serio que el Ad-Aware.
- Instalé el Mozilla Firefox y traté de convencer a mi familiar de que deje de usar Internet Explorer.
- Configuré el Outlook Express para que no muestre html en los mensajes, sólo texto.
- Deshabilité (cambiando de nombre) el wscript.exe y el cscript.exe, dos intérpretes de scripts que suelen ser usados más que nada por virus en Visual Basic (vbs)
- Creé una cuenta de usuario común para el uso diario de la máquina y le puse una password complicada a la cuenta de Administrador (así no la usa).
- Instalé el Open Office en lugar del MS Office.
- Desde Linux, hice un backup de la partición Windows con toda esa configuración.

Además, instalé un router que bloquea los port scans y no responde a los pings. Desde afuera, no se puede saber si hay una computadora conectada a esa dirección IP (de no ser por el tráfico saliente cuando el usuario está conectándose a algún lado). Un poco de “security through obscurity” nunca viene mal.

Espero que todo esto alcance, aunque tengo mis dudas más que nada por el tipo de usuario de la máquina (”A ver esta foto que me mandaron… friend.jpg.exe… click”). Si se me escapó algo, agradezco el comentario.

Los cuadrados de ogeid

Este fin de semana, para despuntar el vicio, me programé un jueguito de ingenio (según el browser, puede requerir el plugin de Java). La idea del juego es poner todos los casilleros del tablero en rojo (hacer click en un casillero para entender el mecanismo).

La aplicación comprimida se puede bajar acá, viene con un resolvedor de niveles que se usa así:

java -cp squares.jar squares.GameSolver <nivel>

Para ser honesto, creo que la idea me suena de algún otro lado (si alguien sabe, que me avise así doy el crédito correspondiente).

Weblog de Clarín

Fabio escribió hace unos días un post interesante acerca de cómo el weblog de Clarín sacó los comentarios hace un par de semanas. Esto lo convirtió en otra página más del diario, un medio one-to-many.

Para mí, Clarín se equivocó en cuanto a la elección de la herramienta utilizada. Un blog corporativo con una gran cantidad de lectores funcionaría mejor con Slashcode, que permite la moderación de comentarios (ver Slashdot). De esa manera los insultos y comentarios irrelevantes, sin ser censurados, se hundirían por su propio peso mientras que otros más interesantes serían más visibles gracias a sus puntajes. Además, Slashcode permite cambiar la presentación de los comentarios para que sean más legibles. Se puede ordenarlos según varios criterios en lugar del orden lineal y cronológico de Movable Type y otros sistemas.

Es una lástima que desaprovechen un espacio con tanto potencial.

Breves

De todo un poco:

Pasé gran parte de la última semana programando en Java, lo que hace mucho tiempo no hacía. Para quien usa este lenguaje de programación, recomiendo profundamente el libro Effective Java. El author, Joshua Bloch, tiene un doctorado en Computer Science de Carnegie Mellon y escribe con la autoridad de quien lleva años participando en la implementación y desarrollo del lenguaje Java en Sun.

Adiós Firebird, hola Firefox. Acabo de bajarme la versión 0.8 del browser Mozilla, que cambió su nombre de Firebird a Firefox. Lo probé en Windows y en Linux y parece andar un poco más rápido que la versión anterior. Veo que aún tiene algunos bugs (por ejemplo, no se puede buscar con Ctrl-F en un campo de entrada de texto como en el que estoy escribiendo, lo que el Internet Explorer sí permite). De todos modos, entre el “tabbed browsing” y el bloqueo de pop-ups, cada vez uso menos el Explorer.

Comida oriental en Buenos Aires. Fui a un restaurante que recomiendo, se llama Sudestada y queda en Palermo Viejo. El curry rojo que pedí no tenía nada que envidiarle al de muchos restaurantes tailandeses de San Francisco o Los Angeles. El precio me pareció bastante razonable ($20). En cuanto a sushi, me gusta mucho un lugar que se llama Dashi (hay varias sucursales). No tienen una gran variedad de pescados (es salmón, más que nada), pero preparan todo con una gran calidad y atención al detalle. El ambiente es muy tranquilo y de buen gusto y la atención es excelente. Eso sí, es tirando a caro.

Tengo tres libros más para comentar, serán tema de un próximo post.

Spam

El email no deseado, o spam, es un tema que da mucho que hablar desde hace unos años. Para mi gusto se le dedica demasiada energía, no creo que merezca tanta prensa como, digamos, los accidentes de tránsito. Por supuesto que es algo molesto y sería bueno erradicarlo.

La tecnología actual para filtrar spam tiene que ver con los filtros bayesianos, llamados así por un resultado de probabilidad llamado teorema de Bayes. La idea básica es que la ocurrencia de una cierta palabra o frase en un mensaje contribuye a la probabilidad de que sea spam (free, viagra, offer, “satisfaction guaranteed”), mientras que otras frases inocentes contribuyen a la probabilidad de que no lo sea. Si el mensaje es spam con una probabilidad de, por ejemplo, 90%, lo descartamos.

Estos algoritmos funcionan bastante bien. Como ejemplos, ver A Plan for Spam y CRM114 (este último tiene una efectividad comparable a un ser humano decidiendo qué es spam y que no).

Existe otra solución posible que sería muy simple desde un punto de vista tecnológico aunque quizás no en cuanto a lo social. Se trata de agregar estampillas al correo electrónico. La idea es destruir el modelo de negocios de los spammers haciendo que el costo de enviar email (actualmente bajísimo) aumente hasta que sea imposible que obtengan una ganancia. Slashdot menciona un artículo del New York Times acerca de una posible implementación. No me convence demasiado porque la idea es que la estampilla electrónica proporcione una ganancia al proveedor de internet.

Mucho mejor sería lo siguiente (creo haberlo leído hace muchos años en el superoptimista The Road Ahead, de Bill Gates):

1) El usuario (yo, por ejemplo) decide cuánto quiere cobrar por leer spam. Digamos que yo decido que el esfuerzo de mirar un mensaje, decidir que no me interesa y borrarlo está bien compensado con veinticinco centavos.

2) Si alguien que no está en mi lista de contactos me manda un mensaje, le rebota con la siguiente advertencia:

“Dado que el destinatario no lo conoce, usted debe incluir en su email una estampilla de $0,25. El destinatario decidirá si la cobra o si se la devuelve.”

3) Si la persona que me envió el mensaje con la estampilla es un antiguo conocido, alguien con un motivo válido para contactarme, un amigo con nueva dirección de email, etc. no me quedo con sus veinticinco centavos. Puedo también agregarlo a mi lista de contactos para la próxima vez.

Si es un spam, cobro la estampilla y lo borro, feliz de haber ganado veinticinco centavos.

Dudo que esto se llegue a implementar, debido a la complejidad de implementar los micropagos de estampillas en forma segura, de educar a los usuarios y de cambiar un proceso ya establecido. Pero si pudiera hacerse, el spam dejaría de ser un problema.

Seguridad?

Quien está en el tema de la seguridad informática muy probablemente haya oído hablar de Bruce Schneier. Es el autor, entre otros libros, de Applied Cryptography y Secrets and Lies. El primero es una enciclopedia de métodos y algoritmos criptográficos llena de ejemplos, analogías explicativas y un toque de humor. El segundo es un libro menos técnico en el que describe el significado de la seguridad en términos humanos, más allá de las abstracciones matemáticas.

Schneier trata de mantenerse al margen de las opiniones políticas para dedicarse al análisis de los riesgos, costos y beneficios asociados con la implementación de estrategias de seguridad. Hace un par de días publicó este artículo en el que opina sobre la política de seguridad del Departamento de Justicia de EEUU. Es corto y vale la pena leerlo. Sería bueno que se escucharan más voces con este tipo de críticas, a ver si los norteamericanos se despiertan un poco de su sueño de la seguridad absoluta a cualquier costo.