4.3.2

01-02-2012 5:38 AM

Patch 4.3.2 de Wow está en línea en este momento. Realmente no tiene mucho contenido sino cambios mínimos pero hay un nuevo sistema de optimización de los archivos para mejorar la velocidad y el desempeño del juego. En mi caso resultó en una descarga de 1.5GB de contenido viejo como resultas de esta reorganización ¿Por qué? Nadie sabe, al parecer algo salió mal con el patch 4.3 y esta nueva descarga es para corregir esas fallas. La discusión en los foros terminó en un encogimiento de hombros, así que todos estamos esperando a que la descarga termine… a una velocidad de 10k/s para mucha gente incluyéndome, aunque anoche llevaba una velocidad de crucero de 85k/s.

Video games, the only profession where failure can be excused with silence (Video juegos, la única profesión donde la excusa para el fracaso es el silencio)

Ni cenizas

29-01-2012 4:13 PM

Hoy amanecí sin recuerdos. Sin anhelos. Sin ansias.  Estoy estático, sin pensamientos, sin ideas. Soy la negación, el vacío, la nada. Y ahora me doy cuenta que no existo. Porque sin remembranzas, sin deseos, sin apetitos, la vida es nada, es un patético remedo de la vitalidad, del espíritu primordial que mueve al cosmos. Porque el cosmos soy yo. Esas tres llamas que conforman el fuego divino de lo humano, de lo demasiado humano, es mi ser primordial. Algunos lo llaman sufrimiento, yo lo llamo el fuego que da energía a la vida. Una aroma, una canción, la figura de una flor que respira  despiertan, avivan esas llamas. Nos esperan cuando menos lo esperamos. Y arden con un vigor primigénio que consume todo lo que toca, lo que se le acerca, todo a su alrededor. Esa fuerza vigorosa, el calor que genera, la luz que provee, la paz que nos brinda es en  esencia lo que nos alimenta. Sin recuerdos, sin anhelos, sin ansias somos menos que cenizas, somos una bruma flotando en la vacuidad. Mejor no existir. Mejor desaparecer y no dejar rastro alguno. Ni cenizas.

agnas-escritor anda suelto
bd_prevpage

Hay que tener mente abierta, mente abierta siempre

22-01-2012 1:10 PM

Varias veces he tenido que hacer un programa Windows para ejecutar alguna tarea o para algún cliente. Desde 1998 he usado directamente la librería Win32 sin ningún wrapper o librería especializada en GUIs. Ya he hecho media docena de estos programas, pero todos han sido simples, con un menú de “Archivo” con las operaciones básicas de “Guardar”, “Guardar Como”, “Salir”, etc.. Nada complicado. Pero desde hace unas semanas he estado pensando en un programa que me ayude a hacer páginas web estáticas. He estado evaluando para este propósito WebsitePainter pero está lleno de problemas y la única vez que lo utilicé para una página real (para un cliente, utilizando los 30 días de evaluación) terminé editando la página html directamente, lo cual fue realmente doloroso porque WebsitePainter utiliza <div> con style “position:absolute”. No una mala idea si tienes un programa que haga el posicionamiento, pero una pesadilla si lo tienes que hacer a mano.

Intento fallido.

Así que decidí hacer un programa que haga esta tarea por mí, pero que lo haga correctamente:

  • Impidiendo que un div se sobreponga sobre otro.
  • Colocándolos en el mismo orden en que están en la pantalla.
  • Y permitiendo más styles (o cualquier style) sobre estos div’s

Pero no iba utilizar mi “low level” framework basado en Win32. Necesito un generador de GUIs para esto. Las opciones obvias e inmediatas son QT y wxWidget (hay otra solución basada en Java descartada por razones obvias). Sin embargo, no obstante, a pesar de que eran obvias, decidí comenzar evaluando una cuarta opción poco conocida. Ultimate++.

No he terminado la evaluación y no sé si voy a utilizarlo, pero si quiero mencionar algo sobre el proceso de acercamiento a un nuevo API. Porque nosotros como programadores debemos tener una mente muy abierta y dispuesta a estudiar un nuevo API. Debemos estar dispuestos a analizar 6 nuevos APIs antes de desayuno. Una mente muy abierta es lo más importante. Y eso se traduce en esperar lo inesperado y visualizarlo desde el punto de vista del API, no desde nuestro punto de vista. Ultimate++ tiene una idiosincrasia muy particular. A veces nos parece que está forzando la sintáxis de C++ al límite. Por ejemplo esta puede ser una típica rutina:

int version = 0;
s / version;
SerializePlacement(s);
files.SerializeSettings(s);
s % dir;
s % splitter;

¿Me perdí de algo aquí? ¿Qué se supone que va a suceder con esa instrucción “s % dir”. Todavía no tengo idea. Pero lo que quiero comentar es esta sencilla instrucción:

w.DrawImage(40, 240, CtrlImg::save());

“w” es el parámetro a la función “Paint”, y DrawImage () es uno de sus métodos. Pero qué es “CtrlImg::save()”? A mi me parece una llamada a un método en el espacio o clase CtrlImg. Algo así como cuando hacemos std::setw(20) para establecer el ancho de una salida en una operación sobre “cout”, la salida por defecto en C++. Entonces, ¿qué estamos guardando con esa llamada a “save()” si en el contexto no hay nada que guardar?. Por eso decía que hay que tener la mente bien abierta cuando entramos en contacto con un nuevo API, porque es como cuando entramos en contacto con una civilización extraterrestre: lo que nos resulta normal es anormal para ellos, y lo que es normal para ellos es anormal para nosotros (”Los oscuros años luz” de Brian Aldis… ¿alguien?) Pues para no estirar demasiado el suspenso esa oscura instrucción es en realidad una constante, o definición, o una etiqueta: CtrlImg::save() retorna un apuntador a la imagen del ícono de “save”, “guardar”. Lo normal en cualquier API o librería es colocar eso en mayúsculas o al menos colocar un comentario en alguna parte (este ejemplo lo estoy sacando de los tutoriales) donde se indique de qué se trata (o en la documentación la cual olvida por completo mencionar algo sobre el tipo de cosas que normalmente se pasan como parámetro a DrawImage). Claro, esto se hubiera resuelto si hubiese conseguido la documentación de DrawImage, antes de que mi mente comenzara a especular (al final conseguí la declaración: DrawImage(int x, int y, const Image& img)). Hay que tener mente abierta, mente abierta siempre.

phpDesigner

12-01-2012 9:13 AM

En realidad yo no he tenido problemas con los editores y los IDE’s en mi vida como programador. Como desde que comencé a programar aprendí a utilizar VI (conocido ahora como VIM por la versión más popular en linux y windows) todas mis necesidades de edición estaban resueltas. Cuando comencé a programar en C++, Win32 el Visual C++ de Microsoft era lo suficientemente versátil y cómodo. Luego estos últimos años que he estado programando en PHP, Eclipse Helios resultaba suficiente. Excepto por un problema. Eclipse Helios está programado en Java, y eso sí que es un problema. El pc pierde el 50% de su performance, queda inestable, y cuando salgo de Eclipse y entro posteriormente en otro programa exigente en cuanto a memoria y recursos hay un 75% de probabilidad que la maquina se cuelgue o se reinicie. Java es algo así como un virus (lo que decían antíguamente de Windows).

Así que un sustituto de Eclipse es una necesidad urgente para mí en este momento. El problema es que un buen IDE requiere tantas caracterísitcas que es un milagro conseguir un producto que las cumpla todas. Adicionalmente mi búsqueda estaba orientada a productos software libre, pero eso era demasiado pedir, así que pensé que dado que paso 8-10 horas diarias trabajando con estas herramientas bien valía la pena unos dólares de inversión para “hacer mi vida más divertida”.

El primer producto que evalué fue phpDesigner. Simplemente: esto es perfecto.  Manejo de proyectos, resaltado del código, buscador con todas las opciones (en el texto seleccionado, en el archivo, en el proyecto, en un directorio), completador de código, teclas programables, bookmarks, etc, etc, etc.  Cada característica, inclusive las que son decorativas están ahí. Y el soporte es inmediato. Algo que me molestó (y que me molesta mucho de algunos editores y programas en windows) es que al hacer una búsqueda el programa presenta un popup diciendo que no encontró nada y que si debe buscar desde el comienzo del archivo. ¿A quién se le ocurre programar eso así?. Yo hago 150-200 búsquedas diarias. ¿Se supone que tengo que responder esa pregunta 200 veces diarias?. Los programas deben comportase lo menos invasivos posible.  Si encuentran algún problema deben hacer algo sin preguntar, pero informando lo que hicieron. En este caso dado que no encontró la búsqueda basta con decir no lo encontré, o comenzar desde el comienzo del archivo e indicar que dado que no lo encontró, lo buscó desde el comienzo. Estuve buscando como cambiar eso, leí la documentación, busqué en el wiki, pero no lo encontré. Así que abrí un ticket de soporte preguntando cómo hacerlo. En pocas horas me respondieron indicando que eso se puede desactivar en el menú de buscar, opciones de búsquedas, “trabajar silenciosamente”. Y funcionó de maravilla. Yo hubiera colocado esa opción en “Configuración” que fue donde lo estuve buscando, pero eso no importa, es cuestión de opiniones.

En resumen, tuve suerte, pdpDesigner el primer IDE de php que evalué resultó insuperable, ni siquiera tuve que evaluar el siguiente en la lista. Así que phpDesigner: recomendado!

Se acabó esto

02-01-2012 5:12 PM

Este se suponía que era el post final del 2011, donde decía “En recta final del 2011, estamos preparándonos para el 2012, año apocalíptico, esperemos que solamente en términos amarillistas”.  Últimamente he estado demasiado concentrado en la programación, y poco a la lectura y a la escritura.  Tanto que ya no leo reddit, slashdot, hackernews, nada de eso. Programación y más programación. Son sitios webs, aplicaciones webs, php, css, javascript. No me he aburrido todavía. Y no parece que llegue a suceder en algún momento de un futuro cercano. Del resto, como diversión he estado jugando wow, como ya dije hace unos meses. El patch 4.3 tiene cosas realmente interesantes. Y la nueva profesión secundaría de Cataclismo, arqueología, me tiene cautivado. Es catalogada como la segunda profesión más aburrida del juego, luego de fishing. Misma que también me gusta endemoniadamente. Es decir, me gustan los juegos que otros catalogan de aburridos. O en wow hay gente de perfiles bien diferentes, o los diseñadores son unos genios porque hay entretenimiento para todos, incluyendo un fanático de los juegos de perseverancia, y dominio y auto control. Interesante. Algún significado debe haber detrás de todo esto.

Exhausto

29-11-2011 1:32 PM

Mi pc debe tener algo en el apache o el mysql. Mis aplicaciones se están colgando. Los sucesos están asociados a Chrome. Hasta ahora no me ha sucedido con Safari. ¿Por qué estoy usando este navegador? Porque firefox, el navegador que estuve usando durante 2 años se puso muy lento. Realmente lento.  Demasiado lento. Cambié a chrome pero ahora se está colgando con el mencionado problema con apache y mysql. No sé cuál de los 3 es el culpable. Y la verdad a veces, luego de resolver 300 bugs en una semana me quedo exhausto. Exhausto. Por ejemplo, en alguna parte, en este sitio http://new.quartz-pay.com/ los símbolos que requiere utf-8 no se están desplegando incorrectamente… en firefox… en algunas máquinas… ¿qué?. Es casi imposible detectar la razón de este problema. Y más aún si es el bug 300 en la lista… de una lista creada por alguién… en alguna parte sobre un sistema hecho por alguien… en alguna parte. Exhausto.

Raideo

16-11-2011 6:54 AM

Comencé a jugar Wow nuevamente luego de un descanso de 2 meses. He observado que de alguna forma necesito dedicarme a algo diferente a la programación para poder descansar con calidad. Hace años leer era algo relajante pero ahora no lo es. Además la lectura es para otros momentos. Hubo una época de mi vida cuando yo leía un libro mensual. Creo que dos. Normalmente libros de más de 400 páginas. Eso no es nada para un lector consuetudinario, pero lo es para alguien normal. Mi hermano hacía una mueca cuando veía mis libros de 10 centímetros de grosor. Así que comencé a jugar Wow. Una alternativa es la televisión, pero realmente no quiero ver tv. Creo que pierdo neuronas cuando lo hago. O mis neuronas se idiotizan viendo tv. Entonces, Wow. Ya mi toon nivel 85 había terminado una de las zonas de cataclismo, Vashj’ir. Pero descubrí que es una zona inútil en términos de reputación. Las zonas valiosas para hacer raideo son Deepholm, donde se puede ganar reputación de Therazane y Mount Hyjal donde se puede ganar reputación de Guardians of Hyjal. Con la primera puedes comprar un anillo nivel 346 y un encantamiento de hombrera que te da 50 de intelecto y 25 de haste (cosas importantes para un mago). Con la reputación de los Guardians of Hyjal te puedes comprar un encantamiento del casco de 60 de intelecto y 35 de crítico, más botas, pantalones, etc.. Ojalá hubiera leído la guía antes de comenzar cataclismo, en realidad la primera zona que hay que hacer es Mount Hyjal. Estoy planeando hacer raideo y todos estos encantamiento y equipos son vitales. Inclusive moví mi toon a un servidor latino para no tener problemas de comunicación. El problema es que el lag es terrible. Tan terrible que no se si voy a poder raidear. 800ms de latencia es la muerte en un raid.

Yo soy nosotros

03-11-2011 7:50 AM

Yo no soy yo. Yo soy nosotros. Desde que era adolescente descubrí que había alguien más viviendo en mi cuerpo. Algunas veces es él el que habla. Otras veces soy yo. A veces hablamos atropelladamente los dos, y la gente no nos entiende. Él escribe cosas como esta:

Cada día. Al amanecer. Al anochecer. Cuando te sientas a la mesa. Cuando enciendes el televisor. Cuando abres el periódico despreocupadamente. Cuando un vecino te saluda: “¡Buenos días vecino!”. Cuando te miras al espejo: murmuras para tus adentros, resignado, revelado, descubierto: estoy viviendo una mentira que ni yo mismo me creo. La verdad  me hace hipócrita…

En cambio yo escribo algo así como esto

Este sitio tiene un conjunto de librerías javascript que vale la pena revisar. Hay una librería para desplegar un archivo pdf, un decodificador de MP3 y una versión en javascript de bcrypt. Esto último me llamó la atención porque …

A él lo llamo agnas escritor, yo soy agnas programador. El se cuela aqui a escribir sus tonterías, oda al pesimismo, todos moriremos igual, el amor es un espejismo y otros infantilismos. Pero él tiene sus momentos. Todos tenemos nuestros momentos. Pero él los tiene en forma hiperbólica. Son extraídos de un universo que no se parece al que podemos palpar, aquí, ahora. Pertenecen a un espacio y a un tiempo diferente. Leemos:

Lo que la gente no entiende de las oportunidades es el componente “una sola vez en la vida”. Creemos que esto que vivimos estará esperando que nos decidamos. Nada más alejado de la realidad. Cuando visualizamos un nuevo camino que nos conducirá al destino que hemos esperado toda la vida, tiene un letrero en letras de neón, brillante, imposible de no ver, que dice nítidamente, “solo una vez en la vida”, “por pocos minutos”, “aproveche ahora”. Es increíble que, recelosos, dudemos, y desechemos la oportunidad, sin siquiera pensarla. A lo mejor es nuestra última oportunidad de ser felices, y la olvidamos sin más, como si fuera propaganda barata. No lo es. Las oportunidades siempre lucen como propaganda barata. Parecen el aviso publicitario de un circo. Generalmente no lo son, están confundidas, camuflageadas buscando de escabullirse subrepticiamente y huir de tu felicidad. Y ahí está el truco. Saber pescar esos tímidos y huidizos relámpagos vitales. Indescifrables. Indetectables. Pero que pueden transformar nuestra vida.

¡Santo estiércol! No se me ocurre nada. Es como una vez que dí una presentación en psicología en 4to año. Quizás una de mis primeras presentaciones. Todo el mundo se quedó callado. Cuando pregunté qué pasó, por que no dicen nada, la respuesta fue algo así como “no se me ocurre nada que decir”. O cuando leemos aquella metáfora de García Márquez: “el ambiente estaba tan húmedo que los peces podían volar por el aire…”. Ese es quizás el problema de agnas-escritor, transita su vida en el silencio, no despierta sino un éxtasis lacónico que puede ser admiración o repulsión por tanto sin-sentido. O tanto “así es”.

Por todo eso tengo a agnas-escritor encadenado y confinado al tractac.  ”La verdad  nos hace hipócritas” no aparecerá aquí en este blog. Tendrá que abrir otro en alguna parte. Si es algo que valga la pena, de esas cosas que puedo colocar en la categoría “Así es”, bueno tal vez lo permita en el tractac. Pero el resto no. He decidido dejar atrás ese sin-sentido que viví en el 2004-2007, ese período signado por una ebriedad mental donde solamente podían germinarse perlas como “La verdad  nos hace hipócritas”. Me parece increíble que agnas-escritor siga pensando de esa forma. Estos no son tiempos para estar pensando en eso…

Post escrito la noche de Halloween… agnas-escritor
bd_prevpage bd_nextpage

Nice to meet you, I´m an Automation Business Logic Specialist

02-11-2011 8:13 AM

Desde los tiempos de la universidad cuando leí los ensayos de Dijkstra yo me identifico como un programador (para ser exactos estuve dedicado a vendedor de tecnología durante 15 años, pero esa es otra historia). Lo que yo hago es programar sistemas que tienen que ver con la lógica del negocio. Rara vez hago una simple página web. Pero la médula de lo que hago es programar. Sin embargo, estas recomendaciones profesionales, donde nos advierten que promocionarte como programador es colocar una fecha a tu despido me hicieron reflexionar. El problema es que para los funcionales (esa gente que sabe cómo funciona la compañía, usualmente los dueños,  el gerente de finanzas o el gerente general) los programadores son un gasto con una dudosa importancia que se la pasan trabajando en unos activos de alta depreciación llamado equipos de computación que son bien costosos de mantener. La lógica de negocio normalmente es simple, pero cuando pasa por el filtro del departamento de TI (tecnologías de información) se convierte en griego con acento chino. Es decir, incomprensible. Como vendedor tuve innumerables reuniones con estas personas (por ejemplo con el gerente de finanzas de un banco con 2000 agencias) y al oirlos hablar descubres la sencillez con que explican cómo funciona el negocio. Y ellos esperan esa misma sencillez pero traducido en términos informáticos claros. Así que la interacciones con ellos debe ser en términos de lógica de negocios. No en términos de que el driver de mysql de php debe estar instalado en /etc, o algo por el estilo. Así que soy un especialista en automatización de lógica de negocios. Encantado.

Claro esto ha tenido algunas respuestas con argumentos realmente débiles y que se salen del punto. No se trata de ocultar, o ir al grano, o hacer honor a la verdad cuando decimos a qué nos dedicamos. Si de esto último se trata, en honor a la verdad yo dedico menos del 50% a programar. La mayor parte del tiempo lo dedico a traducir en términos computacionales  reglas de negocio. Si eso es “programar” o no, no es exactamente el punto, sino que es sano traducirlo a algo que los funcionales puedan entender. Por razones profesionales y de sentido común es una buena práctica no comenzar a hablar en téminos legales como hacen lo abogados o en términos médicos como hacen los doctores. Los que no saben nada de eso van a preguntar de todas formas: ”¿puede explicar eso en español?” .

Hay una brecha

26-10-2011 10:18 AM

Nadie le dice esto a las personas que son principiantes, me hubiera gustado que alguien me lo dijera. Todos los que se dedican a realizar un trabajo creativo, lo hacen por su buen gusto. Pero hay una brecha. El primer par de años los resultados no son tan buenos. Trata de ser bueno, tiene potencial, pero no lo es. Pero tu buen gusto, lo que lo metió en el juego, puede ser tu perdición. Y tu buen gusto es lo que te decepciona de tu trabajo. Muchas personas nunca superan esta fase, muchos abandonan. La mayoría de las personas que conozco que hacen un trabajo interesante, pasaron por años de esto. Sabemos que nuestro trabajo no tiene esa cosa especial que queremos que tenga. Todos pasamos por esto. Y si usted está recién empezando o  está todavía en esta fase, tienes que saber que es normal y lo más importante que puedes hacer es hacer un montón de trabajo. Póngase una fecha límite para que todas las semanas se termine un objetivo. Es sólo al pasar por un gran volumen de trabajo que va a cerrar esa brecha, y su trabajo será tan bueno como sus ambiciones. A mí me tomó más tiempo para encontrar la manera de hacer esto que a nadie que  he conocido. Va a tomar algún tiempo. Es normal que tarde un poco. Usted va a tener que lucrar para lograrlo.

Ira Glass

Traducido de aquí debido a que fue mencionado aquí. Una interesante forma de explicar porqué el esfuerzo y la perseverancia son tan importantes. En cualquier arte y en particular en el desarrollo de juegos donde hay tantos factores que pueden influenciar el acabado final.