31 de diciembre de 2009

Y se acaba 2009...


Pues se acaba 2009 y mañana comienza 2010...

¿Qué destacar de este año? Pues que mi hija ya está cerquita de los 2 años hecha todo un duendecillo trotón y que de aquí a nada hago 3 años de casado :)

A nivel profesional este año me he soltado el pelo con el desarrollo de aplicaciones de Facebook, he aprendido todavía más de Wordpress, he consolidado mis conocimientos de Joomla! y me he lanzado al apasionante mundo de Drupal.

También he desarrollado juegos con Actionscript 3.0 100% POO y me he comprado un HTC Hero, así que de aquí a nada alguna aplicación para Android cae seguro :)

He conocido a mucha gente del sector y pese a mi timidez di una charla sobre desarrollo de aplicaciones para Facebook.

A nivel de los videojuegos que he jugado este año destacaría:
  • Resistance Fall of Man 2 (PS3)
  • Batman: Arkham Assylum (XBOX 360)
  • Gears of War 2 (XBOX 360)
  • Resident Evil 5 (XBOX 360)
  • Street Fighter IV (PS3)
  • Killzone 2 (PS3)
  • Rythmin Paradise (NDS)
  • Guitar Hero Aerosmith (XBOX 360)
  • Fable 2 (XBOX 360)
  • Last Odissey (XBOX 360)
  • Civilization IV (PC) --> Este es eterno :)
Me dejo muchos en el tintero, pero bueno, esto es un post y no el primer libro de la saga Millenium :D

Tuenti: ¿Qué fue de la publicidad del tamaño de una uña?

Uno de los argumentos más repetidos por los responsables de Tuenti es que su negocio es muy rentable utilizando tan sólo el tamaño de una uña para mostrar sus eventos publicitarios. Nada que objetar.

Pero desde hace tiempo las cosas están cambiando, cada vez meten más publicidad. De nuevo nada que objetar, cada uno en su casa hace lo que quiere. De muestra un botón:



He marcado las zonas de publicidad en verde, me pregunto cuantas zonas de publicidad tendrán activas para finales de 2010, seguro que más, :)

30 de diciembre de 2009

Drupal: 10 módulos imprescindibles en Drupal


Drupal tiene unos cuantos módulos imprescindibles que no vienen incluídos en el core (al menos hasta que publiquen Drupal 7.x). Voy a haceros un pequeño listado de los módulos imprescindibles para mí en las versiones 5.x y 6.x:

29 de diciembre de 2009

Wordpress: Crear funciones personalizadas para una plantilla


Cómo todos sabéis Wordpress trae toneladas de funciones propias del CMS  para hacer todo tipo de tareas y mostrar todo tipo de datos. El problema es que, obviamente, no es infinito y no puede preveer la infinidad de necesidades que genera un sitio web o un blog muy personalizado.

¿Cómo suplimos la ausencia de una función de Wordpress? Pues programándola nosotros.

Lo más cómodo, si no queremos desarrollar un plug-in, es utilizar la posibilidad que nos brinda WordpressWordpress con el fichero functions.php en las plantillas. Tan sólo tenemos que crear una función, pegarla en este fichero, subirlo al servidor en su plantilla correspondiente y ya está, lo tendremos disponible en todos los ficheros php de la plantilla.


Muy sencillo de utilizar y muy útil. Si le pegáis un vistazo a muchos temas de Wordpress vienen todos ya con su fichero functions.php cargadito de extras :)

25 de diciembre de 2009

Feliz Navidad


19 de diciembre de 2009

Twitter: ¿Hackearon realmente Twitter?


Pues no, hackearon al proveedor de DNSs redirigiendo las DNSs del dominio de Twitter hacia la web de los hackers. El equipo de Twitter durante el ataque estuvo en constante contacto con el proveedor de DNSs para solucionar el problema que afectó al 80% de su tráfico.

Twitter ha hecho pública esta información en su blog ya que ha habido una oleada de histeria entre algunos bloggers que afirmaban que nuestros datos almacenados en Twitter podían estar en peligro, como si los servidores que alojan la web fuesen los mismos donde se gestiona el sistema de Twitter :)

Si queréis leer el post original sobre la explicación del ataque aquí lo tenéis.

Drupal 6.x: Cómo resetar tu clave de administrador en la base de datos


Drupal es uno de los CMSs más utilizados en el mundo, por ejemplo la web de la Casa Blanca lo utiliza.

Cómo todos los CMSs tiene un sistema de usuarios y contraseñas. El caso es que en uno de los sitios web de Drupal con los que trabajo se me traspapeló la contraseña del administrador. Para más inri este sitio -alojado en los servidores de Namecheap- no envía emails al exterior todavía por un problema de configuración.

¿Qué hacer entonces? Pues he tenido que entrar en la base de datos y buscar la tabla users que es dónde se almacenan los datos de los usuarios. Pero, oh, sorpresa -lógico por otra parte-, la clave está encriptada.

Después de darle un rato al tarro encontré vía Google esta página en David's Blog en CrySol dónde daban la solución, que es muy sencilla -una vez se sabe, claro-. Tenéis que ejecutar en el servidor de MySql esta instrucción (NUEVACLAVE sería la clave nueva)

update users set pass=md5(‘NUEVACLAVE’) where uid = 1;

Cómo el primer usuario que crea Drupal es el administrador su uid es 1.

Si queréis saber cual es el nombre del usuario tan sólo tenéis que hacer una select:

select name from users where uid=1;

Una vez sabes que la encriptación es con md5 es fácil :).

14 de diciembre de 2009

Me entrevistaron en Tucamon...

Fue después de mi charla sobre Desarrollo de Aplicaciones para Facebook del jueves pasado, y aunque me da corte os pego aquí el vídeo de la entrevista que me hicieron en Tucamon para que los que no me conocéis me veáis el careto :)

13 de diciembre de 2009

Habrá segunda parte de Batman, Arkham Assylum

Batman, Arkhan Assylum es para mí uno de los mejores juegos del año, pues la buena noticia es que va a tener segunda parte :)

Os pongo aquí el vídeo que lo anuncia:

11 de diciembre de 2009

Street Fighter en la vida real

Curiosa la foto que he encontrado en el blog oficial de Capcom:






¡¡¡Haduken!!!

7 de diciembre de 2009

Cena de mi cumpleaños en el restaurante Tamayo (Playa de Sanjuan, Alicante)

El sábado 5 de diciembre fue mi cumpleaños, para celebrarlo mi mujer y yo fuimos a cenar al restaurante Tamayo, restaurante que pertenece al hotel Holiday Inn Playa San Juan.

Cenamos allí gracias a que ganamos un concurso del blog La Playa San Juan, esta bitácora es con diferencia la mejor de la zona, si queréis estar al día con lo que pasa en San Juan Playa no sólo os recomendable, es imprescindible.

Pasamos un par de horas con los entrantes y los platos principales, como esa noche estábamos carnívoros nos lanzamos de lleno a por platos con sustancia. Todo buenísimo, de sobresaliente, pero la matrícula de honor se la pondría al solomillo de mi mujer, el mejor que he probado en mi vida :)

El vino que nos recomendaron también excelente, una pena que tuviese que conducir.

En conclusión, una cena perfecta, no sólo por la calidad de los platos (todos exquisitos), si no también por el gran trato que recibimos y el ambiente íntimo y relajado que se respira allí.


Volveremos pronto allí, y esta vez con más familia, porque salimos muy, muy contentos.

Os adjunto unas fotos de la cena para que se os haga la boca agua:

2 de diciembre de 2009

Manifiesto “En defensa de los derechos fundamentales en Internet”


Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestrafirme oposición al proyecto, y declaramos que:

    1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

    2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

    3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

    4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.


    5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

    6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

    7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

    8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

    9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

    10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este manifiesto ha sido extraído del Blog Open Ads, lo suscribo plenamente.

29 de noviembre de 2009

Actionscript 3.0: Añadir máscaras a un movieClip


Las máscaras son un elemento muy útil, tanto en Photoshop como en Flash.

Añadirlas en Flash utilizando los menús del programa es muy sencillo, pero en ocasiones necesitamos aplicar estas máscaras durante la ejecución de nuestra película o bien modificar las características de las mismas. Gracias a Actionscript esto es posible.

En Actionscript 3.0 tenemos la propiedad mask para añadir una máscara a un movieClip. Funciona de la siguiente manera:

instFoto.mask = instMascara;

En este ejemplo instFoto sería la instancia de la película a la que queremos aplicar la máscara y instMascara sería la instancia de la movieClip que vamos a utilizar como máscara.

Una vez hemos aplicado la máscara podemos modificar sus propiedades de manera muy sencilla, basándome en el ejemplo anterior tendríamos que hacer lo siguiente:

instFoto.mask.x = 100; // Movemos la máscara a la posición x=100

Cómo veis la aplicación de máscaras es algo muy sencillo gracias a Actionscript 3.0.

16 de noviembre de 2009

XBOX 360: Batman, Arkham Assylum

En agosto probé la demo para PS3 de este juego y ya me pareció increíblemente bueno. Ahora han pasado los meses y me he terminado el juego completo en XBOX 360 y bueno, voy a contaros mi opinión sobre él.

Batman: Arkham Assylum (BAA), es una aventura con grandes toques de arcade. En ella deberemos pelear contra el Joker  y otra serie de supervillanos que se han hecho con el poder en la isla/psiquiátrico de Arkham.

La isla está infestada de todo tipo de enemigos, conforme avance el desarrollo del juego estos irán variando de manera acorde al avance de la historia. Para enfrentarnos a ellos dispondremos de un montón de batartilugios que iremos ampliando y mejorando conforme avanza la historia.

BAA tiene un modo de combate cuerpo a cuerpo espectacular que capta al 100% la esencia de Batman  y sus peleas contra montones de matones en las que su superioridad numérica es su peor enemigo. También hay zonas que deberemos resolver en plan modo "depredador" en las que iremos cazando a los enemigos uno, poniéndoles cada vez más histéricos. La estrategia a la hora de afrontar los diferentes escenarios será también muy importante.

Hay también un gran componente de investigación, sobre todo para encontrar los acertijos de Enigma , tendremos que observar todo con cautela y mucha paciencia.

Podremos recorrer la isla de Arkham de cabo a rabo, conforme avance la historia se irán desbloqueando nuevos escenarios, pero la isla es un todo, en plan Gran Theft Auto.

A nivel gráfico el juego utiliza el Unreal Engine  muy, muy, bien utilizado y aplicado, gracias también a unos diseños espectaculares, a unas animaciones soberbias y a unas expresiones faciales grandiosas.

A nivel sonoro el doblaje es muy bueno, casi tanto como las increíbles voces originales. A nivel musical también se sale.

En conclusión, uno de los 3 mejores juegos del año en mi opinión, sencillamente imprescindible.

Valoración: 9.5/10

12 de noviembre de 2009

¿Volverá algún día Dark Stalkers?


Darkstalkers es una de mis sagas de lucha favoritas, me gustaría ver como la rescatan y le aplican el engine de Street Fighter IV.

10 de noviembre de 2009

Miyamoto dibujando a Mario

Mario Bross dibujado por su creador :)



Fuente:Artsymedia

8 de noviembre de 2009

PHP: Un ejemplo sencillo de clase para PHP5


Hace poco publiqué aquí un ejemplo muy sencillito de una clase para PHP4.

Bueno, pues ahora os he preparado otro ejemplo de clase, pero esta vez para PHP5. ¿Hay diferencias con respecto a PHP4? Pues las hay, y bastantes, PHP5 da un soporte mucho más amplio a la POO que su antecesor.

Os pongo aquí el ejemplo:
<?php

class cliente{
    var $nombre;
    var $numero;
    var $peliculas_alquiladas;

    function __construct($nombre,$numero){
       $this->nombre=$nombre;
       $this->numero=$numero;
       $this->peliculas_alquiladas=array();
      
       echo "Nuevo cliente: ".$nombre."
";
    }

    function dame_numero(){
       return $this->numero;
    }
   
    function dame_nombre(){
       return $this->nombre;
    }
}

//instanciamos un par de objetos cliente
$cliente1 = new cliente("Pepe", 1);
$cliente2 = new cliente("Roberto", 564);
$cliente3 = new cliente("Gabriel", 146);
$cliente4 = new cliente("Sergio", 225);

//mostramos el numero de cada cliente creado
echo "El identificador del cliente ".$cliente1->dame_nombre()." es: " . $cliente1->dame_numero() ."
";
echo "El identificador del cliente ".$cliente2->dame_nombre()." es: " . $cliente2->dame_numero() ."
";
echo "El identificador del cliente ".$cliente3->dame_nombre()." es: " . $cliente3->dame_numero() ."
";
echo "El identificador del cliente ".$cliente4->dame_nombre()." es: " . $cliente4->dame_numero() ."
";

?>


Cómo veis en esta clase de ejemplo disponemos de un constructor, cosa que no había de manera nativa en PHP4, podíamos emularlo, pero no es lo mismo.

El constructor de la clase es un método que se ejecuta cuando se instancia esta en un objeto (en el ejemplo cuando damos valor a $cliente1 por ejemplo). Naturalmente si hay un constructor también hay un destructor. Afortunadamente -o no- en PHP los objetos se destruyen cuando termina la ejecución así que no nos toca destruirlos manualmente para liberar memoria, aunque es una buena práctica hacerlo para optimizar el gasto de la máquina.

6 de noviembre de 2009

Trailer de la peli de Prince of Persia



¡Pero qué buena pinta que tiene! :)

Videojuegos: ¿Cuales son las sagas más vendidas de Capcom?

Capcom es una de las grandes, lleva decenios publicando videojuegos y un puñado de ellos son verdaderas joyas. La gran pregunta es, ¿Qué saga ha vendido más? Pues en su página oficial tienen la respuesta

Os pongo aquí el listado:

5 de noviembre de 2009

Wordpress: Obtener los datos de un post fuera del loop


Muchas veces necesitamos obtener los datos de un post determinado diferente del post con el que estamos trabajando en el famoso loop de Wordpress.

Conforme dominas el desarrollo de Wordpress descubres muchas maneras de acceder a esos posts ajenos al loop. Os voy a mostrar uno de los métodos más sencillos para conseguirlo, la función get_post([identificador del post]).

¿Cómo funciona? Pues muy fácil, cargamos en una variable el resultado de la función get_post dándole como valor la id del post al que queremos acceder.

Aquí va un ejemplo en el que obtenemos los datos del post nº12:
$post_id_12 get_post(12);

Los datos obtenidos tiene formato de array, así, por ejemplo, para acceder al título del post en este ejemplo habría que hacer lo siguiente:
$titulo $post_id_12->post_title; 
echo("Título:".$post_id_12->post_title);

Estas son las propiedades más útiles de este array:
  • ID
  • post_date
  • post_content
  • post_title
  • post_excerpt
Hay bastantes, la lista completa la podéis ver en esta página de Wordpress.

¿Pegas de este sistema? Pues una muy grande, no permite obtener las categorías, si utilizamos el campo $post_category siempre devuelve 0 :(




2 de noviembre de 2009

ZX Spectrum: Firelord

En 1986 Hewson Consultants Ltd. lanzó esta colorista aventura para ZX Spectrum .

Firelord  consiste en manejar a un aventurero que debe recorrer todo el mapa buscando 4 hechizos mágicos. A lo largo del mismo nos encontraremos con todo tipo de enemigos que nos quitarán energía con su sólo contacto. Podremos eliminarnos si tenemos energía mágica suficiente y el hechizo adecuado.

De vez en cuando nos toparemos con fuegos que o bien están fijos o bien aparecen y desaparecen. Su sólo contacto nos quitará una vida.

A lo largo del juego hay numerosas tiendas en las que podemos entrar para comprar información, vidas, hechizos, etc... Podremos o bien pagar con objetos que hemos recogido o bien podremos intentar robar sin que nos pillen (cosa que a mí siempre me sale mal).



Gráficamente el juego recuerda mucho a Sabre Wulf , tiene el mismo estilo colorista y simpático, cumple muy bien. A nivel sonoro el juego tiene una bonita melodía de presentación y unos efectos simples pero eficaces.

Criticarle sólo que es un juego en el que te terminas sintiendo un poco "perdido" yendo de allá para acá sin saber muy bien lo que tienes que hacer (por lo menos en las primeras partidas).

Valoración: 6.5/10

29 de octubre de 2009

Es oficial, Nintendo DSi con pantallas de 4.2' para 2010

Más grande, con más duración de la batería, con dos pedazo de pantallones y a 221$ (veremos a cuanto nos la venden en euros).



Fuente: Slashgear

YouTube: Mi primer vídeo en HD en YouTube

Lo ha mi mujer en su cuenta de YouTube, es un vídeo grabado con una cámara de fotos Panasonic Lumix TMZ-7 que graba en HD 720p.

Es muy corto (46 segundos), el formato original del fichero es .str y ocupaba 87 megas. Llevó una hora subirlo con la conexión de Ono de 3Mb.

No ha perdido mucha calidad al ser convertido por YouTube a su formato.

28 de octubre de 2009

Frikadas: ¿Cual es el origen del nombre de la XBOX 360?



Fuente: @Infonomada

Street Fighter: Este Guille rompe...



Algunos fans se lo curran de verdad :)

Fuente: Pseudo-Pod.com

18 de octubre de 2009

PHP: Un ejemplo sencillo de clase para PHP4


La Wikipedia  define la programación orientada a objetos como "La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos."

Uno de los elementos vitales de la programación orientada a objetos (POO) a la hora de aplicarla sobre un lenguaje concreto son las clases. PHP4 trae soporte para clases, pero ni de lejos parecido al nivel de PHP5.

Aún así, y como sé que todavía somos muchos los que debemos pelearnos a diario con PHP4 os voy a poner aquí un pequeño ejemplo de clase en PHP4 para ir rompiendo el hielo :)

<?php
// Ejemplo de clase sencilla para PHP4
class videojuego{
    var $nombre;    // Propiedad "nombre del videojuego"
    var $consola; // Propiedad "nombre de la consola del videojuego"
   
    function nombrar($dato){
        $this->nombre = $dato;
    }
   
    function asignarConsola($dato){
        $this->consola = $dato;
    }
   
    function mostrarNombre (){
        echo ("Este videojuego se llama ". $this->nombre ."<br/>");
    }
   
    function mostrarConsola (){
        echo ($this->nombre." es de la consola ". $this->consola ."
");
    }
   
}


$godOfWar = new videojuego();
$superMario = new videojuego();


$godOfWar->nombrar("God of War");
$superMario->nombrar("Super Mario");


$godOfWar->asignarConsola("PS2");
$superMario->asignarConsola("Nintendo");


$godOfWar->mostrarNombre ();
$superMario->mostrarNombre ();


$godOfWar->mostrarConsola ();
$superMario->mostrarConsola ();


?>

Espero que este ejemplo os sea útil.

Trailer de God of War: Collection

Los dos juegazos de Kratos  para PS2 remasterizados en HD para PS3 . Ganan mucho, aunque no lo suficiente como para hacernos olvidar al inminente God of War 3.

17 de octubre de 2009

SEO: Cómo lidiar cuando nos enlazan desde sitios no recomendables


Google posiciona nuestra web teniendo en cuenta una serie de factores. Uno de esos factores son las webs que nos enlazan. Si esas webs no son de calidad, ¿Afectan a nuestro posicionamiento?

Susan Moskwa, de Google, afirma en el blog de Google que no afectan tanto como podríamos creer ya que sólo es uno de los parámetros del agoritmo de Google. Pero algo deben afectar, ya que nos recomienda que si detectamos estos sitios los denunciemos utilizando las herramientas para webmasters de Google tanto para denunciar spam como enlaces de pago.

En conclusión, que los enlaces desde sitios de poca calidad no afectan mucho, pero no está de más preocuparse por el tema de vez en cuando.

16 de octubre de 2009

Frikadas: Robot para Guitar Hero

Guitar Hero es una de mis sagas favoritas para consola, pero no tengo claro si podría con este bizarro robot que tiene un 100% de aciertos en sus partidas.



El robot se llama Roxxane y ha sido creado por un estudiante de tecnología, Peter Nikrin. Ve todas las notas a través de la cámara de su ojo izquierdo y toca con sus dos manos mecanizadas.

En fin, curioso es un rato :)

Fuente: slashgear.com

15 de octubre de 2009

Probando el Google Wave

Gracias a Andres Karp, de Adwa, he recibido una invitación para usar Google Wave. Y bueno, pues lo estoy usando ya.

Es muy usable, muy sencillo y muy bonito :)

En los próximos días os contaré que resultado me dan mis pruebas.


13 de octubre de 2009

Personal: Traduciendo Twitter

Este viernes me llegó un email de Twitter solicitando mi colaboración para traducir Twitter al español.

Después de pensar un rato en el tema me animé a colaborar con ellos. Somos bastante gente traduciendo así que espero que el resultado quede como mínimo correcto.

Por ahora de los 10 niveles de traductor estoy ya en el 7, a ver si llego pronto al 10 y conseguimos darle a Twitter con una traducción sobresaliente.


11 de octubre de 2009

Android.es está de aniversario

Android está de aniversario, el 8 de noviembre cumplirán un año.

Es en mi opinión el mejor sitio en español sobre los móviles Android. Siempre te dan información muy actualizada, tanto de terminales como de aplicaciones. Ahora mismo estoy dudando entre comprarme un móvil Android o un iPhone así que me estoy poniendo las pilas y este blog es lo mejor de lo mejor.

Para celebrar su aniversario han organizado un concurso en el que sortean un HTC Magic, un móvil muy bueno, por su puesto con Android :)


Estoy seguro de que el blog va a durar muchos años ya que Android ha venido para quedarse y hacer frente a iPhone y a Symbian :)

9 de octubre de 2009

Videojuegos: Sega lanza un portal de juegos online

Por fin una de las grandes se mete con todas las consecuencias en el mundo de los juegos online.

Sega ha lanzado el portal PlaySega en el que podremos jugar a multitud de juegos para navegador, incluídas las versiones de sus grandes clásicos de Megadrive o de Arcade.




Hay 2 tipos de juego, los juegos VIP y los juegos normales.

Para poder jugar a los juegos VIP tienes que tener un usuario VIP (que es de pago). Los primeros 5 días son de prueba. La suscripción mensual cuesta 4.99 libras exterlinas. No sé si la iniciativa de cobrar por usuario tendrá éxito, ya que muchos de los juegos clásicos de SEGA se pueden encontrar fácilmente por Internet, pero bueno, por lo menos lo intentan.

El portal también tiene una sección con editores de niveles para los juegos, para poder crear tus niveles personalizados. Tiene muy buena pinta.

Os animo a vistar el portal y a probarlo :)

3 de octubre de 2009

XBOX 360: Cómo se hizo el anuncio de Halo OSTD

Soy un fanático declarado de la saga de Halo, así que el anuncio creado con imagen real para promocionar el nuevo juego de la saga, Halo OSTD, me dejó flipando.

Os pongo aquí el anuncio:


Y a continuación el cómo se hizo :)

PHP: Configurar el formato del tag de apertura de PHP


¿Qué es el tag de apertura de PHP? Pues en principio es el tag que indica al servidor que el contenido que viene a continuación es PHP y que debe ejecutarlo.

Habitualmente ese tag de apertura es <?, pero por desgracia esto no debería ser así ya que puede haber confusiones con otros lenguajes, especialmente con XML.

¿Cual es el tag de apertura correcto para PHP? Pues <?php.

¿Cómo configuramos el servidor para que sea obligatorio utilizar este tag? Pues en el fichero php.ini debemos añadir short_open_tag = 1, de esta manera forzamos al servidor a exigir el encabezado.

30 de septiembre de 2009

XBOX 360, PS3, PC: Resident Evil 5

Por fin he podido jugar en profundidad al modo historia de la última entrega de la legendaria saga de Capcom, y qué queréis que os diga, a mí me está encantando.

En Resident Evil 5 encarnamos el papel de Chris Redfield y de Sheva Alomar para hacer frente a la enésima invasión de virus y zombies. Esta vez el enemigo no es Umbrella, es... bueno, mejor no cuento nada más del argumento, que es muy entretenido, con giros interesantes y con algún que otro momento previsible.

La mecánica del juego es la de siempre, debes avanzar por una serie de escenarios resolviendo enigmas que te abrirán nuevas puertas mientras liquidas todo zombie que se te cruce, al menos mientras tengas munición, si no a correr tocan :)

El movimiento de los personajes es algo ortopédico con unos giros de ángulo bastante lentos, cuando te asalten los zombies a corta distancia te acordarás de la madre que parió al programador.

Las armas son las típicas en este tipo de juegos, pistolas, escopetas, lanzacohetes, rifles de francotirador, etc, podremos recogerlas o bien comprarlas en la tienda que se activa cuando mueres o entre fase y fase. En ocasiones habrá escenas con QTC.

Los enemigos esta vez no son los típicos zombies tontos, los de este juego manejan armas, conducen y son muy, muy rápidos. Además a final de fase te tendrás que enfrentar con enemigos que parecen sacados de Devil May Cry, son realmente complicados y espectaculares.

El juego permite el juego cooperativo, os recomiendo este modo especialmente, es genial, yo me estoy haciendo el juego con mi mujer y es divertidísimo.

A nivel gráfico el juego es genial, la dirección de fotografía es de Oscar, por no hablar del motor del juego que en ningún momento se enlentece, incluso con la pantalla partida para dos jugadores.

A nivel sonoro la música es escasa, pero contundente. El sonido aprovecha muy, muy bien el 5.1.

Criticar sólo el segundo capítulo de la primera fase (el del verdugo) tiene una dificultad y una falta de jugabilidad que no le hacen justicia a este juegazo. También -aunque para mí no es una crítica- mencionar que el juego ha perdido un poco del espíritu de la saga para acercarse mucho al estilo de Gears of War.

En conclusión, un juego imprescindible y divertidísimo.

Valoración: 9/10

28 de septiembre de 2009

PHP: Redirecciones 301 con .htaccess


Redireccionar una petición por url a la carpeta de tu servidor que tu quieras es muy sencillo gracias a Apache, su mod_rewrite y a su htaccess.

Tan sólo tienes que editar el fichero (o crearlo) en la ruta http de tu servidor (suele ser httpdocs o public_html) y agregar lo siguiente:
  • Para ficheros:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^prueba.asp$ http://www.miweb.com/ [R=301,L]

    Cómo veis en la primera parte de RewriteRule establecemos el fichero que provoca el cambio de url, en este caso "prueba.asp", cuando el usuario intente cargar http://www.miweb.com/prueba.asp será redireccionado por el servidor a http://www.miweb.com

  • Para carpetas:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^prueba/(.*)$ http://www.miweb.com/ [R=301,L]

    Cómo veis en la primera parte de RewriteRule establecemos la carpeta que provoca el cambio de url, en este caso "prueba", cuando el usuario intente cargar http://www.miweb.com/prueba/fichero.php será redireccionado por el servidor a http://www.miweb.com
Para que este código completo funcione deberá estar activado el mod_rewrite de .htaccess, os pongo a continuación el código completo del ejemplo:

# Ejemplo de .htaccess

order allow,deny
deny from all

Options +FollowSymlinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^prueba/(.*)$ http://www.miweb.com/ [R=301,L]
RewriteRule ^prueba.asp$ http://www.miweb.com/ [R=301,L]

# Fin del ejemplo


Recordáos por último que en mod_rewrite la instrucción que manda es la anterior, no la última como sucede por ejemplo con CSS.

23 de septiembre de 2009

PHP: Cambiar permisos de ficheros


En ocasiones algunos plugins de Wordpress o Joomla! cambian los permisos de escritura de ciertos ficheros clave como .htaccess, de tal manera que ni desde el FTP ni desde el panel de hosting podemos cambiar el permiso de escritura del fichero para poder editarlo.

¿Cómo podemos dar nosotros permisos de escritura a un fichero determinado desde PHP? Pues es muy fácil, con la instrucción chmod. Os pongo un ejemplo:

chmod(".htaccess", 0755);

Entre las comillas va el nombre del fichero, si está en otra carpeta tenemos que añadir la ruta física de la misma (no la url), el número son los permisos asignados, en este caso le he asignado unos permisos 0755. Acordaos siempre de poner el 0 delante.

Y ya está, problema resuelto :)

22 de septiembre de 2009

Firefox es el navegador más utilizado para acceder a mi blog



Si hacéis click en la imagen podréis ver en grande los datos, Firefox tiene el 48'36% de las visitas, Internet Explorer (con todas sus versiones) tiene un sorprendente (por lo bajo) 39'44% y en tercer lugar se posiciona Google Chrome con un 7'45%.

El perfil de usuario de este blog es el de un usuario con conocimientos avanzados de tecnología, así que supongo que estos datos no son extrapolables a blogs con muchas más visitas.

Mañana hay evento Iniciador en Alicante

La conferencia correrá a cargo de Ismael El Qusdi, todo un experto en marketing online y buscadores, y naturalmente versará sobre buscadores. Después de la conferencia tendremos Networking hasta las 10 de la noche, seguro que estará muy interesante.




La conferencia será en el club Información a las 7 de la tarde en Alicante, estaré por allí, si me veis podremos hablar un rato.

Os pongo aquí el enlace del Iniciador de Alicante si buscáis más información.

21 de septiembre de 2009

Javascript: Crear objetos para almacenar datos

Cuando programas en javascript -y en cualquier lenguaje- te pasas la vida almacenando datos en variables, debido a esto si no tienes cuidado terminas convirtiendo tu script en caos.

En los inicios de la web los scripts que tenía que programar eran muy pequeños para evitar subir demasiado el peso de la página, pero por un lado los anchos de banda han subido bastante y por otro los clientes demandan más y más funcionalidades.

¿Cómo podemos organizar esas variables para no acumular decenas y decenas de ellas? Pues una de las soluciones que yo utilizo son los objetos.

Un objeto no es más que una instanciación de una clase, como Date o String o Array, lo que vamos a hacer es crearnos nuestro objeto personalizado en el que almacenaremos los datos de manera organizada.

Aquí va un ejemplo:
function oListado(elementos)
{
   this.elementos = elementos;
   this.listadoItems = new Array(elementos);
   this.getItem = list_getItem;
   this.setItem = list_setItem;
}
// Creamos los métodos get y set
function list_getItem(element)
{
   return this.listitems(element);
}

function list_setItem(element, stringval)
{
   this.listitems(element);
}

 
var listado = new oListado(3);  // Instanciamos el objeto con el tamaño de 3 registros

listado.setItem(0,"Valor del listado nº1");
listado.setItem(1,"Valor del listado nº2");
listado.setItem(2,"Valor del listado nº3");

alert(listado.getItem(0)); // Mostramos el contenido de la primera celda dentro de una alerta
 
Con este ejemplo podremos tener un objeto, listado, en el que almacenaremos de una manera organizada todos los datos de cada uno de los elementos del mismo. Es parecido a un array, pero mucho más personalizable e intuitivo. 

19 de septiembre de 2009

18 de septiembre de 2009

El primer anuncio de televisión de móviles de la historia



En casa llegamos a tener uno de esos, era enorme y te costaba 100 pesetas el minuto :)

16 de septiembre de 2009

¿Por qué los frikis no solemos tener novia?

 
¡Brutal! XD XD XD
Fuente: Graph Jam

Conferencia de David Bravo en Alicante sobre Creative Commons

Ayer, 16 de septiembre, el conocido abogado David Bravo dio una conferencia sobre Creative Commons en Alicante.


Estuve entre el público (y entre los preguntones) y bueno, os voy a hacer un pequeño resumen de la conferencia con mis valoraciones incluídas (para algo es mi blog :P).

La conferencia versó sobre la propiedad intelectural y los enfrentamientos que ha tenido David Bravo a lo largo de estos años con las principales asociaciones de las empresas del sector audiovisual ya sea vía judicial o en debates televisivos.

Tuvo un ritmo ágil, aunque la parte mejor fue la primera cuando estuvo más metido en materia jurídica, luego ya se lanzó por el río de las anécdotas. Escuchar batallitas es divertido, pero creo que caricaturizó demasiado a la SGAE y compañía.



En conclusión, me quedo con la primera parte de la conferencia que estuvo muy bien. La segunda parte entretenida, para echar unas risas a costa de unos personajes de tebeo que espero que no sean así en la realidad.

13 de septiembre de 2009

Citas célebres: Alex Turc

Alex Turc, "uno cambia, evoluciona e incluso se contradice a lo largo de la vida. Por eso necesitamos el derecho al olvido".

¿Creéis que las redes sociales han acabado con ese derecho?

10 de septiembre de 2009

Kurt Cobain cantando y tocando en Guitar Hero 5...

...¡Una canción de Bon Jovi! ja, ja, ja



Me encanta que puedas utilizar tu avatar en el juego.

PSP: Rumores de un servicio de alquiler de juegos

Sony ha lanzado el Firmware 6.0 para la PSP y trae incluída una pequeña sorpresa, la posibilidad de descargar juegos que sólo funcionarán por un periodo de tiempo. ¿Estamos ante el lanzamiento de un servicio de alquiler de juegos por parte de Sony?

Hasta ahora Sony no ha hecho ninguna declaración oficial al respecto. Pero hace poco anunciaron un servicio de juegos por 1$, ¿Estamos ante un cambio del paradigma del negocio en el mundo de los videojuegos?

Al final la crisis económica es lo que tiene, o te adaptas o mueres. El tiempo dirá si este rumor es cierto o no.


Fuente: SlashGear

7 de septiembre de 2009

La primera imagen de la historia de la web

 
En fin, uno se hubiese imaginado que iba a ser una imagen más trascendente, aunque bueno a lo mejor para el programador que la subió (Silvano de Genaro) si que lo era :)
Fuente: 11 Points

Vídeo de publicidad legendaria del Atari 2600



Fuente: Dandoporculo.com

4 de septiembre de 2009

Nuevo trailer de Assassin's Creed II

Tiene una pinta alucinante, ojalá sea menos repetitivo que el anterior.

2 de septiembre de 2009

Joomla!: Pasos para trasladar una web de Joomla a otro servidor

  1. Descarga la web del servidor actual.
  2. Haz una copia de seguridad de la base de datos (normalmente a través de phpMyAdmin).
  3. Sube la web al servidor nuevo
  4. Crea la base de datos en el servidor nuevo y toma nota de su nombre, usuario y contraseña.
  5. Edita el fichero configuration.php (está en la ruta de Joomla!) y cambia lo siguiente:
    1. $log_path debe tener ahora la ruta del servidor nuevo (puedes ver esta ruta con phpinfo() en el campo open_base_dir).
    2. $tmp_path debe tener ahora la rutal del servidor nuevo (igual que el paso 1).
    3. Si utilizas el FTP interno de Joomla! edita su configuración actualizando $ftp_user, $ftp_pass y $ftp_root.
    4. Actualiza las variables de la base de datos $host, $user, $db y $password con los valores de la base de datos del nuevo servidor.
  6. Si el nombre del dominio va a cambiar utiliza phpMyAdmin para buscar dentro de la base de datos cualquier referencia al dominio anterior, edítalo.
  7. Revisa los permisos de las carpetas de la nueva web si hay algún problema y asegúrate que están como en el servidor anterior (por norma general suelen ser 755)
Y ya está, ole, valor y al toro :)

1 de septiembre de 2009

Sobre Mename.net y las noticias duplicadas

Uno de los agujeros mayores que veo a Meneame.net es su sistema de noticias duplicadas.

Por ejemplo, ayer Disney anunció la compra de Marvel Comics, esta noticia, como toda noticia importante tiene muchas caras y muchas maneras de analizarla. Pues bien, con el sistema de Meneame.net sólo hay lugar para una noticia sobre este tema. Vale que el sistema permite noticias relacionadas, pero a la menor te las marcan como duplicadas y te dejan sin karma, por lo que la regla general es que hay sólo una noticia por tema.

Este problema da lugar a una carrera de ratas en la cual los usuarios obsesionados con el karma van a la carrera para ver quien pone primero una noticia para subir su karma, de tal manera que no envían la mejor noticia sobre un tema, envían la primera que encuentran o lo que es peor, la noticia del medio de comunicación del que son fans.

Si sois usuarios de Meneame.net podréis ver que los medios y webs de referencia que aparecen son en un 90% siempre los mismos, y no me creo que siempre los mejores al dar una noticia sean siempre los mismos.

¿Cual es la solución a este problema? Pues no la tengo, pero es algo a mejorar de esta web agregadora de noticias.

30 de agosto de 2009

PHP: Ejecutar comandos y programas en el servidor

En ocasiones necesitamos ejecutar en el servidor web comandos linux o programas, por ejemplo a la hora de encriptar un carrito de la compra para enviar a la pasarela de pagos de un banco.

¿Cómo podemos hacer esto? Pues con la instrucción shell_exec.

Os pongo un ejemplo de como funciona:

<?php
$output = shell_exec('ls');
echo $output;
?>

Con este ejemplo listamos el contenido de una carpeta y volcamos el resultado en la variable $ouput para imprimirla a continuación en pantalla.

Hans Zimmer se encargará de la banda sonora de CoD: Modern Warfare 2

Pues sí, el oscarizado compositor de las banda sonora del Rey León, Piratas del Caribe 2 y 3, Gladiator, Batman el Caballero Oscuro, etc... ha confirmado que va a componer su primera banda sonora para un videojuego.

El 10 de noviembre conoceremos el resultado :)

28 de agosto de 2009

Trailer de Gamer

Esta película tiene muy buena pinta...

26 de agosto de 2009

Un vídeo muy bueno sobre Spotify

Spotify es el servicio de música en streaming de moda en Internet, aunque tiene un catálogo algo limitado y emite sólo con 22.000 Khz de calidad está bastante bien.

He encontrado un vídeo que explica de una manera muy sencilla qué es Spotify y como funciona, y encima curiosamente es un vídeo oficial:

25 de agosto de 2009

Nokia anuncia su primer Netbook

El mercado de los Netbooks es cada día más potente y Nokia, la empresa líder a nivel europeo de telefonía móvil ha decidido lanzarse a la arena.

Lo va a hacer con el Nokia Booklet 3G. ¿Sus puntos fuertes? Aquí van:
  • ¡12 horas de batería!
  • ¡1,2 kg de peso!
  • 720p
  • Salida HDMI
  • ¡A-GPS!
  • Monitor de 10'
  • Ranura SD
  • Wifi
  • 3G
Funcionará con Intel Atom y Windows. Lo que no aclaran es a que velocidad irá el Atom y el disco duro. Tampoco conocemos el precio. El 2 de febrero Nokia desvelará todos los detalles.

Aquí va una fotito del bicho:
Fuente: Elotrolado.net

24 de agosto de 2009

Joomla: Variable que contiene el idioma en Joom!fish para Joomla! 1.5.x

En un post antiguo os hablé de como detectar el idioma activo en Joomla 1.x, ahora os actulizo ese post con información de como hacerlo para Joomla! 1.5 con Joomfish 2.0.

Os pongo un ejemplo para mostrarlo en pantalla

<?php
echo($this->language);
?>

En caso de que el idioma activo sea el español deberá mostrar es-es.

23 de agosto de 2009

PS3: Resistance, fall of man 2

Me he terminado ayer el modo historia de Resistance, Fall of Man 2 (RFoM2), un estupendo juego desarrollado por Insomniac Studios para Sony y me ha quedado un gran sabor de boca.

RFoM2 es el típico FPS en el que debemos manejar a un héroe machote que a base de liquidar todo lo que se le pone por delante ayudará a salvar a toda la humanidad. Pero no nos llevemos a engaños, el guión es simple pero bastante bueno y la ambientación es realmente soberbia.

La mecánica del juego es la típica del género, podemos llevar 2 armas a la vez, cada una con un disparo primario y otro secundario, también dispondremos de granadas de todo tipo. Curiosamente en RFoM2 no tendremos fases en las que llevar vehículos a diferencia de la mayoría de los FPS modernos.

El diseño de niveles del juego es muy bueno, mantiene el ritmo y sorprende. El nivel normal de dificultad no es para nada fácil, te matan bastantes veces en algunas misiones.

A nivel gráfico el modelado de los personajes y de los decorados es excelente, así como el diseño artístico de los mismos. Criticar eso sí las animaciones de los personajes tanto en el modo historia como en los modos cooperativo y competición, son de un antiguo que recuerda al primer Half Life :|

La música es muy buena, el doblaje al castellano excelente y el sonido en 5.1 en algunos momentos realmente inquietante (en el buen sentido).

El modo cooperativo es muy divertido, aunque no ha sido mimado tanto como el modo historia. Es una pena que tenga algunos fallos gráficos bestiales y bastantes cuelgues. Esperemos que en la tercera parte se lo trabajen más, porque me encanta.

El modo multijugador admite hasta 60 jugadores a la vez sin ningún tipo de lag, es divertidísimo pegarse tiros con todo el mundo :). La pena es el nivel de la animación de los personajes, pero bueno, a ver si para el siguiente lo mejoran.

En conclusión, RFoM2 es un juego de gran nivel pero con pequeños peros que le impiden entrar en el Olimpo de los juegos legendarios, eso sí, si tienes PS3 debes jugarlo :)

Valoración: 8/10

21 de agosto de 2009

Videos: Nostalgia de las chuches

¿Os acordáis de cuando comprábamos las chuches en pesetas? :)



Fuente: Meneame.net

20 de agosto de 2009

PHP: Pausar la ejecución de un script

Aunque os parezca increíble en ocasiones nos interesa que PHP vaya más lento, por ejemplo, a la hora de mostrar el mensaje de login y password erróneo cuando alguien intenta un ataque de fuerza bruta.

¿Cómo podemos hacer que PHP retrase sus respuestas 1 o 2 segundos? Pues con la instrucción sleep().

Os pongo un ejemplo:

<?php
sleep(2); // Se detiene 2 segundos en continuar la ejecución
?>

El valor modificador de sleep debe ser un número entero que determina los segundos de la pausa.

Si queremos hacer la pausa en microsegundos tenemos la instrucción usleep() y si queremos que la pausa se mida en nanosegundos tenemos time_nanosleep().

19 de agosto de 2009

XBOX 360: Kung Fu Panda

Kung Fu Panda es un juego publicado por Activision en 2008 basado en la película del mismo nombre. Para XBOX 360 fue desarrollado por Luxoflux.

Nos encontramos ante el típico beatem'up con elementos de plataformas y algunos minijuegos para darle color.

Gráficamente el juego es bastante normalito pero consigue trasladar con bastante fidelidad el universo en el que se mueve la película. A nivel sonoro destacar el doblaje en castellano (aunque con algunos fallos).

El juego es divertido, bastante rejugable y salvo en ocasiones puntuales quizás demasiado fácil.

El multijugador está bastante bien trabajado, con juegos de combate uno contra uno típicos y con juegos cooperativos.

En conclusión, un juego entretenido y correcto. El juego fue publicado también para PS3, Wii, Windows y PS2.

Valoración: 6/10

Javascript: Imprimir pantalla

Pues es muy sencillo, con la instrucción print().

Os pongo aquí un ejemplo:

<a href="javascript:print()">Imprimir pantalla</a>

Tened en cuenta que si no tenéis estilos de impresión definidos vía CSS la impresión de la pantalla puede no quedar como en el monitor.

14 de agosto de 2009

El Jonan y el Need For Speed

El Jonan de Vaya Semanita (ETB) se enfrenta al Need for Speed:



XD XD XD

PS3: Batman, Arkham Asylum (Demo)

Bueno, pues ayer, entre partida y partida del Resistance Fall of man 2 (en unos días hablaré de él aquí) me descargué la demo del nuevo juego de Batman y me eché un par de partiditas.

¿Mi opinión? El mejor juego de Batman desde hace años, espectacular, divertido y muy acorde con el particular universo del personaje.

El planteamiento del juego es muy sencillo, el Joker se ha hecho con el control de la prisión-manicomio de Gotham, Arkham, y pretende acabar con nuestro hombre murciélago. Nosotros manejamos a Batman y naturalmente le pararemos los pies a él y a todos sus esbirros.

La mecánica del juego es una mezcla de juego de infiltración con el típico beatem'up. Tiene también algunos elementos de investigación, pero en la demo esta parte no es gran cosa. La parte de las peleas cuando estás rodeado está muy conseguida.

Gráficamente el juego es muy bueno, tanto a nivel de engine (el Unreal Engine en entornos lúgubres siempre cumple muy bien) como a nivel artístico. Las animaciones de los personajes (el movimiento de la capa de Batman es una pasada) y las expresiones faciales son maravillosas.

La música está bien ajustada a la acción y las voces son muy buenas (no recuerdo ahora si eran en castellano o en inglés XD ).

El juego es muy divertido, si en la versión final las nuevas misiones añaden variedad estaremos ante uno de los juegos del año.

El juego estará para Windows, XBOX 360 y PS3.

11 de agosto de 2009

YouTube lanza la publicidad obligatoria en los vídeos

Cómo muestra un botón:

http://www.youtube.com/watch?v=JMknKXfbyt8

Por ahora es sólo una prueba, pero veréis como pronto se generaliza.

10 de agosto de 2009

Javascript: Acceder al historial del navegador

Javascript nos permite crear enlaces para ir a páginas web anteriores o posteriores a través del objeto history.

Los métodos de los que dispone este objeto son los siguientes:
  • forward: Va a la página posterior a la actual.
  • back: Va a la página anterior a la actual.
  • go: Va a la página del índice del historial que le indiquemos tanto anterior (-3, por ejemplo) como posterior (2, por ejemplo).
Por motivos de seguridad los navegadores no nos dejan acceder al contenido del historial, tan sólo nos permiten crear estos enlaces de manera opaca, así que no podremos cargar en ninguna variable la url a la que nos envían.

El historial de este objeto sólo abarca las páginas visitadas en esa ventana del navegador, las páginas vistas en otra ventana o en otra pestaña no se almacenan en este objeto.

Os pongo un ejemplo:


Se encuentra en: <a href="index.php">Inicio</a> >> <a href="javascript:history.go(-2);">Plan Especial de Apoyo a Sectores Productivos</a> >> <a href="javascript:history.back();">Medidas especiales de apoyo empresarial</a> >> <strong>Programa de acciones estratégicas de diversificación industrial</strong>


Tened en cuenta que si el navegador que carga la web no soporta javascript (p.ej. el navegador de un móvil) estos enlaces no funcionarán.