Posts filed under 'Software'
El API de desarrollo de Google Maps impone un límite de 50000 peticiones de geocache cada 24 horas por cada API key (corrijo, en septiembre lo cambiaron a 15000 peticiones por IP de cliente, se puede leer aqui), eso está publicado en la web de su API, lo que no advierten por ningún lado es que también hay un límite en las peticiones de “tiles” (trozos de mapa para componer la imagen que quieres ver) para una determinada IP en un determinado periodo de tiempo.

Si usas un programa como el CompeGPS y usas los mapas de google maps con el, al poco tiempo de estar utilizándolo verás como deja de dibujarlos presentando un mensaje que dice “overzoom”. Si luego vas a google maps, wikiloc, o cualquier otra aplicación web que haga uso del API de google maps, comprobarás con asombro que no puedes ver ningún mapa y que aparece un mensaje como “no disponemos de imágenes de la zona a este nivel de zoom” (lo cual no es cierto).
Esto ocurre porque el CompeGPS realiza tantas peticiones de mapas de manera simultanea y en tan corto periodo de tiempo que los servidores de Google Maps lo identifican como un software maligno haciendo un ataque DOS o como un software de “robo” automático de imágenes por lo que marcan tu IP como “sospechosa” y te cortan el servicio hasta pasado un buen rato.
Para demostrarle a Google que no eres un bot maligno, hay que acceder directamente a la página de petición de mapas:
http://mt0.google.com/mt?n=404&v=w2.61&x=0&y=0&zoom=17
o la de imágenes satélite
http://kh0.google.com/kh?n=404&v=20&t=t
para descubrir la razón por la que no te deja verlas. Además de explicarte el problema, probablemente te pedirá que introduzcas un código antibots y en cuanto lo hagas, voilá, todo volverá a funcionarte… hasta que vuelvas a usar el CompeGPS o wikiloc compulsivamente otro rato, claro.
Octubre 24th, 2007
Mi colega el que me puso el mote que da nombre a esta página, el otro día me obsequió con un trabajito de investigación. Su mayor exponente de estar a la vanguardia de la tecnología, un PVR Thomson DTH 8550E se había estropeado y no le permitía acceder al menú del equipo debido a que la placa base del mismo estaba frita (palabras del servicio técnico).

En estos casos el aparato se lleva a la casa a hacer efectiva la garantía, pero mi amigo temía (con razón) por el destino que sufrirían las pelis que tenía guardadas en el disco duro, con vídeos de sus monstruitos haciendo el monstruo en diversos eventos sociales. Bueno el caso es que como en la tienda le iban a dar un aparato nuevo, me lo trajo al sanatorio de dispositivos electrónicos de Makinolo para tratar de extraer la información del disco antes de despedirse de el.
No me pareció en principio una tarea muy complicada. Al abrir el cacharro se observaba perfectamente una unidad grabadora de DVD Philips y un disco duro IDE Seagate ST3160022ACE de 160Gb.
Conecté el disco a uno de mis PCs y la BIOS lo reconoció a la primera. Sin embargo Windows XP, aunque lo detectó como dispositivo nuevo, no fue capaz de añadirlo a la lista de unidades.
Supuse que el problema era que el sistema de ficheros que usaba el disco duro no era el NTFS que usa XP así que metí un Knoppix en el CD y volví a arrancar. Se supone que esta distribución de Linux, autocontenida en un CD, es capaz de detectar y montar unidades de disco de los mas diversos sistemas de ficheros, incluyendo FAT, FAT32, EXT2, EXT3, EFS, NTFS y algunos mas que no se usan muy habitualmente.
El knoppix detectó el disco, pero a la hora de montarlo… no era capaz de determinar el sistema de ficheros. Lancé un fdisk -l para sacar la tabla de particiones del disco, pero me decía que no había tabla de particiones. Buscando alguna solución por Google di con una utilidad para Linux, llamada gpart que se supone capaz de adivinar el particionamiento de un disco duro que por cualquier causa haya perdido la tabla de particiones.
gpart, después de casi una hora de escaneo, no fue capaz de decirme nada en absoluto acerca del disco, así que solo me quedaba acudir a mis amigos de Soygeek, a ver si a alguno se le ocurría de que forma podía leer, de manera no invasiva (es decir, sin escribir nada en el disco, para no dejarlo inservible de cara al PVR), el dichoso disco.
Me indicaron una dirección de internet en la que se hablaba del disco duro de un aparato de la misma marca pero de un modelo anterior, el DTH 7000, donde confirmé que estos aparatos utilizan un formato propietario. Allí encontré el DTH Explorer que lee los discos del DTH 7000, creado por Didier Cadiou (Francés, al igual que la marca Thomson). No podía ser tan fácil. No funcionó. No identificaba el disco como un disco Thomson.
Esta página me llevo a un Grupo de Yahoo en el que se hablaba sobre el DTH 7000 y en el que habia otra utilidad mas espartana que se llamaba DRS 7000 Data Extraction Tool. Tampoco hubo suerte, no era capaz de detectar el disco.
Parecía como si entre las dos versiones del aparato hubiesen cambiado el formato del sistema de ficheros, así que me tocó explorar directamente el disco a nivel físico con la utilidad WinHex para ver si encontraba algo aprovechable.
Después de mirar un montón de bytes que parecían no tener ningún sentido encontré lo siguiente:
uJ e20A-og2 00 7
Parecía claro que era una fecha, el Jueves 20 de Agosto de 2007, pero codificada de alguna manera extraña. Observandolo atentamente se ve que se cogen los caracteres de 2 en 2 y se dan la vuelta, como si estuviese usando Big Endian de 16 bits pero con todos los valores, no solo los numéricos. En efecto, al darle la vuelta a los caracteres me salía:
Jue 02-Ago 2007
Esto podía ser perfectamente una entrada en una tabla de archivos que indicase la fecha de creación de uno de los vídeos del disco. Como había visto otros códigos raros en otras zonas del disco, repetidos muchas veces, pase a descifrarlos:
tSrogaLeba siTynDU F
Parece rumano, pero no, deshaciendo la encriptación rústica que usan:
StorageLabs TinyUDF
¡MAGIA!
Ahora si que Google iba a ser de mucha ayuda, el disco estaba usando el TinyUDF (Universal Disk Format) que es una variante del sistema de ficheros usado para almacenar archivos en medios ópticos como DVDs o CD. En concreto el aparato este usa la librería TinyUDF de StorageLabs.
Al parecer es bastante común que los PVR (aparatos de DVD y TDT) con disco duro usen este sistema de archivos por las ventajas que ofrece. UDF también lo usan las unidades REV removibles de Iomega.
Buscando mas por foros y mas foros, encontré que casi todos los que se habían visto en esta tesitura estaban usando con gran éxito un programa, el SiGMATek_DVBH_1000_HDD_Reader, que permite montar las unidades TinyUDF usadas en los PVR en un Windows XP.
Como cabía esperar, a mi no me funcionó, ni cuando desactivé el soporte para unidades virtuales de CD/DVD (Nero, Alcohol120%, etc…) que parece que entra en colisión con este software.
Busqué mas y llegué al pvr101disk, una especie de driver para windows que se interpone entre el driver de UDF que lleva el propio windows (udfs.sys) y el disco físico y hace el swapping de bytes on-the-fly. Hay que usarlo en modo línea de comandos después de instalarlo de manera rudimentaria.
Pero tampoco funciona y esto ya si que me terminó de cabrear.
Si cualquiera de vosotros ha llegado hasta aqui buscando como montar una unidad de disco de un PVR (DVD o TDT) en un PC, seguro que ya ha encontrado la solución en el anterior párrafo, porque la inmensa mayoría usan TinyUDF con encriptación de byte swapping. Solo los tíos con mala suerte como yo hacen que las historias estas continúen…

La solución desesperada y ya por salvaguardar el honor de geek, como dice Futur3: comprar un disco duro de 160Gb, hacer una copia por sectores con el dd de Linux (tarda 3,3 horas poniendo los discos en buses IDE diferentes), usar un script a nivel físico con el 010Editor para swapear los bytes de todo el contenido y montar el disco como unidad UDF. El script de swap lo he tenido corriendo unas 20 horas y me he hartado, solo había llegado a 17Gb.
Aun así, con el swap a medio hacer, intenté montarlo como unidad UDF pero no había forma de que Windows o Linux la reconocieran.
La conclusión a la que llego es que los de Thomson han creado algún tipo de variación mínima sobre la encriptación básica del swapeo de bytes que usan todos los PVR clónicos (DAK, Airis, Sigmatek, Technosonic, etc…) y que por eso el programa de Sigmatek no vale para este PVR.
Lo único que me queda por hacer es descubrir cual es esa “variación” y reprogramar el pvr101disk.sys para que funcione, pero esa tarea me parece que demanda mucho mas tiempo del que puedo dedicarle a esto.
Lo que ha pasado en realidad, me he dado cuenta después de que mi amigo cambiase en la tienda el Thomson DTH8550E por un Thomson DTH8650E y me lo volviese a traer, es que al jodersele el aparato se corrompió parte de la estructura de archivos del disco UDF, por eso el software de sigmatek no era capaz de reconocerlo. Los datos de vídeo estan en su sitio (encriptados, eso si) pero las tablas de archivos no, por lo que el disco está desestructurado y sacar los vídeos va a ser un trabajo de chinos.
Ahora, sabiendo que los archivos de vídeo son VOB, como los del DVD (MPEG2) y que su firma son sectores que empiezan con la cadena hex 000001BA (en muchos de ellos aparece también la cadena ZORAN01, pero no encuentro referencias en google) , me resta sacar trozos de unos 5Gb del tirón (no me queda mas espacio en el otro disco del PC) y visionarlos con el videolan (es la caña, visualiza lo que sea sin hacer preguntas de formato de fichero ni nada) para ver si encuentro los dichosos vídeos. Luego me tocará recortar con el StreamClip o el VideoReDo (aunque este ultimo se cuelga en cuanto hay un cambio de timecode en el stream, y en mi caso hay muchiiiisimos) y exportarlos con no se aún que herramienta para convertirlos en DVD y haberme ganado con ello la salvación eterna, porque vamos, menudo trabajito.
Así que, como en los programas de al filo de lo imposible en los que no consiguen subir a la cima del monte himalayo de turno, y aun así retransmiten la gesta, pues yo publico este post de fracaso, con un par
.
Octubre 17th, 2007
No, no tengo a sicarios llamando a mi puerta, tranquilos todos
.
Hace unos días un vecino enrollao me prestó el juego “El padrino” para PC. Lo instalé en mi máquina “Gecko” solo para ver como era, ya que normalmente no suelo hacer muchos esfuerzos por terminarme los juegos, no dispongo de mucho tiempo.
Me sucedió una de las cosas que mas me fastidian que pasen con un juego original: No se instalaba correctamente.
Nada mas comenzar la instalación y seleccionar la ruta, aparecía un mensaje de error que hacía referencia al programa Ereg.exe. El juego continúa instalandose pero luego, a la hora de ejecutarlo, no pasa de poner la pantalla en negro y luego vuelve al escritorio.

Ereg.exe es una aplicación que introduce Electronic Arts en muchos de sus títulos y que sirve principalmente para que registres tu juego por internet y accedas a las ¿innumerables? ventajas que ello tiene.
El caso es que buscando y buscando al fin di con un foro en el que se menciona el problema.
Ereg.exe Crashes During Registration
La explicación es tan inaudita que no hay mas remedio que creersela. Dicha aplicacion entra en conflicto con diversas versiones del reproductor de películas Flash de Adobe. Y digo yo ¿que tendrá que ver el uno con el otro?
La solución que dan es mas peregrina aún, eliminar el Flash Player de tu sistema (si no sabes como, Adobe proporciona una herramienta para hacerlo) o bien actualizarlo, cosa que yo no podia hacer porque tengo la última versión.
En efecto, ese era el problema. Una vez desinstalado el Adobe Flash Player, Ereg.exe funcionó tal y como se esperaba y conseguí instalar “El Padrino”.
Esto es válido para otros títulos de Electronic Arts que llevan la misma herramienta de registro electrónico on-line, como la saga de los Sims, Command & Conquer 3 o el que me ocupa en este momento, El padrino (The Godfather).
Me voy a repartir unos mamporros por las calles de Nueva York.
Septiembre 20th, 2007
Como se puede ver, estoy algo menos que poco activo últimamente, pero como esto no es una página para contar mi vida, pues no lo haré
.

Para otra de esas ideas que se me ocurren de vez en cuando, cuyo potencial comercial tiende a cero a gran velocidad, he tenido que instalarme y juguetear un poco con el Google Earth (si, ya lo se, tarde de nuevo, soy tan parecido a un early adopter como un núcleo de ferrita a una xD card).
Mi intención era la de conseguir los mapas de altura de zonas determinadas del mundo a partir de los datos que manejan los servidores de Google Earth (a partir de ahora GE para abreviar). La tarea parece sencilla a priori, ya que la propia aplicación te muestra una vista en perspectiva que te permite distinguir en relieve elevaciones del terreno, montañas, valles, ríos, etc y además te presenta el dato de altitud cuando pasas el ratón por encima del terreno. Para hacer eso se necesita la altitud o elevación de cada punto del terreno (o al menos de cada cuadrante, cara, polígono o como queramos denominarlo) por lo que esa información existe, el problema es que al parecer no se quiere que esa información salga mas allá de la aplicación de Google… pero de algún sitio la habrán sacado ellos.
Cuando exportas un fichero .kml o .kmz desde el GE con un punto de interés o una ruta (track) se guardan valores de elevación que en realidad son simplemente la posición en la que has ubicado en el GE cada punto con respecto al suelo, pero nunca se te ofrece la información de la altitud con respecto al nivel del mar a la que está ese punto que es lo que a mi me hace falta.
He buscado un poco y he dado con algún servicio web que te proporciona esa información, aunque con bastantes restricciones. Para un punto dado de latitud y longitud EarthTools te responde con un XML conteniendo la altitud en metros y pies.
Por ejemplo podemos pedir la altitud del pico de Peñalara mediante esta URL http://www.earthtools.org/height/40.850751/-3.955792 y nos devolverá algo como esto:
<height xsi:noNamespaceSchemaLocation=“http://www.earthtools.org/height.xsd”>
<version>1.0</version>
<location>
<latitude>40.850751</latitude>
<longitude>-3.955792</longitude>
</location>
<meters>2396</meters>
<feet>7860.9</feet>
</height>
El servicio está muy bien, como se ve la precisión no es demasiado buena pero tampoco preocupante (Peñalara mide 2430m.) pero tiene un problema: este servidor solo te permite una consulta por segundo, para evitar colapsar su ancho de banda, por lo que sacar mapas de alturas se hace un poco tedioso.
Sin embargo, un poco mas de investigación me ha llevado hasta Geonames, que también da un servicio similar solo que sin formatear, tu le pasas las coordenadas geográficas y te devuelve simplemente la altura en metros. Por ejemplo:
http://ws.geonames.org/srtm3?lat=40.850751&lng=-3.955792 devuelve simplemente 2413m.
En este caso la precisión es mayor y por lo que veo no hay restricciones de uso, quizas sería un buen lugar para hacer consultas automatizadas.
Lo interesante es que los datos de este servicio se recogieron mediante técnicas de RADAR en una misión de una lanzadera de la NASA que se denominó Shuttle Radar Topography Mission (SRTM). Me da la impresión de que estos son los datos que usa GE.
También poseen otro modelo digital de elevaciones llamado GTOPO30. La URL de acceso es similar aunque los datos son algo peores para mi ejemplo de referencia.
http://ws.geonames.org/gtopo30?lat=40.850751&lng=-3.955792 ofrece un resultado de 2125 m.
En Geonames ofrecen también muchos otros servicios web referentes a geolocalización. Ofrecen incluso una completa base de datos de puntos geográficos por países, incluyendo embalses, montes, municipios y muchos mas que podemos descargar.
Retomando un poco el tema del SRTM, existe una página de este proyecto en la que te permiten descargar un .kml (y un ASC con los datos en el formato de Arcview) que contiene todos los datos de elevación que se capturaron, con una resolución de unos 90mts (o más correctamente, en arcos de 3 segundos de grado, que en el ecuador son 90 mts.). Como es tanta información, los datos se han dividido en cuadrantes de 5×5 grados en coordenadas geográficas WGS84 datum. Por ejemplo, los datos referidos a España se encuentran en las zonas o cuadrantes 35_4, 35_5, 36_4, 36_5, 37_4 y 37_5.
Es esta web por cierto explican porque puede haber errores en las altitudes de picos montañosos. Es debido a que normalmente estas regiones suelen estar cubiertas de nubes o nieve que interfiere negativamente con el sistema de medición por radar que se usó para obtener estos valores. Esas medidas que no pudieron tomarse conforman “agujeros” que hay que rellenar mediante interpolación. La interpolación tiende a suavizar las lineas con lo que los valores de altura en los picos se suavizan y suelen ser menores que el valor real.
Mayo 9th, 2007
Llevo bastante tiempo descolgado del Macromedia Flash ya que me dedico principalmente a la parte servidor de los juegos que se producen en Zinkia, pero ahora me ha dado por renovar un poco las librerias de conexión y comunicación, que hice en 2002 en Flash 5, para adaptarlas a los nuevos tiempos, sobre todo para aprovechar que el ActionScript2 ya se parece a un lenguaje de verdad, concretamente se parece mucho a Java, y me he encontrado con que esto está evolucionando de un modo vertiginoso y que me he quedado bastante atrás, como siempre.
La primera versión de nuestras librerias se hicieron en ActionScript 1.0. Esta versión del lenguaje no soportaba directamente la programación orientada a objetos mas que de manera parcial. Algunas cosas eran objetos y tenian propiedades, como los MovieClips, pero no habia una manera ortodoxa de crear clases, habia que hacerlo mediante prototipaje y con artimañas y gracias a un extenso y muy bien ilustrado tutorial sobre ello, el de Debreuill, fui capaz de montar una serie de clases que han sido la base de las comunicaciones de todos los juegos para Flash que hemos hecho desde entonces.
Así era antes:
// MojoGame PROTOTYPE
// Nombre de la clase y constructor
// Inicializacion de los miembros
MojoGame = function( i, n, p , nplayers )
{ … }
MojoGame.prototype.getPlayers = function()
{ return this.players; }
MojoGame.prototype.toString = function()
{ return “[MojoGame "+ this.name +"]“; }
¿Por qué era tan complicado programar orientado a objetos en Action Script 1.0? Pues por que le faltaban todas las caracteristicas que un lenguaje debe tener para ser orientado a objetos. No existian los tipos de datos explicitos, es decir, las variables podian contener un numero y al momento siguiente un texto, dependiendo de lo que les asignase el programador, lo que daba lugar a multitud de errores indetectables por despistes e impedia hacer las variables privadas, con lo que perdemos la capacidad de ocultación o encapsulamiento de la infomacion inherente a los lenguajes OO.
La herencia entre clases, aunque no era imposible, si que era complicada de implementar, al igual que lo era el polimorfismo, ya que eran necesarios trucos para sobrecargar metodos de clases padres.
Todo esto cambió con la llegada de AS 2.0 en el que las variables se han vuelto “fuertemente tipeadas” (no me gusta nada esta expresión), pueden ser publicas o privadas, las clases pueden declararse abstractas, existe la herencia con “extends” e incluso los interfaces y los namespaces, vamos, casi como Java salvo por la sintaxis que difiere mínimamente.
Así es ahora:
// MojoGame Class
class MojoGame
extends Game
{
// Miembros de la clase
private var players:
Array;
private var name:
String;
…
public MojoGame (i:Number, n:Number, p:Player , nplayers:Number )
{ … }
public getPlayers():Array
{ return this.players; }
public toString():String
{ return “[MojoGame "+ this.name +"]“; }
Mi siguiente paso ha sido buscar un plugin para el Eclipse que me permita tener proyectos en ActionScript. Cualquier programador que se precie coincidirá conmigo en que el entorno de desarrollo de Flash esta pensado para todo menos para los programadores (es lógico, por otra parte) por eso me llevo el desarrollo a un lugar (Eclipse) mas amigable. Mientras buscaba encontré 2 que tenían buena pinta, el ASDT y el FDT. El inconveniente de este último es que es de pago, aunque tienes una versión de prueba de 30 dias. Es una lástima porque es manifiestamente mejor y aprovecha mas las ventajas del Eclipse, integrandose perfectamente. En cualquier caso, he estado probando el ASDT y como siempre, me ha costado mas de la cuenta que funcionase correctamente, no tanto por dificultad de instalación, que no tiene ninguna, sino por falta de información, ya que no lleva documentación alguna.
Ambos plugins necesitan tener acceso a las Core Libraries de Flash para saber los tipos de datos, o mas correctamente, las Clases nativas y así poder hacer code highlighting y corrección del código sobre la marcha. Para tener esas librerías es necesario tener instalado FlashMX 2004, Flash8 o en su defecto, el MTASC.
No tenia ni idea de que existiese un compilador de ActionScript Open Source. Eso es precisamente el MTASC, que ha sido producido por MotionTwin Technologies. No me entretengo en comentar sus ventajas, solo dire que gracias a el podemos compilar todo el ActionScript que hagamos en el Eclipse sin necesidad siquiera de tener instalado Flash, ya que MTASC trae su propio paquete de core libraries.
Se hace bastante raro el programar en Flash sin gráficos
, por eso aunque se puede tener Action Script compilado sin necesidad de tener Flash instalado, es mejor tener el Flash para poder hacer cosas interesantes y vistosas.
El principal problema que presentan estos dos plugins para Eclipse es que llevan mas de año y medio sin actualizarse y sus creadores parece ser que han abandonado el desarrollo. Por su parte, el MTASC también parece tener sus dias contados ya que sus desarrolladores estan centrados en la creación de un nuevo lenguaje, el HaXe ,que permite producir Javascript y Flash para la producción de aplicaciones web (que mania con crear lenguajes nuevos).
Me empeñé en buscar plugins mas recientes sin resultado, hasta que encontré una razón poderosa para ello. Gracias a la web de Carlos Rovira (si, ya se que se parece demasiado a cierto político XD), empecé a leer cosas sobre Flex2 y a darme cuenta de por donde van los tiros.
No me extraña que los creadores de esos plugins abandonasen, porque ha entrado en escena la todopoderosa Adobe, que hace no demasiado compró Macromedia, y que ha sacado su propio IDE y mega plugin gigante para Eclipse para desarrollar lo que ahora se llaman RIAs (Rich Internet Application) y que no es otra cosa que aplicaciones basadas en el reproductor de Flash9 (si, yo también me sorprendí de lo poco que ha durado el reproductor de Flash8, que segun parece tenía mas problemas que caracteristicas nuevas), con todo el efectismo que eso conlleva (de ahí lo de “Rich”). Han tirado para alante, han sacado el ActionScript3 y a todo el conjunto lo han llamado Flex 2.
Este IDE y plugin para producir en Flex2 se llama Flex Builder 2 y voy a probarlo una temporada para poder emitir algun juicio. Es posible que ya no tenga que pelearme con los “viejos” plugins de ActionScript2 o puede que sea demasiado grande para lo que yo quiero hacer. Ya veremos.
(NOTA: No confundir Flex 2 con el Flex (Fast LEXical analyzer generator), la herramienta heredera de LEX y que acompaña fielmente a BISON el generador de parseadores de lenguajes, igual que LEX acompañaba a YACC, mas sobre Lex/Yacc)
Octubre 11th, 2006
Eso es lo que se podia oir entre los bytes del /dev/hda del servidor Linux que sirve estas páginas. He tenido que hacer un trasvase que ríete tu del Tajo-Segura.
El tema es que mi servidor tenía 2 discos, el hda y el hdb. El bueno y gordo es el hdb asi que decidí usar el hda para poner la particion de swap y contener el directorio /boot que no ocupan demasiado. Todo lo demás, el raíz /, iría en el otro disco, asi tendría separadas las operaciones de swapping, que en un equipo con tan poca memoria suelen ser frecuentes, de los accesos al resto de los datos del servidor.
Pero yo no contaba con la mala leche de los discos duros, y resulta que este hda maldito, que ya habia pasado por algun que otro equipo windows (y quizas como venganza por ello), ha empezado a fallar y a hacer ruidos raros, sobre todo en dias de mucho calor como han sido estas últimas semanas. Un característico CLACK-CLACK que precedia a su parada eran las únicas señales. Cuando este disco se para, me quedo sin swap, por lo que el servidor se cuelga.
Tras unas consultillas a uno de los gurús de Linux que tenemos en SoyGeek hemos dado con la solución menos mala. Tengo que trasvasar el directorio /boot y el swap al otro disco y eliminar o al menos poner como secundario al disco travieso. Y esto que parece tan fácil, pues no lo es, pero con la ayuda de Futur3 y su guía para catetos de Linux, lo voy a intentar.
Lo primero es copiar el directorio /boot de un disco a otro. Como no hay una orden que haga eso lo que hago es copiar /boot, que está montado en hda1, a /boot2, lo que automaticamente hace la copia en hdb1, ya que el / está montado allí. A continuación desmonto /boot (umount /boot) y renombro /boot2 a /boot (mv boot2 boot).
Ahora voy por el swap. Como no puedo reparticionar el hdb, porque me cargaría todo lo que tengo alli, lo que hago siguiendo los consejos y detalladas instrucciones de Futur3, es crear un fichero de swap en lugar de una particion de swap.
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile 1048576
sync
swapon /swapfile
Después modifico mi /etc/fstab para borrar la entrada de /boot y sustituir la partición de swap por el fichero de swap:
/swapfile none swap sw 0 0
A continuación, para trasladar el gestor de arranque, ejecuto el comando “grub” y le digo lo siguiente:
root (hd1,0)
setup(hd1)
quit
con lo que consigo instalar el grub en el MBR de hdb.
Ahora viene lo bueno, apagar el servidor, quitar el disco defectuoso, configurar el otro como master y/o cambiarlo de bus IDE si es necesario, para que quede como hd0.
Luego rearrancamos…
Si ha habido suerte, este post estará publicado, si no, no podreis ver Makinolo durante una temporada X-D
Pues bueno, no ha habido suerte y he tardado cerca de 1 hora y media en recomponer el servidor. Resulta que al hacer el setup en el grub este se configura para coger el kernel del Linux del directorio raiz y mi kernel esta en el directorio /boot, asi que el muy capullo no lo encontraba y no arrancaba.
Para mas inri la pantalla tenia algun problema raro y estaba llena de rayas verticales y el teclado configurado en inglés, con lo que he tardado mas de la cuenta en saber que pasaba y en arreglarlo.
Entrando en la linea de comandos del GRUB le he especificado
kernel /boot/vmlinuz-2.xxxxxx ro root=LABEL=/
initrd /boot/initrd-2.xxxxxx
boot
y ha vuelto a arrancar, despues he editado /boot/grub/menu.lst y he escrito correctamente la ubicacion de ambos ficheros ademas de eliminar el splashscreen. Ahora todo vuelve a funcionar, el servidor tiene un disco duro menos y yo una experiencia traumatica con el Linux mas.
Septiembre 7th, 2006
Como dicen los de SoyGeek, me encuentro inmerso en un proyecto de Modding de mi propia casa, por lo que he tenido que dejar de lado mis inventos durante una temporada. Este post me viene gracias a unos ajustes que estamos realizando en el servidor de juegos que usamos en Zinkia para nuestros proyectos multijugador.
Hace ya unos cuantos años encontré, como solución para adjudicar un ranking, o mejor dicho, una potencia de juego, a los jugadores de un determinado juego en el que intervengan 2 o mas jugadores, el sistema Glicko. En su día escribí un post bastante extenso sobre el tema.
El mismo Glickman hizo posteriormente unas mejoras sobre su sistema y sacó el Glicko-2, pero mientras el Glicko era de acceso libre y sus fórmulas estaban publicadas, la versión 2 la registró y cobraba royalties por su aplicación en juegos, en un intento de rentabilizar sus investigaciones matemáticas, supongo.
Al final lo ha liberado y se ha creado un equipo de desarrollo que con su beneplácito han elaborado una libreria en java, la JRS (Java Ranking Service), implementando dicho sistema de rankings.
Esta libreria no se parece demasiado a la clase Glicko que desarrollé yo en su dia para implementar este sistema, es un poco mas compleja y elaborada, por eso no creo que la implantemos en nuestro servidor de juegos ya que implica ciertos cambios estructurales y pocas mejoras, eso sin contar con que está en versión Beta aún.
Lo que yo resolví en una sola clase ellos lo han extendido a 10, incluyendo un interfaz. Lo que no me gusta de esta libreria es que, aunque no obliga, en cierto modo te anima a que mantengas una representación en memoria de TODOS los jugadores que participan en tu juego para en cualquier momento poder cambiar su ranking o calcular uno nuevo con respecto a otro jugador. Eso para un juego con 200 o 300 jugadores no es problema, pero si tienes 25000 registrados, estas jodido. Primero por el tiempo que te lleva inicializar la clase RankingService insertando y reponiendo los valores de ranking sacados de la base de datos para todos los usuarios registrados cada vez que tienes que reiniciar el servidor. Luego por la cantidad de memoria que ocupan todos esos datos que la mayor parte del tiempo no van a servir para nada ya que solo una pequeña parte de todos los usuarios registrados estarán jugando en un momento dado.
Septiembre 4th, 2006
A pesar de la pereza que me daba, por fín he hecho el upgrade del WordPress a la 2.0.4. Casi todo ha ido sobre ruedas, salvo el tema de que estaba utilizando lightbox para presentar las imágenes en los post sin tener que cargar una página nueva y para ello habia tenido que hacer un truco toqueteando en el archivo quicktags.js.
Lo que ocurre es que ahora el WP utiliza un nuevo editor, el TinyMCE, que convierte la tradicional caja de texto en lo mas WYSIWYG que el HTML, CSS y javascript son capaces de conseguir. Además permite arrastrar imágenes sobre el texto para insertarlas, todo un avance, si no fuera por que yo necesito que los TAGs que se insertan tengan un par de modificaciones para que funcione el lightbox, concretamente tengo que poner rel=”lightbox” en el enlace de la imagen. Ahora ya no se usa quicktags y he tenido que leerme mas código del editor del que me hubiera gustado para después de unas cuantas horas poniendo “alerts” como loco en todos los .js y no encontrar ni un maldito evento y usando extensivamente la busqueda en archivos de mi querido TextPad, dar con el sitio donde se almacenan los tags que se insertar al arrastrar una imagen sobre el texto.
El fichero en cuestion es inline-uploading.php y las lineas son de la 242 a la 245. Ahi se pueden maquear los tags, tanto el del enlace de la imagen como de la propia imagen.
Si queremos cambiar los tags que se insertan desde el boton de añadir imagen del editor, el camino es otro, hay que ir al fichero tiny_mce.js y en la linea 2643 comienza la asignación de atributos de la imagen, esta vez en javascript. Yo he añadido esto:
tinyMCE.setAttrib(this.imgElement, ‘class’, ‘inset’);
Eso si, recordad que en la proxima actualizacion del WordPress puede que esto cambie por completo y haya que volver a buscar.
También está la posibilidad de reconfigurar el tinyMCE para ponerle mas botones o incluso hacer un plugin para el. De momento, por lo que he leido, es demasiado trabajo y ya veremos si merece la pena.
No estaría nada mal que estas cositas se pudiesen personalizar mediante archivos de configuración o de recursos, igual que hacen con los idiomas y que se pudiesen añadir facilmente botones en el editor.
Agosto 21st, 2006
Como el evento de ciclismo virtual en la Campus Party va a tener patrocinadores me han pedido que ponga logotipos de los mismos dentro del juego.
Fundamentalmente tendría que cambiar los maillots de los ciclistas, la pancarta de llegada y quizas la forma de las vallas. Afortunadamente todo el software está hecho con DirectX y usa el formato estandar para texturas, DDS. No ha sido dificil encontrar los archivos que tengo que cambiar, aunque hacer las equipaciones si lleva tiempo, al fin y al cabo no soy grafista, solo usuario de Photoshop
.

En mi busqueda por unas líneas maestras a la hora de construir los maillots me pasé por el foro de Tacx, donde pude constatar que la gente ya había creado equipaciones de escuadras que no vienen de serie con el entrenador. En uno de los hilos se explica casi todo acerca de como convertir los BMPs o TGAs o PNGs a DDS ademas de dar indicaciones sobre que programas usar. Aún así, la mayor parte del hilo contiene posts de gente que pide que le hagan camisetas, y uno de los usuarios Wesp_IM, aceptaba los encargos con resultados sorprendentemente buenos. Tanto que se ha hecho una página donde los ha ido colocando, Tacxkins, aunque no estan disponibles para descargar directamente, y no entiendo muy bien por qué.
Le pedí algun tipo de indicaciones para hacer la camiseta del equipo que patrocina parte del stand, el Unibet y me respondió con un mapa de overlay con sombras y la camiseta completa ¡pero para otro programa!

El truco a la hora de hacer las equipaciones es que estan casi todas hechas. Resulta que hay un juego llamado Pro Cycling Manager que es un manager de ciclismo y que como todo juego de manager que se precie tiene su club de fans por todo el mundo. Este club de fans reunido en un foro, como casi siempre, hace packs con las equipaciones actualizadas y tiene una con las equipaciones del 2006 que curiosamente han sido recopiladas por un Español.
De ese pack saqué la camiseta del Unibet y con esa camiseta a modo de plantilla, y poniendo una de las imagenes de textura de las que vienen con el propio Fortius de fondo, fuí construyendo la nueva camiseta a base de sacar logotipos de la web del equipo unibetcycling.
Luego le aplique el mapa de sombras y ¡voilá! camiseta nueva para el muñeco.

Mas tarde le tocó el turno a la bicicleta, patrocinada por la marca B-Pro. Con un logotipo que me proporcionaron y unos minutos de photoshop, saqué una réplica de los colores de la ZS1. Está era mas fácil porque en la textura se distinguían perfectamente cada una de las partes, tubos, tirantes y vainas, tubo de direccion, tija de sillin, potencia, etc.
Julio 21st, 2006
Acabo de volver de dar una charla junto con mi compañero Milinko (Fernando Piquer) en el GameLab que organiza la universidad de Oviedo englobado en el curso de verano sobre la industria del videojuego que tiene lugar en su campus de Mieres.
Bueno, en realidad la charla la ha dado el, que es el charlas, yo iba de apoyo y sobre todo a contactar con otros personajes dentro de la escena del videojuego en España que también iban a exponer sus diversos puntos de vista sobre esta industria.
La charla de Zinkia ha sido una invitada sorpresa de ultima hora ya que Ivan Fernandez Lobo, organizador del evento, nos llamó el dia anterior para sustituir a un ponente que no podia asistir. La ponencia versaba sobre los aspectos a tener en cuenta y las dificultades que plantea el diseño de juegos multijugador, tanto MMORPG como juegos por turnos a través de internet. Esta alocución ya la compartió con los asistentes al certamen “Mundos Digitales” que tuvo lugar en A Coruña la semana pasada y que consiguió incluso algo de eco en prensa.
El caso es que lo mas importante de este encuentro, a parte de poder ver con mas perspectiva la industria del videojuego y de consolarte viendo como casi todos nos vemos inmersos en los mismos problemas productivos y organizativos, lo mas importante digo, ha sido conocer a grandes nombres dentro de la industria, como Javier Reyes, creador de MetaReyes entre otras muchas piezas maestras de software de 3D y que ahora está trabajando en un proyecto alucinante llamado Virtual Fashion orientado a los diseñadores de moda.
Tambien conocí a Carlos Abril, fundador de Dinamic en su dia y actual fundador y director de programación e I+D de FX Interactive y a Hernán Castillo (Teniente Castillo) y Gonzalo de Revistronic, los creadores de The Westerner entre otros juegos de éxito.
Todos son unos grandisimos tipos, muy accesibles y con los que hemos pasado un día muy divertido y constructivo. Además es increible darse cuenta de que escarbando un poco en nuestros contactos resulta que todos estabamos enlazados por algun conocido común, a pesar de no conocernos directamente. Dinamic me enlazaba con Carlos, Colman me enlazaba con Javier Reyes y betybyte hacia lo propio con Hernan y Gonzalo.
También tuve el placer de volver a ver, aunque haya sido fugazmente, a Javier Arévalo (JARE) actualmente director de nuevas tecnologías en Pyro Studios al que conocía desde hace muchos años cuando con su grupo Iguana y junto con su hermano Juan Carlos (JCAB), era la referencia absoluta de la Demoscene Española y paseaban sus alardes tecnológicos por las primeras Euskal Partys.
La pena ha sido no poder coincidir con Gonzo Suarez de Arvirago y con el resto de ponentes que hablaban el Jueves y Viernes. Otra vez será.
Como digo, todo un placer la visita a Mieres, Oviedo y la incursión nocturna a la semana negra de Gijón. Gracias a Ivan Lobo por su hospitalidad y atención y a los asistentes por su interés y sus preguntas. Esperamos poder repetir la experiencia… pero esta vez con algo mas de tiempo
P.S. Hay una página en la que aparecen todos los blogs que han creado para este evento en particular los asistentes al mismo y es esta: listado de blogs del GameLab de la Universidad de Oviedo
Julio 13th, 2006
Next Posts
Previous Posts