@ agnasg

¿quién tiene un blog?

02-07-2014 5:53 AM

Estuve la semana pasada en este congreso sobre tecnologías web, redes sociales y otros tópicos, y uno de los expositores preguntó quién tiene un blog. Me acordé de mi blog… pena me debería dar.

Enlaces y comentarios diversos

  • No puedo estar más de acuerdo con esto, pero quizás por diferentes razones. Blizzard ha ido agregando profundidad al sistema de crafting, a las mascotas, al pvp. Antes de las modificaciones yo le dedicaba un considerable tiempo a ellas. Ahora no. Notable el caso de las mascotas. Yo podía pasar horas tratando de conseguir una mascota, ahora que las mascotas tienen una funcionalidad adicional, ya no me interesan. Quizás el pvp no me llama la atención realmente. NOTA: esta mascota, el Disgusting Oozeling (wowhead, tiene 470 comentarios!) tiene tiene una posibilidad de 1.5% en una bolsa que tiene a su vez una posibilidad de 1.0%, lo que significa que hay que matar a 1000 oozes para conseguirla. Yo maté al menos 1500. Sin éxito. No lo he vuelto a intentar desde Cata. En los comentarios de wowhead se habla de 5000 kills.
  • Newegg.com está aceptando Bitcoins, tal como fue reportado en todas partes en forma inmediata (1, 2).
  • Críticas a Second Life. Es interesante cómo llegué aquí. Llegó a mis manos este documento sobre Prompter, un lenguaje que permite programar con mucha facilidad juegos de ficción interactiva sobre la plataforma Versu. Recomiendo esta lectura de Graham Nelson, un genio de la fi. Sobre Versu se han publicado verdaderas joyas de la ficción interactiva, incluyendo el reciente Blood & Laurels, de Emily Short (no lo he jugado todavía). Recordé que Versu fue noticia a principios de año, porque la compañía que lo desarrolló lo abandonó. La compañía se llama Linden Lab. Esta es la compañía detrás de Second Life. Yo estuve jugando SL hace 4 ó 5 años, hasta que lo abandoné pues no le vi el sentido. Evidentemente hay gente que si le ve sentido porque pagan $500-$1000 por una isla en el juego. Raro.
  • Este raycaster escrito en 128 bytes de assembler causó mucho revuelo hace poco (youtube). Este artículo analiza las técnicas utilizadas para ahorrar espacio.

Actualización de sistema 2014

21-06-2014 6:08 AM

Luego de varios meses de planificación, selección y espera finalmente ensamblé mi nuevo equipo. Sin embargo,  de nada sirvió la minuciosa planificación pues me encontré con tantos problemas que parece que estuve improvisando todo este tiempo.

  • Windows 7 32 vs. 64bits. Yo quería quedarme con 32bits para evitar problemas de versiones al distribuir y probar aplicaciones. Pero al mismo tiempo quiero tener un equipo con al menos 8GB. Bueno, tal como dice aqui, W7 32 bits soporta máximo 4GB (y el sistema reporta como usable 3.464mb. Así que no hay nada que pensar ni discutir, tengo que usar Windows 7 64 bits. La experiencia hasta ahorano ha sido tan mala, todo parece funcionar sin problemas.
  • Otra razón para quedarme en 32 bits es las versiones. El mundo de windows es caótico, desordenado, casi sin sentido. Nada tiene una explicación lógica. De hecho, ya se me olvidó qué era lo que iba a decir cuando comencé. El punto es que yo uso VIM (trabajo con “vi” desde los años 80s). En windows 32 bit, al hacer right click sobre un archivo aparece un hermoso “Editar con VIM”. Bueno eso no funciona en windows 64 bits. Esta es una de las muchas páginas que visité tratando de resolver el problema. (Hay que seguir el procedimiento y luego bajar 200 comentarios hasta abajo y leer que hay que hacer una corrección, la cual hace funcionar finalmente el procedimiento:

@=”\”C:\\Program Files (x86)\\Vim\\vim72\\gvim.exe\” \”%1\””

  • El problema de los problemas es que los problemas nunca están solos. Nunca tenemos un solo problema, siempre tenemos “varios” problemas. Yo tenía una copia de Windows 7 desde hacía meses (planificación, planificación), pero el sistema no cargaba. Generaba el error 0×80070017: no se encuentran los archivos o están corruptos. Esto puede ser cualquier cosa, el disco, el DVD, la unidad de DVD. Mi primer acercamiento al problema fue probar con otra unidad de DVD: Pero resultó que la unidad vieja estaba fallando (y hasta el sol de hoy, tuve que desecharla).  Después de varias pruebas de la unidad nueva, del disco, formato, y reformateo (Windows se encarga de formatear y generar las particiones si encuentra el disco sin particiones, así que esta es la forma correcta de proceder) bien, al final descubrí que era la media, el DVD. Así que decidí usar el camino complicado. Compré en mercadolibre una nueva copia con su licencia original, pero no quería esperar a que llegara. Así que bajé el .iso, (están aqui, es legal hacerlo). Y preparé un USB pendrive para bootear e instalar desde ahí. Para esto utilicé una herramienta llamada  Windows 7 USB/DVD Download tool, tal como se explica aquí. Esto se puede hacer a mano, pero no se debe tratar de usar otras herramientas como UNetbootin, no va a funcionar. La herramienta Windows 7 USB/DVD Download tool por más sospechosa que parezca en realidad funciona muy bien y hace el trabajo fácilmente.Nota: el error al momento de instalar también puede ser este: Error at “Expanding Files”: Windows cannot install required files. Por todas partes en internet se dice que esto puede ser un error con la memoria, cuando por ejemplo tienes 2 DIMMs, se puede generar este error. La solución en estos casos es extraer uno de los DIMMs. Así que en mi lista de sospechosos también estaba la memoria, pero la descarté rápidamente porque al bootear con el DVD puedes entrar a la consola de comandos y ejecutar la herramienta de diagnóstico de memoria o seguir este o algún otro procedimiento para verificar que está buena (o descubrir que está mala)

Conclusión

Como todo, Windows 7 tiene sus cosas buenas y cosas malas. Tiene el peor sistema de menus imaginable, y la barra donde aparece la dirección o path de la carpeta actual en el explorador es igual de horrible de manejar, pero puedo seguir viviendo con estas tonterías. Tiene cosas muy simpáticas como la actualización en tiempo real del contenido de otras ventanas cuando pasas el mouse sobre ellas en la barra de tareas (espero no tener que explicar qué es esto), puedes anclar los programas en la barra de tareas, la bandeja de aplicaciones, la que indica los procesos que se están ejecutando tiene también un mejor diseño. Así que yo le daría unas 4,5 estrellas.

¿Qué es esto?

07-05-2014 9:31 AM

Esto es un blog. Es un invento que surgió en la alborada de internet, 15-20 años atrás. Es como un diario, y mi visión sobre él es más o menos similar a la de Tobold.  Los blogs están pasando de moda, y los que tratan sobre juegos, quizás hasta más rápido que otros. Yo solía escribir todas las semanas, ahora apenas un par de veces al mes.  Pero sigue siendo como  un diario donde escribo mis pensamientos sobre cualquier cosa que estoy haciendo en el momento. Y así va a seguir mientras siga haciendo cosas. Yo escribo un diario personal desde que tenía 15 años, casi 40 años después sigo escribiendo en él. A veces transcribo aquí algunos párrafos que me parecen relevantes, no estoy seguro por qué. En fin, resulta una experiencia como cualquier otra, a veces tiene sentido, otras veces su significado permanece oculto. El ser humano es en sí una entidad complicada, porque, como llegamos a entender en algún momento de nuestra vida adulta, todo sigue igual dentro de un cambio permanente. Hay quienes no pueden entenderlo, y hay quienes escriben un diario personal donde describen el camino que han recorrido para lograr ese entendimiento. Este fin de semana pasado estuve todos los días con mi nieto de 10 meses, quien, con una sonrisa, y a veces con una carcajada, se ríe de mis esfuerzos por explicarle las cosas. Lo contemplo intrigado, pensando si él, a su vez, escribirá alguna vez sobre su abuelo. En fin, la vida se reduce a aceptar que no hay nada más inmutable que el cambio. Tan simple como es.

2048

06-05-2014 10:05 AM

Las experiencias del programador de 2048  (un juego de tiles con una adictiva dinámica a veces difícil de deducir) sobre cómo fue su experiencia al ver que su juego alcanzó la cifra de 23 millones de jugadores, y su dilema en si sacar provecho económico o no dado que es un juego basado en ideas y software desarrollado por otros. Interesante lectura.

Algunos enlaces en cualquier orden

24-04-2014 10:51 AM

Enlaces

Y todo lo demás son banalidades…

11-04-2014 8:30 AM

Con mucha sorpresa leo en mi diario personal lo siguiente:

(1513)

… Un dia agitado. Pero bien, lleno de ánimo, agradecido porque ahora, reflexionando sobre el tema de los muchachos que se hacen millonarios vendiendo juegos en el Apple store (me refiero a este artículo en newyorker.com), llego a la conclusión que no hay nada como mi humilde vida y que alguna belleza hay en ser un simple programador sin ningún rebullicio que soportar. Nadie sabe que existo, y hasta en eso hay algo extraordinario.

(1514)


A veces me sorprendo de lo hermosa y maravillosa que es la vida… no tengo ojos ni comprensión para asimilar su belleza…

Me refiero a esta noticia en el Newyorker. Claro, eso lo escribí el 4 de abril, el día en que mi vida se llenó de alegría hace 27 años con el nacimiento de mi hija. Pero, cómo asocio dos hechos tan dispares entre sí, es algo que ni una convención de psicólogos podrían explicar.  Muy en mis adentros, en las profundidades instintivas de mi especie, basta con traer vida a este planeta para que la alegría y la belleza renazcan, toda de una vez. Y todo lo demás son banalidades, y todo lo demás no tiene ninguna importancia. ¿Qué se puede comparar al amor maternal? ¿A la sonrisa de un hijo?

 

De Flappy Bird

12-03-2014 4:39 PM
After you, Honorable Sir
                                   - Kwai Chang Caine

 

 

Todo este insólito episodio de Flappy Bird me dejó sin palabras durante casi dos meses. En caso de que usted no está al tanto (seguramente porque está escondido debajo de una piedra, la misma que usa todo el gobierno de Venezuela para evadir la realidad)  Flappy Bird es un tonto juego (como todos los tontos juegos de pájaros) desarrollado por el vietnamita Dong Nguyen durante un fin de semana. 8 meses después de su lanzamiento el juego se transformó en un fenómeno viral, con casi 50 millones de descargas. Dong estaba ganando $50k  diarios. Luego, cuando parecía que no había forma de que sucediera algo más sorprendente, y luego de una aplastante campaña de descrédito generada en los laboratorios de las grandes corporaciones que indicaba que Nguyen se estaba ganando una fortuna con un juego pirateado, y diseñado con arte robado, el 9 de febrero a las 2:02 am, Nguyen anunció al mundo via twitter que “I am sorry ‘Flappy Bird’ users, 22 hours from now, I will take ‘Flappy Bird’ down. I cannot take this anymore.” (Lo siento usuarios de Flappy Bird pero dentro de 22 horas voy a cancelar el juego. No puedo soportar esto más”). Había pasado de un desconocido desarrollador a una celebridad, que incluyó reuniones con el primer ministro de Vietnam.

Desde entonces cientos de proyectos aparecieron en los sitios de freelancing donde oportunistas querían sus $50k diarios solicitando “quiero que alguien me haga un juego tipo Flappy Bird“,  ”estoy dispuesto a pagar $250, completicos, o menos, mejor“.

Surgieron bigotudos análisis sobre la pereza del periodismo actual que había cubierto la noticia de la forma más irresponsable, arbitraria, o en el mejor caso tomando a la ligera la importancia o la falta de ella de todo el incidente, reduciendo todo a un simple copiado y pegado de lo que escribió el primero que se tomó la molestia de decir algo  (Eurogamer,IGN,Gamespot, Destructoid, Kotaku, Forbes, The BBC, Huffington post, The Independent, The Telegraph, Daily Mail, Techspot, Cnet, MSN, etc. etc.)

Otros análisis describen en forma más técnica como  es que se puede explicar la popularidad de Flappy Bird, desde un punto de vista de ciencia cognoscitiva y factores de ingeniería humana (sic).

flappy-bird
Dije que el juego era tonto, no que era fácil. Consiste en mover el pajarito a través de la pantalla. Mientras más rápido hacemos click el pájaro vuela más alto. Lo cual es necesario para evadir los obstáculos. Ahora, aquí va mi teoría: el éxito de este juego no tiene nada que ver con el juego, con los pajaritos, con los obstáculos, con Nguyen  o con el primer ministro de Vietnam. La popularidad de este juego tiene que ver con esa persona que vemos todos los días en el espejo. Nuestro supremo saboteador. Nuestro adulador personal. Nuestro enemigo, amigo, odioso compañero que duerme en nuestra cama. Que maneja el control de nuestro  televisor. El que se acuesta con nuestra esposa o esposo. En fin, nuestra peor pesadilla. Pero voy a regresar a esto en un rato.

dark-castle

Quiero hablar de Dark Castle y de una misión en World of Warcraft. Dark Castle es un juego de video publicado en 1986. Yo lo jugué durante unos dos años en mi Amiga 500, aunque su fama proviene de la versión en la apple Mac (de hecho supe de él a través de alguien que lo jugaba en Mac). Si estás interesado lo puedes jugar siguiendo las instrucciones en esta página. La idea es atravezar los niveles, eliminando los enemigos (ratas, vampiros, robots asesinos) lanzándoles piedras. Pero aquí está el problema: los enemigos se regeneran, justo cuando estamos pasando en el punto de la regeneración. Surge, entonces, un conflicto, queremos llegar a la meta lo antes posible, pero si nos acercamos a alguno de los enemigos nos mata instantáneamente. Cómo resolvemos el problema es el problema. El fulanito ese que vemos todos los días en el espejo comienza a hacer de las suyas, y nos hace perder continuamente.

wration

La forja del Trueno (The Thunder Forge) es una misión en World of Warcraft que forma parte de la larga cadena del Principe Negro, Wration, parte de la expansión de Pandaria. En esta ocasión, debemos enfrentarnos al temible Sha of Algamation, mientras el Principe forja un arma con el cual podemos destruir a este Sha. Al fin y al cabo, a estas alturas ya nos hemos enfrentado en múltiples oportunidades a los Sha y podemos con facilidad “Arreglar este desorden” como dice el principe desdeñosamente. Tenemos la ayuda de un tanque Celestial que mantiene al Sha ocupado y nos permite atacarlo, pero este Celestial fallece continuamente y se regenera luego de unos 15-20 segundos, tiempo durante el cual debemos huir lo más lejos que podamos, o intentarlo, porque estamos en un salom circular, lleno de obstáculos, además nos cae continuamente una lluvia ácida que debemos esquivar y otros pequeños enemigos que debemos eliminar, todo al mismo tiempo. El Sha tiene una habilidad, Insanity, que nos puede matar casi instántanemente, pero la podemos detener golpenado unos yunques, hay como 6, distribuidos uniformemente alrededor del salom.

Entonces, básicamente, debemos estar atentos de lo siguiente:

  • El tanque Celestial está vivo. Si no, debemos huir.
  • Evadir la lluvia ácida. Esto requiere el 100% de nuestra atención.
  • Evadir los mini sha que aparecen por todas partes, y que casi no se ven.
  • Estar pendiente de Insanity, porque cuando comience debemos golpear el yunque. Ah, perdón, olvidé decir que cada yunque se puede golpear una sola vez, por lo que no solamente debemos golpear el yunque, sino que debemos estar cerca de un yunque activo. Tenemos como 2-3 segundos para esto.
  • Estar pendiente de Shadow nova, es otra habilidad pero que podemos esquivar. Bueno, algo así.

Esta misión ha sido calificada generalmente como una tragedia de diseño, una frustración. Alguien ha tratado de hacerla durante meses, le ha prestado el juego a varias personas sin éxito. En fin, hay quien ha dejado de jugar Wow solamente debido a esta misión.

A mí en cambio, me parece la mejor misión del juego, y ojalá la pudiera jugar de nuevo. Por la simple razón que, al igual que Dark Castle, y que Flappy Bird, una vez que aprendes el truco, una vez que sabes cómo jugarla, se convierte en la experiencia más maravillosa que puede haber. Pero, si somos un jugador avezado, si ya hemos matado al Sha múltiples veces, y somos, en fin, expertos en juegos de plataforma, ¿por qué puede ser tan difícil?.  Nuestro saboteador interno, como he dicho. En la mencionada misión, la forja del trueno, lo importante no es matar al Sha, lo importante, como es “fácil” de deducir, es mantenerse vivo. En el juego Dark Castle, descrito arriba, lo importante no es llegar al otro lado del nivel, sino mantenerse vivo, y llegar al otro lado será una consecuencia lógica de esto. Algo similar sucede con Flappy Bird, hay un truco, que una vez descubrimos, dominamos y controlamos, nos trasforma, nos hace volar. El detalle es llejar a ese momento, cuando decimos el triunfal “aja, lo descubrí”. Flappy Bird nos da la oportunidad una y otra vez de lograr ese éxtasis. Yo no sé si Mr. Nguyen  sabía lo que estaba haciendo cuando diseñó el juego, pero lo que el logró es algo que no se ve todos los días

Cómo comenzar con QT o mis primeros pasos con QT

29-01-2014 11:15 AM

Desde hace años (6-7 años no recuerdo) he estado usando el gui de irrlicht para diseñar interfases de usuarios. En este momento estoy implementando una aplicación más complicada así que tuve que escoger algo mejor.  Leí en alguna parte que Ultimate++ era fácil, potente y con una curva de aprendizaje bien suave. Al revisar su sitio web todo parecía aceptable. La verdad estuve unas semanas probando pero no me gustó, así que mi siguiente intento fue buscar lo mejor de lo mejor, que resultaron ser wxWidgets y Qt. Pero luego de leer varias páginas (como esta) resultó claro que QT era el ganador. Su único problema era su tamaño (el paquete tiene 290 mb comprimido). En un post anterior describo mis peripecias instalándolo y ahora quiero comentar mi experiencia al hacer el primer programa “Hello world”.

Para instrucciones sobre cómo instalar Qt en Windows usando MSVS 2010 ver este post.

La recomendación es tratar de compilar un ejemplo para garantizar que todo esté bien instalado. Para ello necesitamos Qt creator, que para mi sorpresa no viene en el mismo paquete, es decir, qt creator no está en los fuentes de qt, es un paquete aparte que se encuentra en el sitio (en esta página). El segundo problema es que todos los tutoriales, ejemplos y explicaciones omiten el primer paso. El ambiente, cómo indicarle a Qt creator dónde está QT, dónde está el compilador (MS VS 2010 en mi caso), etc..

Estuve 15 minutos revisando variables de ambiente, porque al parecer Qt creator sabía que mi compilador es MS VS 2010, pero no sabía cómo encontrar  el compilador (cl) , ni dónde estaban los dll (lo cual es bien confuso). Esto genera Error 1 o Error 2 cuando jom o nmake terminan. La solución es simplemente invocar Qt creator desde una ventana que tenga las variables de ambiente asignadas correctamente. Esto se puede lograr abriendo una consola de comando y ejecutando el archivo vcvars32.bat (que se encuentra en C:\Archivos de programa\Microsoft Visual Studio 10.0\VC\bin o donde quiera que tenga instalado MS VS 2010), o también se puede lograr abriendo la consola de comando que viene en el menú donde está MS VS (en inglés esa opción se llama Visual Studio Command prompt) En este último caso no hay que ejecutar vcvars32.bat  por razones obvias (eso es lo que hace ese comando antes de abrir la consola). Luego en esta cósola nos movemos a donde esté instalado Qt Creator (en mi caso en C:\qt\qtcreator-3.0.0\bin) y ejecutamos qtcreator.exe. Y todos nuestros problemas pasados y futuros se resuelven.

Notas:

  • Estoy consciente de esta discusión: ¿[Si QT es tan bueno, ] Por qué no hay más aplicaciones desktop desarrolladas en QT?, pero la clave aquí es esta afirmación: “But if you’re C++ programmer, Qt is your framework. No rival.” (“Pero if usted es un programador C++, QT es su plataforma. No tiene rival”). La aplicación que estoy haciendo es en C++, ya está desarrollada, no hay mayor discusión.
  • Editado para agregar detalles adicionales al instalar por segunda vez en Windows 7 64bits.

Mors in vallem descensum – Instalación de Qt

24-01-2014 10:27 AM

Estoy compilando qt… desde hace una semana.  qt es una herramienta para desarrollar aplicaciones con interfaz gráfica de usuario. Quiero sustituir a irrlicht gui de una de mis herramientas para manipulación de datos (tipo etl pero sin tanta parafernalia).

Para información sobre cómo comenzar a trabajar con Qt una vez que está instalado ver este post.

Primer paso como se describe aquí (también ver aquí) es descomprimir el archivo qt-everywhere-opensource-src-5.2.0.zip. A mi no me funcionó Winrar, así que utilicé 7z (que se puede conseguir aquí).

Segundo paso crear la configuración, dependiendo de sus preferencias el comando es algo así como esto:

configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop -static
Ver abajo más detalles

¿Errores? Una miríada. Al principio traté de compilarlo utilizando MSVS  Express 2005 aún cuando la documentación dice que solamente MSVS 2010+ está soportado. Problemas. Muchos problemas. Mi conclusión es que es imposible porque hay un archivo que no es compatible en lo absoluto. Inclusive dice que es un archivo que va a ser eliminado. Su función parece ser garantizar que nadie intente compilar con MSVS  Express 2005.

Ergo, MSVS2010. Errores. Muchos. Cada error en MSVS 2010 tiene su explicación. Este error:

YarrInterpreter.obj : error LNK2019: unresolved external symbol ”struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)”

se debe a que se requiere python instalado. python se utiliza para customizar “algo” en el interprete Yarr (un intérprete js de webkit). La documentación indica que se requiere perl, pero yo no leí por ningún lado “se requiere python”. Inclusive hay páginas como esta que indican que la distribución (el famoso archivo qt-everywhere-opensource-src-5.2.0.zip), incluye todo lo necesario. Incluye todo lo necesario my ass.

Este otro error:

C2061: syntax error : identifier ‘__RPC__out_xcount_part’

que aparece en los archivos relacionados a DirectX (por ejemplo /qtmultimedia/src/plugins/directshow) se debe a un conflicto entre la definición de la plataforma (en mi caso win32-msvc2010) y los archivos de DirectX (yo uso febrero de 2007). Por ahí se dice que la solución es garantizar que el include de DirectX esté después del include win32-msvc2010, pero eso a mí no me funcionó. Lo que hice fue hacer algo ridículo, eliminar completamente el include de DirectX en el makefile. Funcionó. Es decir, para compilar directshow no se requiere realmente DirectX. Weird.

Otra fuente de errores es utilizar el comando configure incorrectamente. Este comando tiene 30 opciones diferentes así que se requiere experiencia para usarlo. Será dentro de dos meses, quizás. Entre mis primeros intentos este me parecía el correcto:
configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop
Finalmente me quedé con este:
configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop

Pero se me olvidó que requiero de las librerías estáticas. Ups. Así que debe ser este:

configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop -static

Si por alguna razón usted requiere reconfigurar, se puede borrar todo y empezar de nuevo con:



nmake confclean (o nmake clean (maybe))

Si este comando falla es mejor eliminar la carpeta y descomprimir el archivo  qt-everywhere-opensource-src-5.2.0.zip de nuevo. Yo estuve compilando en una máquina 64 bits, y con target 32bits. Mi configuración no era la correcta así que se geraron muchos errores al momento del link. El nmake clean parece que no borra los makefiles, así que se pueden generar errores que nadie entiende. La forma para estar seguro es como dije al comienzo, borrar la carpeta y descomprimir el archivo  qt-everywhere-opensource-src-5.2.0.zip de nuevo.

Es buena idea utilizar la cónsola del SDK de Microsoft para compilar porque ya tiene todas las variables con los valores correctos. Y debes abrirla con privilegios de administrador.

Notas

 

Las coincidencias no existen, al igual que no existe tal cosa llamada almuerzo gratis

23-01-2014 4:54 PM

Simplemente dos noticias: