Cuanto tiempo sin actualizar

Marzo 18, 2009 por Gallo

La de dias que hace quen o paso a actualizar por aquí, que poca constancia de verdad, pero bueno supongo que no tengo ninguna novedad por ahora que contar, mismo trabajo, eso si acojonaos todos porqué hay muchos despidos :S, feliz con mi chica a la que veré de nuevo prontito ^_^.

Seguimos dandole al vicio como no, ahora sin responsabilidades con la hermandad, simple y puro dps a la hora de la raid y yasta. Estoy en una hermandad nueva, por lo visto un grupo de “Pros” se quiso separar de sus respectivas hermandades y crear una nueva para acabar el content, y vaya si está acabado, solo tiene pendiente el Hardmode de un boss y ya está, hasta el próximo parche nada nuevo.

Como única novedad está el Japan Week, una especie de salón Manga no oficial bastante mal organizado y que a muchas tiendas por lo visto no les salió demasiado rentable, la de mi chica incluida :( . Pero bueno al menos tubimos una cena muy bonita los dos en un restaurante :P jeje, muy romantico todo.

Y bueno, mirando pisitos ^_^ quizá algún dia uno de esos pisos se convierta en nuestro nido de amor, espero que pronto aunque me tengo que preparar para dar ese paso, no está la cosa tan mal eh, con el rollo de la crisis el alquiler ha bajado mucho, así que mientras haya un ingreso de dinero cada mes, sea mucho o poco es mas que suficiente para vivir fuera de casa :) .

El tema game developer… puf, antes me dedicaré a mago que a eso XD, como si lo viera, estoy prácticamente haciendo NADA por la labor, me gustaria hacer algo mas pero, para ello es necesario reaprovechar mejor el tiempo libre y dejar el wow, quizá cuando acabe de ver el content quizá ya mismo… no se, como también me tengo que plantear una vida en pareja.. demasiadas cosas en las que pensar quizá espere un poco a ver como me va donde estoy ahora trabajando, quizá trabaje de freelance, quién sabe, quizá pueda hacer un master si me aceptan, ya veremos :P .

La motivación

Enero 12, 2009 por Gallo

Como decia el de la película Princesas  “Tu le pones pasión a lo tuyo?”, el tema está ahí, en ponerle pasión. Como ya explique tengo problemas con la inspiración y el WoW me absorbe el tiempo libre de una forma que no es natural, básicamente porqué intentando escribir este mismo post no he podido definir cual es mi objetivo claro del WoW, quizá simplemente sea ver todo lo posible de este juego, ver que nos deparan los diseñadores y desarrolladores.

Tener un objetivo, una motivación es lo que hace que te dediques realmente a algo y lo vivas, que vuelques tus esfuerzos y tu tiempo en que salga adelante. Es por eso que tras AÑOS de no hacer ningún proyecto personal en PHP hice uno en cuestión de 1 semana, porqué habia motivación, habia un objetivo. Se trata de un sistema de recuento de DKPs para la hermandad del WoW, tenia claro que tenia que hacer algo mejor que lo que estamos usando ahora y lo hice.

Por el momento posiblemente amplie esta aplicación de recuento de puntos con un AddOn para volcar la información del juego a un archivo, para parsearlo y agregar las raids de una forma mas automática. La creación de AddOns para el WoW es una assignatura que tengo pendiente y es otro paso en la programación de videojuegos, ya que te familiarizas con un lenguaje que te permite interactuar con la interfaz de usuario y los eventos del juego, en este caso utilizan LUA, lenguaje de script muy extendido y que utilizan muchos frameworks de videojuegos, y XML para “pintar” la GUI.

Y luego? Bien, luego quiero terminar mi etapa Web, siento que me estoy encasillando demasiado en este tipo de programación, se me da bien no lo voy a negar, ademas como a muchos, también me motiva destacar en algo, pero lo que realmente me gustaria estar haciendo son proyectos personales relacionados con los videojuegos, aunque sea algo como el addon que he citado para la aplicación Web, o el juego basado en Web tantas veces citado en el Blog, algo a modo de puente entre lo que ya estoy haciendo y lo que me gustaria hacer… Ojala encontrara lo que realmente me hiciera ponerme las pilas, el siguiente paso ha de ser empezar algo que pueda enseñar junto con el currículum, algo que muestre de lo que soy capaz y donde vuelque esos conocimientos que he adquirido sobre el diseño y el desarrollo de videojuegos, pero… a parte del tiempo para desarrollarlo, que quitando el WoW tengo bastante, hace falta la inspiración u_u, el objetivo, quizá sea una empresa en la que me gustaria estar, a saber.  De donde la podria sacar esa motivación?

Clase para gestionar AJAX (GalloAjaxHandler)

Enero 8, 2009 por Gallo

Tras un tiempo tanteando la opción de publicarla aquí está, una pequeña herramienta que suelo utilizar en mis aplicaciones webs para hacer AJAX.

Consiste en una clase con básicamente los siguiente métodos:

- Constructor de XMLHttpRequest.
- Método para capturar errores.
- Método de callback que debe ser sobreescrito para gestionar la respuesta.
- Método para realizar una llamada AJAX.
- Método para recojer todos los campos de un tipo indicado de un formulario.
- Método que combina los anteriores para enviar todo el formulario.
- Método para realizar la llamada añadiendo un script de forma dinámica, este no tiene nada que ver con lso anteriores pero está incluido dado que con este se puede realizar cross-server AJAX, en caso de que queramos tener el web en un lugar y un servidor separado para gestionar el AJAX.

Y como propiedades:
- Datos enviados.
- Datos recibidos.

Podeis encontrar un par de ejemplos y el código aquí:

http://www.virtualcraft.net/widgets/gahsamples.php

También está publicado en archivos a prueba en php-hispano con los .php de ejemplos para descargar en un zip junto con el .js:

http://www.php-hispano.net/archivos-tmp/148

Harder

Diciembre 16, 2008 por Gallo

Bueno bueno, ando liadillo con la guild de WoW, ahora como oficial y RL (raid lider), hay que estar por bastantes cosillas. Tengo casi todos los otros proyectos parados, ni juegos ni nada u_u.  Habrá que plantearse algo pronto, aun tengo documentación hecha de juegos que habia pensado basados en web.

Sigo con el proyecto en el curro… un poco cansao ya pero va avanzando…  me plantearé que hacer cuando lo termine… quiza algún cambio me venga bien u_u.

No puedo con este proyecto …

Diciembre 3, 2008 por Gallo

Estoy en un proyecto del que estoy hasta los cojones, se entrega en enero y llevo un mes con el, y la verdad no sabria calcular la estimación total, ni yo, ni ningún analista de este planeta. Vamos a ponernos en situación, y a filosofar un poquito sobre la programación que se practica por aquí. Hay una serie de aplicaciones web hechas con JSPs y muchisimo javascript a pelo, es decir sin frameworks ni nada, y funcionan, de hecho hasta su mantenimiento no es tan incomodo como podia parecer, pero se está migrando todo a un framework propietario super chulo de la muerte basado en struts,

La perspectiva no parece muy mala, al fin y al cabo el framework propietario tiene sus ventajas a la hora de programar, la principal que no hace falta saber programar, el problema es que precisamente quieren que pongan a monos programando con el, debe ser por eso pasa por 300 clases para poner un hola mundo, y 300 mas para ponerlo centrado y en negrita, esto es facil de ver cuando salta una excepción no controlada y el track ocupa 5 pantallas (scroll). Lo mas insoportable del framework es que para moverte de una pantalla a otra, en linea recta perfecto, como quieras hacer un salto a otro lado, prepara tu imaginación y mogollon de rato para mapearlo todo, no basta con meterlo en sesion (StrutsContext). Dado que está pensado para ir en linea recta y palante, un simple menú que permita saltar entre las pantallas es lo mas tedioso de implementar, depende de como lo plantearas, una nueva pantalla representar modificar todas las vistas, y todos los webeans (flujos).

El otro gran quebranto es la migración, los modelos aquí son comunes en muchos proyectos, pero creeis que he podido reutilizar ni una sola clase de modelo? juas, ya me gustaria a mi, vereis, struts 1, o al menos la forma en que aquí lo utilizan, es muy bonito cuando tus modelos o beans tiene todas las propiedades como Strings, o alguna clase que implemente toString y te de su valor, como fechas etc, pues bien, aquí el colega programador super purista ya divido los datos en mogollon de clases, vease por ejemplo que un Cliente, tiene propiedades de la clase Domicilio, siendo domicilio una clase con las propiedades calle, numero, pisoPuerta, ciudad, cp, las cuales si son Strings, o si no hay suerte pueden ser de otros tipos propios. Esto va fatal para trabajar aquí, la cosa es que estos modelos no son del proyecto en JSPs, son de proyectos YA MIGRADOS!!, acojonante.

Total todos los modelos y beans nuevecitos de mi puño y letra, lo mas fácil ha sido hacerlo por pantallas, al ser una serie de formularios (como todo vamos) pues un bean con todos los datos de la pantalla, que es lo que le mola para luego pintar o recojer los datos (sobretodo recojerlos), en serio no soy yo, es que al fwork le va mejor. Total, aun por la mitad estoy añadiendo nuevas propiedades a estas clases.. pq? bueno, vayamos a la información de la que dispongo.

Acceso parcial a la aplicación original: pues como no podia ser de otra manera tiene fallos, sobretodo de javascript y como solo funciona en IE y es bastante especial se complica mucho pasar de pantalla, asi que no puedo ver ni todos los pasos ni hacer pruebas.

Screenshots de las pantallas actuales: posiblemente lo mas util del proyecto, ya que yo no consigo acceder a todo que mejor que poder ver como serian esas pantallas, estas screenshots han servido para reproducir las pantallas y crear los modelos.

El analisis de requisitos: vaya, ahora es cuando muchos pensaran que seré un inutil por no saber aprovechar este documento, amigos, el que consiga aprovechar este documento que me lo diga, es el analisis de requisitos original, solo le falta estar escrito en castellano antiguo, 27 paginas en las sobra redundancia, y creo que muy mal separado, si implemento un método que valida algo, quiero cerrarlo y punto, no quiero pasar 3 paginas y tener que editarlo, y pasar 3 mas, borrar lo anterior y volverlo a editar y si me lo leyera entero primero, no serviria, demasiados detalles que no recordaria, asi que hay que seguirlo paso a paso.

Con este material estoy lidiando, siguiendo el documento que me proporcionaron y que cada vez me cansa mas, sobretodo esos requisitos concretos de cada cliente, vale son requisitos y hay que ponerlos, pero joder, seguro que habia una forma mejor de indicarlo.

Para rematarlo la base de datos es comun para TODOS los proyectos en desarrollo, una fantastica db2 que debió inventarse antes que el fuego y que no para de ser tocada por todo cristo, lo cual conlleva a que en medio del desarrollo deje de funcionar la consulta de datos… genial vamos. Desde luego tengo algunas ideas de como mejorarlo, pero a estas alturas ya es chungo, no voy a volver a empezar.

Voy a citar un texto que me explico un compañero, es de un libro de “teoria de programación”, y creo que es muy acertado:

Si en un barrio, se rompe una ventana y nadie la repara, a la larga la gente que pase por ese barrio y vea la ventana pensaran que en este barrio no se cuida nada, así que el siguiente que pase no se molestará en tirar su lata de cocacola a la papelera, la dejará por ahí, y si se rompe otra ventana tampoco la repararán, y el siguiente que pase aun le parecera que lo cuidan menos ese barrio. Con esto quiero decir que los proyectos de software son como ese barrio, si hay un pegote de mierda enorme en los requisitos, no va a er el programador el que lo limpie, y dejará también pegotes en su código, y el siguiente programador que venga detras de el, cuando vea tal spaguetti hará lo mismo, haciendo la bola de mierda mas grande, hasta que llega un dia que hay que migrar la aplicación, y si se reaprovecha la basura que habia antes, pues acabará pasando lo mismo…, mas spaguetti, ni por muchos frameworks propietarios ultraproductivos que se utilicen, la cosa no va a mejorar por que sí a no ser que se replantee bien desde sus raices.

Fin del /cry.

Crisis: Artículo del 98 de Arturo Pérez-Reverte

Noviembre 28, 2008 por Gallo

Artículo del escritor español Arturo Pérez-Reverte, publicado en `El Semanal’ el 15 de noviembre de 1998, y que ahora, diez años después, parece hecho ex profeso para esta crisis.
****

Usted no lo sabe, pero depende de ellos. Usted no los conoce ni se los cruzará en su vida, pero esos hijos de la gran puta tienen en las manos, en la agenda electrónica, en la tecla intro del computador, su futuro y el de sus hijos.

Usted no sabe qué cara tienen, pero son ellos quienes lo van a mandar al paro en nombre de un tres punto siete, o un índice de probabilidad del cero coma cero cuatro.

Usted no tiene nada que ver con esos fulanos porque es empleado de una ferretería o cajera de Pryca, y ellos estudiaron en Harvard e hicieron un máster en Tokio, o al revés, van por las mañanas a la Bolsa de Madrid o a la de Wall Street, y dicen en inglés cosas como long-term capital management, y hablan de fondos de alto riesgo, de acuerdos multilaterales de inversión y de neoliberalismo económico salvaje, como quien comenta el partido del domingo.

Usted no los conoce ni en pintura, pero esos conductores suicidas que circulan a doscientos por hora en un furgón cargado de dinero van a atropellarlo el día menos pensado, y ni siquiera le quedará el consuelo de ir en la silla de ruedas con una recortada a volarles los huevos, porque no tienen rostro público, pese a ser reputados analistas, tiburones de las finanzas, prestigiosos expertos en el dinero de otros. Tan expertos que siempre terminan por hacerlo suyo. Porque siempre ganan ellos, cuando ganan; y nunca pierden ellos, cuando pierden.

No crean riqueza, sino que especulan. Lanzan al mundo combinaciones fastuosas de economía financiera que nada tienen que ver con la economía productiva. Alzan castillos de naipes y los garantizan con espejismos y con humo, y los poderosos de la Tierra pierden el culo por darles coba y subirse al carro.

Esto no puede fallar, dicen. Aquí nadie va a perder. El riesgo es mínimo. Los avalan premios Nóbel de Economía, periodistas financieros de prestigio, grupos internacionales con siglas de reconocida solvencia.

Y entonces el presidente del banco transeuropeo tal, y el presidente de la unión de bancos helvéticos, y el capitoste del banco latinoamericano, y el consorcio euroasiático, y la madre que los parió a todos, se embarcan con alegría en la aventura, meten viruta por un tubo, y luego se sientan a esperar ese pelotazo que los va a forrar aún más a todos ellos y a sus representados.

Y en cuanto sale bien la primera operación ya están arriesgando más en la segunda, que es el chollo, e intereses de un tropecientos por ciento no se encuentran todos los días. Y aunque ese espejismo especulador nada tiene que ver con la economía real, con la vida de cada día de la gente en la calle, todo es euforia, y palmaditas en la espalda, y hasta entidades bancarias oficiales comprometen sus reservas de divisas. Y esto, señores, es Jauja.  Y de pronto resulta que no. De pronto resulta que el invento tenía sus fallos, y que lo de alto riesgo no era una frase sino exactamente eso: alto riesgo de verdad.

Y entonces todo el tinglado se va a tomar por el saco. Y esos fondos especiales, peligrosos, que cada vez tienen más peso en la economía mundial, muestran su lado negro. Y entonces, ¡oh, prodigio!, mientras que los beneficios eran para los tiburones que controlaban el cotarro y para los que especulaban con dinero de otros, resulta que las pérdidas, no.

as pérdidas, el mordisco financiero, el pago de los errores de esos pijolandios que juegan con la economía internacional como si jugaran al Monopoly, recaen directamente sobre las espaldas de todos nosotros.

Entonces resulta que mientras el beneficio era privado, los errores son colectivos, y las pérdidas hay que socializarlas, acudiendo con medidas de emergencia y con fondos de salvación para evitar efectos dominó y chichis de la Bernarda. Y esa solidaridad, imprescindible para salvar la estabilidad mundial, la paga con su pellejo, con sus ahorros, y a veces con su puesto de trabajo, Mariano Pérez Sánchez, de profesión empleado de comercio, y los millones de infelices Marianos que a lo largo y ancho del mundo se levantan cada día a las seis de la mañana para ganarse la vida.

Eso es lo que viene, me temo. Nadie perdonará un duro de la deuda externa de países pobres, pero nunca faltarán fondos para tapar agujeros de especuladores y canallas que juegan a la ruleta rusa en cabeza ajena.

Así que podemos ir amarrándonos los machos. Ése es el panorama que los amos de la economía mundial nos deparan, con el cuento de tanto neoliberalismo económico y tanta mierda, de tanta especulación y de tanta poca vergüenza.

*****

Javascript remoto

Noviembre 19, 2008 por Gallo

Bueno los entendidos en el tema ya sabrán de que hablo, Javascript, nuestro código de programación web en el lado del cliente, jeje. Pongamonos en situación, resulta que mirando una herramienta que proporciona WoWHead para consultar datos de items, quests y otros elementos del WoW, y mostrarlos en un tooltip en tu página web, me ha entrado la curiosidad por saber como hacen que desde mi página puda consultar su base de datos, claramente eso no era AJAX convencional luego explicaré por qué.

Me he puesto a mirar su código y una vez encontrados los elementos que realizan dicha consulta he buscado un poco de documentación, no ha costado mucho dar con algunos ejemplos mas claros, dado que su código está “semiencriptado”, o mas bien todas las funciones y variables han sido renombradas a cadenas de 2 caracteres, esto dificulta la comprensión del código claro, pero es lo mejor en este tipo de aplicaciones dado que ocupan mucho menos, seguramente ellos tengan una versión original, embellecida, con otros nombres y con comentarios. Con un poco de paciencia,  sin la ayuda que nos proporcionaria la semantica en este caso, se puede averiguar como funciona.

Dicho esto explico: son muchas las aplicaciones que utilizan ya la tecnologia AJAX para hacer llamadas al servidor de forma que el cliente no lo vea, pudiendo consultar o guardar datos sin actualizar la página.

Existen varias formas de hacer AJAX dado que no se considera ni un código, ni una clase, ni una serie de funciones, aunque quizá el mas usual sea el XHR (XMLHttpRequest, o el equivalente en ActiveX). Ocurre que con este objeto no podemos hacer AJAX de forma remota, es decir, solo podemos hacer request hacia nuestro propio dominio. Sin embargo hay otra forma de hacerlo contra otros dominios, aunque lo que obtendremos siempre será código javascript para ejecutar.

Como funciona? Miy simple, en html tenemos el elemento <script>, este puede ser usado o bien para escribir código javascript en nuestra página, o para llamar a un archivo .js con dicho código, este archivo puede estar en otro servidor, la técnica consiste en agregar dinamicamente con el propio javascript un elemento script a nuestro head, cuya propiedad src apuntará a un js que puede o no estar en nuestro servidor, lo bueno es que obviamente podemos apuntar o bien a un js estático, o a una página dinámica generada en el servidor, enviando así cualquier consulta que queramos, también podemos pasar parámetros por GET con esta fórmula.

Veamos el ejemplo de código:

function llamadaServidor(urlJsRemoto) {
	var head = document.getElementsByTagName('head').item(0);
	var anterior =
        document.getElementById('ultimoScriptCargado');
	if (anterior ) head.removeChild(anterior );

	script = document.createElement('script');
	script.src = urlJsRemoto;
	script.type = 'text/javascript';
	script.defer = true;
	script.id = 'ultimoScriptCargado';
	void(head.appendChild(script));
}

La funciónn agregará un script al head llamando a “urlJsRemoto”, ademas borrará siempre el anterior script cargado, para ir limpiando scripts que ya hemos utilizado.

Link de referencia en inglés: http://www.dotvoid.com/2002/08/remote-scripting-with-javascript/

WotLK está cerca

Noviembre 12, 2008 por Gallo

Como jugador del WoW que soy no podia dejar de comentar que pronto estará disponible la expansión, exactamente a partir del dia 13 de este mes, pero ya hay parte de el disponible, se puede descargar desde la página oficial y también esta disponible la activación de la cuenta de expansión, esto será para los que consiguieron una cd-key del juego ya, vease ganadores de algún concurso, o enchufados jeje.

Descarga del cliente:

http://www.worldofwarcraft.com/account/download/clients/pc/InstallWoW.exe

Por otro lado Blizzard ha anunciado al intención de unificar las cuentas de sus juegos online, imagino que entonces se utilizará una sola cuenta para entrar en el WoW, diablo 3, starcraft 2 y posteriores juegos, del tipo “Battle.net account”, las actuales son “WoW account”, lo que supondria registrar cd-keys diferentes en esa cuenta, algo parecido a las cuentas de Steam, donde registras diferentes juegos para una sola cuenta.

Pronto empezarán las nuevas andanzas en Northrend :P .

Uninspired lone developer

Noviembre 6, 2008 por Gallo

No soy partidario de los títulares en  inglés, pero este sonaba bien jeje. Pues ocurre que sufro una desinspiración total respecto al tema de desarrollar videojuegos, el tema es que llegar a casa despues de estar 8 horas y media programando, le quitan a uno las ganas de programar del todo :\, no solo de programar, también de apuntar y analizar ideas, así que muchas se me están quedando en el olvido.

Hay dos opciones, o bien hacer un web based de estrategia, utilizando sobretodo php, o bien hacer un juego de escritorio (o applet), en java, con gráficos 2D en el que se maneje programación de un game loop, gráficos, física, etc…

Es posible que tire por lo del juego en java, encontré un motor para 2D muy fácil de utilizar, a ver que sale :P .

Donde está la musa que ha de inspirarme? ;) .

Panellets!

Octubre 30, 2008 por Gallo

Que ricos son los panellets, este dulce típico de Catalunya y que tradicionalmente preparamos para el dia de todos los santos, 1 de noviembre. Me encantan, son un peligro en exceso pero esque están buenísimos.

Hace años que no preparo panellets, siempre los compro, a ver si se repite la azaña y alguien se digna a intentar preparar unos cuantos, de piñones sobretodo que son mis favoritos :P , también es muy divertido hacerlos con colorante para que sean verdes por ejemplo jejeje, con una cereza, o de coco :P .

How to hacer panellets: http://www.directoalpaladar.com/2006/10/30-como-hacer-panellets