Si Nintendo hubiera hecho Halo 3



Risa... memorias... me falta el aire...

Definr y Groovy: ¡Fácil!

Hoy vamos a ver un mini-ejemplo de código en Groovy que puede resultar muy útil.

class Definr{
static String define(String word){
def html = "http://definr.com/$word".toURL().text
def definr = new XmlSlurper().parseText(html)
definr.body.div.div.toString()
}
}

def definicion = Definr.define("signature")
println definicion


El código muestra una clase llamada Definr que tiene un único método static llamado define que recibe como parámetro la palabra de la que se quiere su definición y la devuelve como un simple String.

Para que Definr nos muestre una página con el significado que buscamos, podemos construir un URL con el siguiente formato: "http://definr.com/palabra" donde "palabra" es sustituida por el término que queremos definir.

Utilizando la magia de las cadenas sexy de Groovy (GStrings), escribimos "http://definr.com/$word" y automáticamente, Groovy sustituirá la cadena"$word" por el valor del parámetro pasado a define.

Empleamos el método toURL de la cadena que construimos para obtener un objeto java.net.URL y con el método text, Groovy se encarga de hacer un request y guardar en la variable html el texto de respuesta. Así de fácil, así de sencillo.

Ahora, en medio de todo ese texto que recibimos se encuentra la definición.

<html>
<head>
...
</head>
<body>
...
<div>
<div> La definición </div>
</div>
</body>
</html>

Ya que la estructura de xml y html son muy semejantes (y asumiendo que Definr sigue buenas prácticas en la generación de html), utilizamos un XmlSlurper. XmlSlurper es una clase que recibe un documento xml y nos permite navegar de manera "Groovy" su estructura.


definr.body.div.div.toString() //De definr pasamos al body, luego al primer div, donde encontramos el div con el significado



Dicho y hecho, viendo la estructura de la página resultado, podemos "descender" a través de los nodos hasta llegar al elemento "div" que contiene el significado. Utilizamos toString para obtener el texto dentro del elemento y lo regresamos. Nótese que Groovy no requiere el uso de return. Como el método define es estático, no necesitamos una instancia de la clase Definr para invocarlo.

Y obtenemos la definición (programming):

programming (http://definr.com/programming)
n 1: setting an order and time for planned events [syn: scheduling,
programing]
2: creating a sequence of instructions to enable the computer
to do something [syn: programing, computer programming,
computer programing]



Y así, en tan solo 7 líneas, con un código claro y conciso, aunque dejando un poco de lado la validación del parámetro, obtuvimos el contenido de una página web y extrajimos los que nos importaba.

Existen muchos "servicios" web para los que podemos utilizar la misma técnica de construir URLS y "parsear" el contenido para sacar algo de manera muy conveniente y utilizarlo en nuestras aplicaciones.

Ejemplo: Domino's Pizza ofrece un servicio web de rastreo de nuestro pedido (por el momento solo en EU). Desde ésta URL "http://trkweb.dominos.com/orderstorage/GetTrackerData" y agregando como parámetro nuestro número telefónico, e.g. "http://trkweb.dominos.com/orderstorage/GetTrackerData?Phone=1234567890" obtenemos un documento con el que podemos saber si nuestra pizza ya está en camino o aún está en el horno.

Aquí pueden ver un ejemplo de ésto en Python.

Groovy es un lenguaje muy divertido y fácil de usar. Se los recomiendo. Tal vez la próxima vez, muestre cómo construir una simple interfaz gráfica para nuestro "diccionario", en muy pocas líneas. Compartan sus dudas e ideas en los comentarios.

Homero y Mario en "persona"

Me encontré en Pixeloo, estas imágenes tan curiosas como espeluznantes. Son una representación muy "humanizada" de Mario y Homero en las que se ven detalles como los poros y pliegues de la piel. El autor explica que logró éste efecto utilizando varias fotos superpuestas de personas normales y una imagen en "caricatura" de los personajes.


¡Operadora, deme el número del 911!
Homer Simpson
It´s a mee! Mario!
Mario

Serj Tankian - Sky is Over

En éste post les presento un nuevo video de Serj. La canción es "Sky is Over". Véanlo y escriban su opinión en los comentarios.



Elect the Dead: Una obra maestra

Elect the dead, la primera producción de Serj Tankian como solista, se ha convertido sin lugar a dudas en mi disco favorito. Cada canción es una muestra impresionante de la habilidad vocal de Serj, ya que interpreta además de la voz principal, las voces secundarias, coros, voces en off. Serj es muy reconocido como un poeta moderno, que no tiene miedo de alzar la voz y cantar su ideología, la cual imprime en cada palabra de la lírica en este álbum.

Serj realizó la mayor parte de la producción de éste disco, pero cuenta con participaciones de otros artistas, entre los que destacan, John Dolmayan (compañero baterista de System of a Down) y Bryan Mantia (baterista actual de Gun's N' Roses); además, para cada canción se realizó un video, cada uno dirigido por un director distinto y cada cual le da su interpretación personal a la música, y entre ellos hay muchos reconocidos por su trabajo con otras grandes bandas.

Sin lugar a dudas es un deleite escuchar cada canción. Es de los pocos cantantes, sino es que el único, que me ponen la piel chinita. A muchos no les gusta, y no soy un experto en música, pero sé lo que me gusta, y de ello, ésto es lo mejor.

Enlaces:

  • serjtankian.com (Sitio oficial): Ahí pueden ver cada uno de los videos y claro, escuchar la música.
También les dejo el video del primer single:


Salvándonos!!

Se filtró esta rola del nuevo disco de Serj. Hay que checarla; vale la pena.

Les traduzco algunos versos:

¿Por qué nos sentamos y nos rompemos el corazón ésta noche?.
¿Por qué danzamos alrededor de los problemas hasta la luz del amanecer?.
Cuando nos sentamos y hablamos y el uno al otro nos desgarramos las vidas.
Tú fuiste quien me dijo: vete.

Pero tu eras la indicada para mí,
y ahora te vas por la puerta.
Cuando das ese paso te amo bebé, más y más.
Necesitamos reír y cantar y llorar,
y calentar nuestro corazones el uno al otro esta noche,
mereciendo divertirnos de todo y amando todo nuestro Dios - madre (???? necesito revisar ésto).

¡Estás desgarrándonos!.
¡Estás quebrándonos!.
¡Estás matándonos!.
¡Matándonos!.
¡Estás salvándonos!.

Miento por siempre.

Serj Tankian

Serj Tankian - Empty Walls Video

Realmente impresionante

read more | digg story

A éstos me parezco?



Segundo intento ...



Definitivamente, el tercero define muchas cosas...



Al parecer Colin Farrel es el más recurrente, aunque me sorprendí el porcentaje de semejanza en el último intento con Johnny Depp y Howie Dorough (90%).
De algunos no conocía su nombre (pero si los conocía en películas) y el WTF fue Britney (WTF!!!). A mi parecer el algoritmo o proceso se basa mucho en la parte de las cejas y los ojos, no creen?.
Algunos más que aparecen son:

Ityee Comic

Robot Combat

Estos guerreros cibernéticos no le piden nada a los efectos especiales de Transformers. Chequen el video, es de lo más divertido.