30 de junio de 2009

ZX Spectrum: Se prepara en Inglaterra una serie de Televisión sobre las guerras de los ordenadores de 8 bits

Pues sí, la BBC se ha animado a lanzar una película sobre la guerra del BBC Micro y el ZX Spectrum.

Sinclair y Curry serán interpretados por Alexander Armstrong y Martin Freeman.

Seguro que emulan el estilo de "Piratas de Sillicon Valley". La cosa promete :)

Fuente: Mcvuk.co.uk

Spam 2.0: Usuarios de redes sociales falsos

Google ha publicado un post en su blog para webmasters relativo a este nuevo sistema de spam que está arrasando. Deduzco que sus algoritmos están perdiendo la batalla contra este tipo de trucos y tocan a rebato para que los webmasters les echen una mano. Y más nos vale la pena ayudarlos si queremos que nuestras webs se mantengan arriba del listado de Google :)

¿En que consiste este Spam 2.0? Pues consiste en aprovechar las posibilidades de interacción y comunicación de las redes sociales para enviar mensajes de Spam. Y cuando hablamos de redes sociales no nos referimos sólo a Facebook o MySpace. Si tu blog ofrece la posibilidad de dar de alta usuarios tienes que tener cuidado para que ningún listillo se cree un perfil con el nombre de Viagra, por ejemplo. Por no hablar de aquellos que publican enlaces y código javascript que redirige el navegador de tus usuarios a una web completamente distinta.

El uso de plataformas como Joomla!, Wordpress, etc, tiene de interesante que simplifica los desarrollos de nuevas webs y potencia al máximo la interacción entre y con los usuarios. Pero tiene el problema de que cuando se produce un agujero de seguridad los spammers se lanzan como brutos a por esa web y te la convierten en un bar de carretera.

Google nos ofrece una serie de consejos para evitar esta situación:
  • Pon las medidas estándar de seguridad para impedir la creación de usuarios y mensajes de manera automatizada: Captchas, preguntas para humanos, validar que una IP no pueda enviar datos a cada milisegundo, etc.
  • Crea una lista negra para spammers: Si lo hacen una vez que no puedan repetir.
  • Protégete contra ataques XSS
  • Usa el nofollow con los enlaces que puedan ser dudosos, como los enlaces añadidos por el usuario en su perfil.
  • Evita que el robot de Google indexe páginas de usuario hasta que estos tengan antigüedad y actividad.
  • Pide ayuda a tus usuarios, pon un botón de informar de spam.
  • Utiliza Google para estar al día de los hackeos más habituales.
  • Utiliza las estadísticas de buscador para ver si los usuarios llegan a tu página con términos de búsqueda que sugieran que alguna parte de tu web contiene spam.
En conclusión, tened cuidado ahí fuera :)

29 de junio de 2009

Frikadas: El síndrome del First Person Shooter

¿Qué es lo que te sucede si juegas demasiadas horas a un FPS?



Simpático :)

Fuente: Meneame.net

28 de junio de 2009

Resumen semanal de Faceblog

Pues como cada domingo os publico el resumen semanal de mi blog sobre Facebook, Faceblog:
Pues ya está, que aproveche :)

YouTube duplica a 2 Gb el tamaño máximo de los vídeos

Hasta ahora sólo podíamos subir vídeos de hasta 1 Gb de tamaño, pero a partir de ahora podremos subir vídeos de hasta 2 Gb.

Lo que si que continúa es limitación de la duración del vídeo a 10 minutos. Esta limitación es una de las taras de YouTube ya que en otros portales para compartir vídeos el límite es mucho mayor. La razón por la cual subsiste es el miedo a que los usuarios comiencen a subir masivamente contenido protegido por copyright. En fin, esperemos que el algoritmo para detectar material protegido de YouTube mejore pronto y desaparezca esta limitación.

El aumento de tamaño máximo está orientado al aumento de la resolución de los vídeos subidos. YouTube ha decidido apostar -por fin- por el vídeo en alta definición, de tal manera que a partir de ahora:
  • Podremos mostrar la versión en HD del vídeo -si la tuviese- añadiendo al enlace &hd=1
  • Podremos mostrar en la web vídeos de hasta 853*505 píxeles
En conclusión, que YouTube se mueve. A ver cuando quitan la limitación de la duración de los vídeos :)

27 de junio de 2009

Twitter: Cómo utilizar Twitter para estar informado en tiempo real de cualquier tema

Hace dos días falleció Michael Jackson, a diferencia de otras muertes de famosos del pasado de las que tuve noticia por la radio o por la televisión esta vez la noticia me llegó vía Twitter.

Es increíble lo que han cambiado los tiempos, si alguien hace 10 años me llega a decir la pérdida tan brutal de importancia que están teniendo los medios de comunicación tradicionales gracias a Internet no me lo habría creído (nunca he ido de visionario :P).

El caso es que Twitter está muy bien para obtener información fresca, pero tiene un problema, Twitter es un caos :). En principio nosotros sólo leemos los mensajes en Twitter de los usuarios a los que seguimos. Si por ejemplo nos interesa saber que se cuece en Twitter sobre Google salvo que los usuarios a los que seguimos hablen de Google no nos llegará mucha información.

¿Cómo solucionar esto? Pues muy fácil:
  1. Cargamos el buscador de Twitter: http://search.twitter.com
  2. Buscamos Google en su buscador
  3. Elegimos en la columna de la derecha el idioma en el que han sido escrito los mensajes
  4. Hacemos click sobre "Feed this query"
  5. Agregamos el feed a Google Reader o a nuestro lector habitual de RSS
Ya está, a partir de ahora cuando abramos el lector RSS veremos los últimos mensajes que se están publicando en Twitter sobre Google.

Si queréis refinar más el RSS para separar el trigo de la paja tan sólo tendréis que cambiar la cadena de búsqueda añadiendo o quitando términos según sea el caso. Os aseguro que la cantidad y calidad de información privilegiada que podéis obtener por este sistema es brutal.

Videojuegos: Warcraft 2

Os cuelgo aquí un vídeo análisis muy resumido sobre todo un clasicazo, Warcraft 2 del año 1995. Hasta World of Warcraft tiene abuelos ;)

Valoración: 9/10

25 de junio de 2009

Desarrollo Web: Peleando con Internet Explorer 6

Es un hecho, pese a que los años pasan y las versiones de Internet Explorer se suceden el Internet Explorer 6 se resiste a morir y mantiene una cuota de mercado importante e irreductible, por desgracia para sus usuarios, y por desgracia para nosotros, los desarrolladores de webs.


Si tienes Internet Explorer 6 actualízalo a una versión posterior o cambia de navegador.

¿Qué por qué?
  • Porque se ha quedado obsoleto
  • Porque se ha convertido en un navegador muy inestable
  • Porque la mayoría de las páginas web se ven a día de hoy mal en él
  • Porque ejecuta muy lento el javascript, el flash y lo que le pongas
  • Porque no tiene soporte para PNG con transparencias, que es uno de los formatos más potentes y más usados hoy en día
  • Y por último, porque cada vez que una web es adaptada a Internet Explorer 6 un desarrollador de webs entra en el manicomio.
¿Qué navegador os recomiendo?

Firefox, sin duda alguna.

¿Y si no te fías de Firefox y quieres seguir con Microsoft?

Pues el Internet Explorer 7 o incluso el Internet Explorer 8 (aunque este también tiene tela).

A nivel profesional adaptar una web a Internet Explorer 6 encarece mucho un proyecto, supone en algunos casos un 20% de tiempo extra en el desarrollo.

Frikadas: Jugando al Halo 3 en una pantalla de 50 metros

El director de los conciertos de los Jonas Brothers, Steve Fatone, es un fanático de los videojuegos y ha llevado a la realidad el sueño de muchos de nosotros, jugar en una pantalla de 50 metros (la pantalla de los conciertos de los Jonas Brothers), lo ha grabado y ha enviado el vídeo a Engadget. El juego es el Halo 3.



Fuente: Hispamp3.com

24 de junio de 2009

Twitter: Personaliza tu perfil de Twitter

La red de Twitter crece cada día más, mes tras mes aumenta su número de usuarios. Su mayor defecto, es puro caos. Su mayor virtud, es puro caos, y de ese caos surgen situaciones y aplicaciones geniales.

El caso es que si eres profesional o tienes una empresa tienes que estar allí, aunque no le veas sentido debes estar allí. No te preocupes, cuando lleves 15 días entenderás por qué :)

Cuando creas un usuario en Twitter tienes que configurar los datos públicos de tu perfil. Por ejemplo, podéis ver mi perfil de Twitter en este enlace.


Cómo podéis ver el fondo de mi perfil es superfriki, pero es que los fans del ZX Spectrum somos así ;)

Tu perfil es tu tarjeta de presentación antes el resto de la comunidad de Twitter, dependiendo de como sea la foto de tu avatar, la imagen del fondo y de los datos que pongas contribuirás a tu reputación online en una u otra dirección. Además el perfil de Twitter y los twitts (mensajes de Twitter) posicionan muy bien en Google, así que hay que mimar las formas y el contenido del mismo, la primera impresión cuenta mucho.

¿Qué elementos se pueden personalizar del perfil de Twitter?
  • Name (Nombre).
  • Location (Lugar donde estás).
  • Web: Tu web personal o profesional.
  • Bio: Enlace a una web con tu biografía.
  • Foto: Aquí pones la foto de tu avatar.
  • Imagen de fondo: La imagen de fondo, en mi caso he puesto una captura de la pantalla de carga de uno de mis juegos favoritos de ZX Spectrum, AMC.
Os he hablado en último lugar de la imagen de fondo, pues hay por ahí verdaderas maravillas con las imágenes de fondo, vía Carla Delgado he descubierto hoy unos cuantos fondos de perfil de Twitter como para quitarse el sombrero :)

En conclusión, que Twitter es bueno, bonito y barato, creáte un perfil, el nombre de mi usuario es @gabicuesta.

Los dominios .yu desaparecen

Los dominios .yu son los dominios pertenecientes a la antigua Yugoslavia. Cómo sabéis Yugoslavia ya no existe, se dividió en una serie de pequeños países: Croacia, Serbia, Eslovenia, etc.

Bien, pues debido a la desaparición de este país su dominio también ha desaparecido, el último día que estarán activos es el día 30 de septiembre.

Aunque no es un dominio muy utilizado en cifras globales si que es cierto que al tener carácter nacional hay muchas webs en Internet que enlazan con webs que utilizan esos dominios. Así que si alguno de vuestros clientes tiene algún enlace a una web de este tipo deberíais corregirlo.

No deja de ser sorprendente para alguien como yo que lleva en este mundillo desde el año 1996 la importancia política que han adquirido los dominios. Tener tu dominio nacional se ha convertido en algo tan importante como una bandera, cualquier territorio que se quiera independizar de un país para formar su propio estado intentará por activa y por pasiva conseguir su dominio propio. Por otro lado, cualquier país al que se desee enterrar para que jamás vuelva a resurgir perderá su dominio rápidamente.

Si no estás en Internet no existes, nunca mejor dicho.

23 de junio de 2009

ZX Spectrum: Un ZX Spectrum overclockeado a 14 Mhz

El Z80 del Spectrum iba a 3,5 Mhz, así que imaginaros que acelerón :)



Fuente: Youtube

22 de junio de 2009

Apple rechaza un emulador de Commodore 64 para iPhone


Los amantes de los ordenadores de 8 bits estamos hoy de mal día ya que Apple ha decidido rechazar para la App Store un emulador del legendario Commodore 64.

La empresa desarrolladora tenía las licencias de Commodore contratadas, el problema ha venido por la prohibición de Apple de lanzar ejecutables desde una aplicación de su móvil, y claro, el emulador puede lanzar imágenes de discos del C64.

¿Conseguirán Manomio y Kiloo Apps -las empresas desarrolladoras- superar los obstáculos y lanzar el emulador al mercado? ¿Tendrán los usuarios de iPhone que esperar a que se filtre alguna versión para iPhones jailbrekeados?

Fuente: Joystiq

Wordpress: Cómo crear urls dinámicas en el tema con PHP

Por lo general cuando desarrollas un blog o una web para Wordpress rara vez lo haces en el servidor final del proyecto, y mucho menos con el dominio real que tendrá, por lo que utilizas la url del servidor de desarrollo en el que sueles programar la web en una subcarpeta que nada tiene que ver con la url final.

El problema aparece cuando instalamos ese proyecto en el servidor final, todos los enlaces internos que hemos creado en la plantilla de Wordpress están dirigidos a la antigua plantilla. Por ejemplo, si hemos creado un enlace a la sección de noticias lo haremos en base a las urls del servidor de desarrollo (http://www.desarrollo.com/proyectos/1.html), de tal manera que cuando lleguemos al servidor final (http://www.cliente.com/1.html) todos esos enlaces no funcionarán.

Para evitar esto Wordpress nos permite utilizar la famosa función get_bloginfo con el parámetro siteurl, de esta manera cada vez que tengamos que poner un enlace en el blog por programación lo mejor es hacerlo como en este ejemplo:

<a href="<?php echo get_bloginfo('siteurl'); ?>/actualidad/noticias/">Enlace a noticias</a>

De esta manera todos los enlaces que creemos a mano dentro del código del tema del blog funcionarán siempre.

21 de junio de 2009

XBOX 360: Viking, battle for Asgard

Viking, battle for Asgard es un juego creado por $the Creative Assembly y publicado por Sega para XBOX 360 y para PS3. Ha caído en las garras de mi XBOX 360 y os voy a comentar aquí que me parece. Como no lo he probado en PS3 sólo voy a hablar aquí de la versión para XBOX 360, supongo que la versión para la consola de Sony no variará mucho.

Manejamos a Skarin, un vikingo duro, muy duro, que ha sido devuelto a la vida por Freya, diosa de la belleza e hija Odín, dios supremo en la mitología nórdica. Freya mantiene una enconada guerra contra Hel, la diosa del infierno, fruto de esa guerra la legión de Hel ha arrasado las tierras vikingas. Como supondréis a estas alturas nosotros somos los encargados de derrotar a los secuaces de la diosa del inferno.

Viking es un juego de acción con muchos elementos de juego de aventuras y unos pocos toques de juego de plataformas. Está claramente inspirado en la maravillosa saga de God of War pero eso sí, con personalidad propia, lo cual es de agradecer.

La mecánica del juego es muy buena, deberemos recorrer una serie de islas (de una en una) realizando todas las misiones que se nos presenten en ellas. No tendremos acceso a la isla completa en un principio, habrá misiones para ir dándonos acceso a diferentes zonas. Las misiones son bastante variadas, y aunque prima en ellas la acción están bien sazonadas de plataformas y de cierta investigación.

El sistema de combate es muy bueno, rápido de aprender y con una buena curva de aprendizaje. Lo único que lo pierde es el mal uso de la cámara, especialmente cuando Skaring está cerca de una pared.

A nivel gráfico el diseño de los personajes no me convence demasiado, están todos hipermegamusculados, vamos, que son tochos de músculo andantes. Los movimientos del protagonista son muy robotizados, les falta suavidad, supongo que no habrán utilizado captura de movimientos. El motor gráfico por su parte sufre bastantes ralentizaciones y eso que la tasa de frames no es muy elevada.

A nivel sonoro destacar las voces en castellano. La música es buena, pero escasa, se echa en falta en muchos momentos del juego.

El argumento y la ambientación son muy buenas, buena historia y buen guión, y eso que es un juego de acción.

En conclusión, Viking, battle for Asgard es un juego entretenido con detalles muy buenos, pero con taras que rebajan demasiado la calidad del producto final. Y es una pena, la verdad, este juego con un motor gráfico mejor y con unos movimientos más fluídos podría haber sido uno de los grandes. Supongo que Sega no ha metido todo el dinero que el juego necesitaba. Aún así, si os gustan los juegos de acción con un buen argumento os lo recomiendo, a mí me está gustando mucho.

Valoración: 6.5/10

Faceblog: Resumen semanal

Bueno, pues aquí os pongo el listado de posts de esta semana de Faceblog, mi blog sobre Facebook:
¡Qué aproveche :) !

19 de junio de 2009

XBOX 360: Guitar Hero Aerosmith

Hace dos semanas me compré el Guitar Hero Aerosmith, y bueno, resumiendo, es como el Guitar Hero III pero con las canciones de Aerosmith. Me lo he hecho ya en nivel fácil y ahora le estoy dando caña al nivel medio.

¿Es divertido? Pues si te gusta Guitar Hero sí, mucho.

¿Es original? Pues no, es una copia completa del Guitar Hero 3 pero enfocado a Aerosmith.

¿Merece la pena? Si te gusta la música de Aerosmith y el sistema de juego de Guitar Hero sí, si no no. Yo me divierto mucho con él :)

Valoración: 7/10

Wordpress: Cómo excluir categorías de las búsquedas

Wordpress trae incorporado un motor de búsquedas bastante flexible que podemos configurar utilizando query_posts con sus parámetros correspondientes.

Os voy a poner ahora un ejemplo en PHP de como excluir la categoría con el id 12:

<?php
$s = get_query_var('s');
query_posts("s=$s&cat=-12");
?>

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<? the_title ?>
<?php endwhile; ?>
<?php else : ?>
No hemos encontrado ningún resultado. ¿Por qué no pruebas a buscar con otros términos?
<?php endif; ?>

Con este ejemplo Wordpress nos mostraría todos los posts que no pertenezcan a la categoría 12, bueno, los posts y las páginas, recordad que las páginas no tienen categorías en esta plataforma. Cómo podéis ver, dentro de query_posts aparece el modificardor cat=-12, si quisiésemos excluir varias categorías utilizaríamos cat=-12,-13-15, es decir, separaríamos las categorías por comas.

Si quisiésemos que realizase búsquedas sólo en una categoría determinada utilizaríamos el mismo sistema, pero quitando el -, o sea cat=12 mostraría sólo posts de la categoría 12. Si queremos mostrar posts de varias categorías lo haríamos así, cat=12,13,14, es decir, poniendo todos los identificadores de las categorías separados por comas.

Por último comentaros que cuando en un query_posts utilizamos el parámetro s activamos el modo buscador de query_posts, o sea, que utilizará la condición LIKE de MySql en vez de la condición = cuando realice la SELECT en el servidor de base de datos.

18 de junio de 2009

PHP: Comprobar si una clave existe en un array

Una de las formas habituales de crear arrays es utilizar claves y asignarles valores, por ejemplo:

$miarray = array('nombre' => 'Gabriel', 'apellido' => 'Cuesta');

En este ejemplo el array se llama $miarray y tiene dos claves almacenadas, nombre y apellidos, con los valores asignados Gabriel y Cuesta.

En ocasiones las claves de los arrays van cambiando durante la ejecución de un script y podemos necesitar comprobar si una clave existe o no. ¿Cómo se hace? Pues con la función array_key_exists. Os pongo este ejemplo:

<?
$mirray = ('nombre' => 'gabriel', 'apellido' => 'cuesta');
if (array_key_exists('nombre', $miarray)) {
echo "nombre existe en el array como un clave";
}
?>

Cómo veis es muy sencillo de utilizar y muy útil en algunas fases del desarrollo.

Los 5 iconos más conocidos del mundo de los videojuegos

La web Gamerlimit ha publicado un post muy interesante sobre los 5 iconos más reconocidos en el mundo de los videojuegos (en Estados Unidos, naturalmente).

Aquí va la lista del 5 al 1:

17 de junio de 2009

CSS: Tipos de bordes

Con CSS podemos asignar bordes a los diferentes elementos de una página web, por ejemplo asi:

border:1px solid #000000;


No todos los bordes son así, los hay de muchos tipos:

  • Con puntos:
    border:1px dotted #000000;


  • Con rayas:
    border:1px dashed #000000;


  • Con puntos:
    border:5px double #000000;


  • Borde 3D curvado:
    groove:5px dotted #000000;


  • Borde 3D elevado:
    border:5px ridge #000000;


  • Borde 3D hacia dentro:
    border:5px inset #000000;


  • Borde 3D hacia fuera:
    border:5px outset #000000;


ZX Spectrum: Wolfenstein 2004

El juego ha sido desarrollado por un programador llamado Dmitry Bystrov (supongo que será ruso) para un clon del Spectrum, el Pentagon.

Os pongo aquí el vídeo que he encontrado en YouTube, en cuanto pueda me descargaré el juego y lo probaré a ver que tal :)

Videojuegos: Primer trailer de King of Fighters Online

En principio sólo tengo noticias de que va a ser publicado para Windows, pero poco más sé de este proyecto.

No tiene mala pinta.

16 de junio de 2009

¿Para cuando algún videojuego de la saga Crepúsculo?

El mundo se ha llenado de expertos en videojuegos, unos como analistas, otros como productores, otros como programadores, etc. Los hay a centenares.

¿Cómo es que a ninguno se le ha ocurrido desarrollar un juego sobre esta saga ahora que ha arrasado en cines? Vale que la historia es más de romance que de acción, pero un videojuego no tiene por qué ser de acción pura, los hay de todo tipo, hasta de romance (sobre todo en Japón).

Está muy de moda hablar de videojuegos orientados a las mujeres, pero parece mentira que la saga de novelas y de películas más popular entre las mujeres adolescentes de occidente no tenga aún su videojuego. A ver si alguien se anima :)

Wordpress: Obtener el título del post padre (o página padre)

En una webs que estoy desarrollando ahora utilizando Wordpress como CMS el diseñador ha decidido que cada página de la web debe tener por título el nombre de la página padre y de la página actual.

¿Cómo podemos saber cual es el título del post padre o de la página padre?

Pues con este sencillo script:

<?php
$nombrePadre = get_the_title($post->post_parent);
echo ("Nombre del post/página padre: ". $nombrePadre);
?>

Recordad que para que funcione el script debe ser ejecutado dentro del loop de Wordpress.

13 de junio de 2009

Actionscript 3.0: Como contar el número de hijos añadidos a una instancia

En muchas ocasiones cuando desarrollamos con Actionscript 3.0 tenemos que cargar fotografías, vídeos u otro tipo de contenido de manera dinámica.

Cuando añadimos ese contenido con el método addChild (por ejemplo nombreInstancia.addChild(contenido);) le estamos añadiendo ese contenido creándole un hijo a la instancia nombreInstancia.

Cuando el programa que hemos programado es bastante largo es frecuente que a lo largo de la ejecución del mismo carguemos contenido, lo borremos, etc. El problema está en que puede que necesitemos saber en algún momento cuantos contenidos hemos cargado dentro de una instancia y claro, o bien cada vez que creemos o destruyamos hijos actualizamos una variable (algo farragoso y que enlentecería nuestro código), o bien utilizamos la propiedad que trae AS 3.0 de manera nativa para esta función: numChildren.

¿Cómo se utiliza?

Pues muy fácil, aquí va un ejemplo:

var variable:Number = nombreInstancia.numChildren;
trace(numChildren); // imprimimos en la consola de prueba el resultado

Fácil y muy útil.

12 de junio de 2009

CSS: Cómo invertir horizontalmente el contenido de una web

¿Y cómo se consigue este efecto tan curioso? Pues muy sencillo, con la desconocida propiedad direction.

Tiene dos valores posibles rtl (de derecha a izquierda) y ltr (de izquierda a derecha, que es el valor por defecto).

El texto no se invierte, se invierte la colocación de los contenidos. Os pongo un par de capturas de Faceblog.es con y sin esta propiedad para que podáis comparar. Primero de izquierda a derecha (como es por defecto) y en segundo lugar con los bloques de derecha a izquierda.


PSP: Primer trailer de Resident Evil

Resident Evil en PSP, mmm, me pregunto si logrará asustarme...

11 de junio de 2009

Microsoft Word: Cómo leer documentos docx con versiones antiguas del Word

Microsoft Word a partir de la versión 2007 graba sus ficheros con la extensión .docx, este tipo de ficheros por defecto no se pueden abrir con un Microsoft Word anterior a esta versión.

Pero claro, muchos (inclusive un servidor) seguimos trabajando con el Office 2003 o incluso con versiones más antiguas. ¿Qué podemos hacer cuando un cliente nos envía un documento con este formato?

Pues afortunadamente Microsoft nos proporciona la solución, si entráis en esta página podréis descargaros el paquete de compatibilidad con los formatos de archivo de Word, Excell y Powerpoint 2007.

El paquete funciona con versiones de Office a partir del año 2000, así que no se os ocurra instalarlo con el Word de Windows 3.11 :D

Frikadas: Esto si que es ser fan del Comecocos

De aquí a nada celebraremos el 30 aniversario del mítico Comecocos (Pacman en su versión original), pero de ahí a montar lo que han hecho el humorista Remi Gaillard y su panda de frikis va un mundo :)



Fuente: Elentir.info

Publicidad pirata en Tuenti

Tuenti es la red social española más importante por número de usuarios con diferencia tan sólo superada por Facebook en número de usuarios en España.

Su sistema de negocio es muy peculiar, funciona a base de eventos patrocinados. ¿Qué es un evento patrocinado? Pues es una actividad, normalmente muy breve, que puede ser online o offline ajustada al perfil que tienes creado en Tuenti.

Hoy por ejemplo me ha llegado un evento en Tuenti sobre un nuevo modelo de móvil de la marca LG. La verdad es que el evento encaja al 100% con mi perfil así que he entrado en la página de este evento que es Online.


¿Cómo funciona la publicidad pirata?

Pues muy fácil, en todos los eventos de Tuenti se permite comentar, lo que hacen los que publican la publicidad pirata es tener un montón de usuarios falsos creados que se dedican a comentar con frecuencia poniendo en su comentario un enlace a una web externa con un producto que encaja en el perfil de los usuarios a los que se ha invitado al evento.

En el caso del evento de LG estos usuarios están publicitando un juego en Flash en otra web, de nuevo encaja con mi perfil.

Este tipo de publicidad no tiene que ver nada con Tuenti. Si quieren evitar este tipo de publicidad pirata la solución es sencilla, que desabiliten los enlaces en los comentarios de los eventos patrocinados, pero claro, hacer esto podría desencadenar una bronca impresionante para los usuarios que utilizan estos enlaces de manera legítima.

En fin, cosas que tiene la Web 2.0.

Frikadas: YouTube Street Fighter

Alucina, vecina, un usuario de YouTube, PatrickBoivin, ha desarrollado una versión de Street Fighter para YouTube muy curiosa :)

El juego consiste en un combate del usuario contra la máquina en el que debes pulsar uno de los 4 botones de control del juego. El "motor" del juego funciona saltando de vídeo en vídeo según el botón que hayas pulsado.

En fin, que es muy curioso :), pero poco jugable, claro.

Para jugar bien lo suyo es ir al enlace de YouTube.

Os pongo aquí el vídeo inicial, pero mejor usar el enlace de arriba:

Mi Blog: Post nº 1000 de este blog

Bueno, pues iba a escribir un post sobre otro tema y me he topado con que esta es mi entrada nº1000, se dice pronto, ¿eh? :)

Comencé este blog el 12 de abril de 2006 para ir hablando un poco de mi día a día, con el tiempo se fue transformando más en un blog de programación y de ZX Spectrum para terminar convertido en un blog de programación web, videojuegos y algo de ZX Spectrum :)

Bueno, pues termino ya, a ver cuando consigo la entrada nº2000 :)



P.D. Sí, se me ve el fooro de los pantalones :P

Operation Wolf y sus diferentes versiones

Hace tiempo que comenté en este blog el juego Operation Wolf para ZX Spectrum, para mí uno de los clásicos de entre los clásicos. Hoy me ha dado por pasearme por Internet y buscar capturas de pantallas de otras versiones de este juego:
  • ZX Spectrum:
  • Amstrad:
  • MSX:
  • Commodore:
  • NES:
  • MSDOS:
  • Recreativa (La versión original):



Como es natural gana por goleada la versión original de la recreativa :)

9 de junio de 2009

PHP: Cómo destruir variables

En ocasiones cuando desarrollamos un programa o una página web nos interesa destruir una o varias variables.

¿En que consiste destruir una variable? Consiste en borrarla por completo de la memoria cuando el ordenador está ejecutando el código de tal manera que es como si esa variable nunca hubiese existido, es algo mucho más potente que simplemente dejar la variable con valor null.

PHP para destruir variables nos proporciona la función unset, con esta función podemos destruir una o varias variables a la vez.

Para destruir por ejemplo la variable $pescado usaríamos:

<?php
unset($pescado);
?>

Para destruir varias variables a la vez, por ejemplo, $pescado, $carne, $huevos, usaríamos:

<?php
unset($pescado,$carne,$huevos);
?>

¿Y qué sucede cuando ejecutamos esta instrucción dentro de una función o desde dentro de un método?
Pues que sólo destruimos esas variables dentro de la función o del método, no a nivel global.

¿Y cómo podemos destruir una variable a nivel global desde el interior de una función o desde el interior de un método?
Pues usamos el identificador $GLOBALS para acceder a ellas. Os pongo un ejemplo con la variable global $pescado:

<?php
unset($GLOBALS['pescado']);
?>

Obviamente con varias variables globales sería de la siguiente manera (siendo $pescado, $carne y $huevos esas variables):

<?php
unset($GLOBALS['pescado'],$GLOBALS['carne'],$GLOBALS['huevos']);
?>

Espero que os sea de utilidad a todos :)

Final Fantasy: Nuevo trailer de Final Fantasy XIII



Cómo todos sabéis este juego va a salir para PS3 y para XBOX 360, me pregunto cuantos DVDs tendrá la versión para XBOX :)

8 de junio de 2009

Faceblog: Resumen semanal

Bueno, con un día de retraso, pero aquí os pongo el resumen semanal de mi blog sobre Facebook, Faceblog.es:
¡Que aproveche :) !

Star Wars: The Old Republic

Mucho mejor que las películas :)

7 de junio de 2009

Videojuegos: Los juegos más esperados una vez pasado el E3

Cómo todos sabéis ha terminado ya el E3, la feria de videojuegos más importante del mundo, que se celebra todos los años en Los Angeles, EEUU.

Uno de los usuarios de Gametrailers, therealgamer, ha preparado un fantástico vídeo con los juegos más esperados a partir de esta feria. Estoy de acuerdo con la mayoría de ellos, así que os pongo aquí su vídeo:

6 de junio de 2009

Wordpress: Obtener los ids de todas las páginas

Cuando utilizamos Wordpress para desarrollar un sitio web utilizamos mucho los contenidos tipo página por lo que con que frecuencia nos viene bien tener acceso al listado de ids de las páginas para poder crear menús, obtener contenidos, etc... sin mezclarlos con los ids de los posts.

Wordpress nos ofrece una función para ello, get_all_page_ids(), que nos devuelve un array con todas las ids.

Aquí os pongo un ejemplo que imprime el listado en pantalla:

<?php
print_r(get_all_page_ids());
?>

Google: Logo homenaje al Tetris

Me sale sólo en la página de resultados:


Supongo que lo han puesto por el aniversario de creación de Tetris, aunque dicho sea de paso, no les ha quedado muy logrado, al menos a ese tamaño :)

5 de junio de 2009

Frikadas: Mi opening favorito de Dragon Ball Z

El caso es que debido a las manías de las cadenas de televisión españolas nunca ha llegado a usarse en España :(

Pero bueno, gracias a Internet todos podemos disfrutarlo ahora: We Gotta Power!!!

PHP: Como barajar de manera aleatoria los datos de un array

Muchas veces tenemos arrays con un montón de datos que nos interesa que se muestren de manera aleatoria (por ejemplo las preguntas de un concurso). Para ayudarnos con esta tarea PHP tiene una función nativa, suffle(array &$nombre_matriz).

Os voy a poner un ejemplo sencillo:

<?php
$nombres[0] = "Gabriel";
$nombres[1] = "Pepe";
$nombres[2] = "Fernando";

srand (time());
shuffle ($nombres);
for($i=0;$i<sizeof($nombres);$i++){
echo ($nombres[$i] ."<br/>");
}
?>

La instrucción srand no es necesaria si la versión de PHP es superior a 4.2. Sirve para reiniciar la semilla de cálculo de números aleatorios, o sea, para que no salga siempre el mismo resultado al barajar.

4 de junio de 2009

¿Qué es el VBScript?

Es un lenguaje de Microsoft que se ejecuta por defecto con ASP (hasta ASP 3.0) y en el navegador Internet Explorer.

Os pongo un ejemplo de como se ejecuta en ASP (el fichero debe tener la extensión .asp) para escribir en pantalla "Hola Mundo":

<%
response.write "Hola Mundo"
%>

En Internet Explorer el código sería el siguiente (el fichero debe tener la extensión .htm o .html o .asp):

<html>
<body>

<script type="text/vbscript">
document.write("Hola Mundo")
</script>

</body>
</html>

Naturalmente este ejemplo sólo funciona cargando la web en Internet Explorer.

A día de hoy el VBscript ha perdido mucha popularidad, en el lado del navegador debido a la fuerza cada vez más pujante de Firefox, que obliga a desarrollar en javascript para tener compatibilidad con todos los navegadores del mercado. Y en el lado del servidor es la propia Microsoft la que lo ha sustituído por Visual Basic o por C# cuando lanzó ASP.NET.

Aún así sigue habiendo bastantes sitios corriendo en ASP 3.0 con VBscript.

XBOX 360: El servicio XBOX Originals cierra sus puertas

Microsoft ha anunciado en este E3 que va a cerrar el servicio XBOX Originals de XBOX Live.

El servicio de XBOX Originals te permitía por un módico precio descargarte juegos completos de la XBOX antigua por un precio muy barato.

El último juego que publicarán en este servicio será el legendario Halo 2.

La razón oficial para cerrarlo es que van a lanzar un servicio similar para juegos completos de XBOX 360 y necesitan focalizar todos sus recursos técnicos en este nuevo servicio.

Ahora nos queda especular por la razón real, ¿No era un servicio rentable?, ¿Sólo fue un experimento para preparar la tecnología de distribución digital de juegos completos de XBOX 360?, ¿XBOX Originals fue solo un paso promocional previo para preparar a los usuarios a la compra directa de juegos de XBOX 360?

Lo que si que tengo claro es que XBOX Originals no ha sido tan rentable como Microsoft esperaba, ya que podría coexistir perfectamente con el nuevo canal de descargas, problemas técnicos 0.

Y también tengo claro que Microsoft (al igual que Nintendo y Sony) están apostando muy fuerte por el sector de distribución digital de juegos para saltarse al intermediario (las tiendas y cadenas de distribución).

En el futuro veremos cerrarse muchas tiendas de videojuegos y también veremos desaparecer el mercado de juegos de segunda mano, tiempo al tiempo :|

Fuente: Meristation

3 de junio de 2009

Wordpress: Jerarquías de ficheros en los themes

Uno de los puntos fuertes de Wordpress está en la versatilidad de sus plantillas (llamados temas), estos temas están compuestos por una serie de ficheros, dependiendo de las condiciones Wordpress cargará unos u otros.

Ésta es la jerarquía que sigue:
  • Página de inicio:
    1. home.php
    2. index.php

  • Página de mostrar post (entrada en castellano):
    1. single.php
    2. index.php

  • Página para mostrar página:
    1. Página php asociada al contenido vía gestor de contenidos.
    2. page.php
    3. index.php

  • Página para mostrar contenidos según categorías:
    1. category-id.php (id es aquí el id de la categoría).
    2. category.php
    3. archive.php
    4. index.php

  • Página para mostrar contenidos según tags:
    1. tag-[nombre del tag].php
    2. tag.php
    3. archive.php
    4. index.php

  • Página para mostrar contenidos según autor:
    1. author.php
    2. archive.php
    3. index.php

  • Página para mostrar contenidos según fechas:
    1. date.php
    2. archive.php
    3. index.php

  • Página para mostrar contenidos según búsqueda:
    1. search.php
    2. index.php

  • Página no encontrada (404):
    1. 404.php
    2. index.php
Así que ya sabéis, a partir de ahora cuando trabajéis con temas de Wordpress tened en cuenta estas jerarquías, os pueden simplificar mucho la vida :)

PS3: Nuevo vídeo de God of War III

Pero esta vez es de escenas de una demo para la E3, tiene muy buena pinta, aunque a nivel gráfico no es tan bueno como yo me esperaba, pero bueno, todavía les queda margen de desarrollo. Aún así va a ser la caña:

2 de junio de 2009

PHP: Evitando ataques de MySql injection validando los contenidos de texto

Un ataque MySql injection es un tipo de ataque en el cual a través de un agujero de seguridad el atacante consigue ejecutar código sql dentro de nuestro servidor, por ejemplo, un bonito drop table para ir liquidando una a una todas nuestras tablas.

Para ello una de las vías habituales de entrada suelen ser los formularios que no validan los datos vía servidor antes de ejecutar las consultas de base de datos.

Ya hemos hablado en este blog hace algún tiempo de como validar los datos de tipo numérico, ahora os voy a mostrar un pequeño sistema para evitar que el carácter " o el carácter ' os den algún dolor de cabeza.

Este post sólo es útil para los datos de tipo string (o sea, texto). Cuando vayamos a generar una consulta sql deberemos primero ejecutar la función addslashes con ellos, por ejemplo:

$cadena = "O'Donell";
$cadena = addslashes($cadena); // ahora $cadena="O\'Donell"

Más adelante cuando queramos convertir una cadena transformada por addslashes tenemos que utilizar stripslashes. Sigamos con el ejemplo:

$cadena = stripslashes($cadena); // ahora $cadena="O'Donell"

Muy útil, aunque no cubre el 100% de los intentos de ataque.

Videojuegos: Teaser trailer de Tales of Monkey Island

Pues sí, Guybrush Threepwood vuelve a la carga para PC y para Wii (vía Wiiware), esta vez en formato de 5 episodios (uno cada mes), al estilo de Sam and Max.

A lo mejor pruebo la versión de PC a ver que tal, me apetece jugar a una aventura gráfica decente ya que hace años que no he tocado una, creo que la última a la que jugué fue Siberia.



Fuente: Vandal.net

1 de junio de 2009

XBOX 360: Metal Gear Rising

Sí, Kojima lo ha anunciado en la conferencia de Microsoft en el E3. Lo que no está claro aún es si es o no una exclusiva para la XBOX 360.

El protagonista del juego será Raiden, no Solid Snake, aunque quien sabe, ya sabéis los giros que pegan los argumentos en los juegos de Hideo Kojima :)


Esta imagen es de Metal Gear Solid 4 ;)

Actionscript 2.0: Cómo leer acentos y ñs desde un fichero XML

A estas alturas de la vida hablar de Actionscript 2.0 puede ser un poco raro, pero como estos días estoy editando un juego que programé hace tiempo en ese lenguaje aquí va un pequeño truco para los que tengáis que leer un fichero XML con datos que contengan acentos y eñes y queréis que estos datos se muestren correctamente en vuestra película SWF.

De entrada el fichero XML tiene que tener la codificación ISO-8859-1, o sea:

<?xml version="1.0" encoding="ISO-8859-1" ?>

En nuestro fichero FLA o AS deberemos poner antes de leer el primer XML lo siguiente:

System.useCodepage = true;

Y ya está, problema resuelto :)