Este mes hará un año que empecé a usar Google App Engine. Es probablemente el servicio menos conocido de Google y a la vez es, sin duda, el más potente.
Introducción
Google App Engine -en adelante GAE- ofrece la infraestructura de Google a cualquier desarrollador para hacer funcionar aplicaciones web. Es lo mismo que ofrece con éxito Amazon Web Services -en delante AWS- pero desde un enfoque distinto y para mis necesidades particulares mucho mejor.
Google App Engine vs Amazon Web Services
La ventaja de AWS es la libertad total que le confiere poder instalar software libremente en los servidores, sin embargo esta ventaja lo hace difícil de configurar y su escalabilidad es rudimentaria en comparación con GAE. Funciona asignando un numero concreto de servidores físicos para tareas de CPU o de almacenamiento. Aunque esto se hace de forma dinámica y bastante eficiente... es un juego de niños en comparación con la perfecta escalabilidad que ofrece GAE.
En contraposición, GAE afronta la computación en nube desde un punto de vista muy simple. El único inconveniente es que se ciñe a un marco de desarrollo concreto (actualmente Java o Python).
Con GAE las tareas de procesos (CPU), memoria instantánea (RAM) y almacenamiento persistente se percibe como un todo. No hay forma de identificar un servidor físico, es una verdadera computación en nube, actuando como un único servidor gigantesco.
GAE escala la infraestructura automáticamente. No hay ningún control al respecto, simplemente funciona y lo hace soportando cualquier demanda por grande que sea.
Potentes recursos
Infraestructura es global. Quedan a disposición todos los datacenters de Google, cada uno con decenas de miles de servidores. Repartidos en una decena de países en todos los continentes. Por lo tanto GAE es un gran CDN (servidor de contenidos distribuido, como akamai) ya que cada petición es atendida por el datacenter más cercano disponible.
No hay ataque DDoS capaz de tirar Google App Engine. A lo sumo lo único que conseguirán será consumir recursos, pero si lo reportas a Google te lo descuentan.
Para hacerte una idea del potencial del que estamos hablando pondré un ejemplo.
Cualquiera podría crear hoy mismo una aplicación en GAE que utilice un máximo de 2.488 horas de CPU cada día.
Se toma como unidad de CPU un procesador a 1.2 Ghz.
Por lo tanto esto quiere decir que puedes usar al 100% 103 servidores funcionando a 1.2 Ghz permanentemente.
Por supuesto esto no es gratuito. Tendría un coste de 248 euros al día, solo en gasto de CPU. Pero no está nada mal teniendo en cuenta que son 124 Ghz.
Almacenamiento virtualmente ilimitado
Toda la infraestructura está limitada rigurosamente por las cuotas. Sin embargo, curiosamente, el limite del almacenamiento persistente -y cito textualmente- es Ninguno. Gracias a la tecnología BigTable.
Esto quiere decir sencillamente que Google ofrece tanta capacidad de almacenamiento como seas capaz de pagar. Aunque hay que decir que el limite por archivo es de 10mb, ya que GAE está diseñado para un uso web específico y no para almacenar archivos grandes.
Veamos ejemplo práctico.
Imaginemos que ofrecemos alojamiento de imágenes. ImagesHack por ejemplo usa un centenar de servidores. Terabytes. Imagina la ardua tarea para hacer un backup, o simplemente la escalabilidad ya que cada día la capacidad debe aumentar.
Pues con GAE ese problema no existe. Sería tremendamente fácil programarlo.
Nunca habría perdida de datos y se servirán bajo cualquier demanda ya que al menos tres datacenters guardarán todos los datos.
Podrías almacenar 1.000.000.000 imágenes sin despeinarte. Suponiendo una media de 150kb por imágenes saldría por: 75 euros al día. No es demasiado teniendo en cuenta la hipotética barbaridad.
Aplicación práctica
En Teoriza uso esta infraestructura a modo de CDN para servir archivos estáticos. Así alivio mi servidor primario y sirvo unos milisegundos más rápido, debido a la proximidad de servidor. Todo con una genial disponibilidad del 99,9%.
En esta captura, que cualquiera puede cotejar, se aprecia el único detalle que refleja la maquinaria que se esconde detrás.

También lo uso como mirror de páginas y archivos en momentos puntuales de altísimo tráfico, redirigiendo temporalmente las DNS de un subdominio concreto, por ejemplo, directamente hacia la infraestructura de Google. De esta forma Teoriza puede resistir decenas de efectos menéame simultáneos.

Mi récord de tráfico está en 185 peticiones por segundo.
El limite son 500 peticiones por segundo, pero puedo solicitar a Google la ampliación de este limite de seguridad. Espero que algún día sea necesario. :)
Desde hace un año uno de mis sueños profesionales es llegar al limite la infraestructura de Google, si a caso eso es posible.
Concluyo con un pronóstico o advertencia. (el que avisa no es traidor)
Si algún día Google decide soportar PHP y portabilidad de MySQL en GAE -si es que les interesa- el ahora éxito de Amazon quedará empequeñecido y cambiará el mundo del hosting tal y como lo conocemos.
Spanish | English
Description:
Animal Captcha is a PHP program created for web developers who need a secure spam control for HTML forms. It displays a random image picked from a list of animals which only humans can recognize.
Advantages:
- Nice look: better than an ugly alphanumeric string.
- Fast: users can identify an animal faster than several mixed letters.
- Effective: less wrong answers.
- Secure: the main reason. Some alphanumeric captchas you can find on the Internet are really difficult to be recognized by a bot, but with an animal it's almost impossible!
- Multi-language: available in some languages, multiple valid names for each animal.
Documentation:
Animal Captcha is divided into two PHP files and one folder containing some images.
- animal-captcha.php - Returns a random image and saves the name of the animal in a session variable for being checked later.
- animal-captcha-check.php - It defines animal_captcha_check() function. It returns true if user answer is OK, and false if it's wrong.
- Folder images - They must be JPG format, a 120x120 px size, showing a very common animal which everybody knows. Names are composed with some words separated by dashes. Each word represents a valid answer for the same animal (eg: cerdo-pig-porc.jpg).
By this way you can easily adding new languages or solving problems about animals which have some different names.
Download:
Published under Creative Commons 3.0 license. You can use or modify all you want, but you must attribute the work to the original author: GONZO (Javier González), of Blogs Teoriza.
Sorry about my bad English, i hope it will be useful!
Desde pequeño me ha impresionado el tiburon ballena. El pez más grande que existe. Poco tiene que ver con un tiburón, pues se alimenta de placton.
Es una gran mole que viaja por los océanos con movimientos lentos y magestuosos.

Resulta que en el acuario más grande del mundo tienen cuatro ejemplares. En el Georgia Aquarium en Atlanta, USA (info). Disponen de una webcam conectada en tiempo real enfocanzo al sector de los tiburones ballena.
[inc]webcam-acuario[/inc]
Merece la pena echarle un vistazo. Cada minuto aparece un tiburon ballena, más o menos.
Imagina la necesidad de cubrir in-situ y en tiempo-real cualquier evento de cualquier magnitud. Desde grandes concentraciones, conferencias, accidentes o crisis de nivel mundial... hasta una manifestación a pie de tu calle, averías o cualquier evento que observes desde donde estás.
Con esta premisa, he desarrollado la ultima Herramienta de Blogs Teoriza, llamada en clave Anfiteatro.
www.Teoriza.com/anfiteatro/
El mecanismo es simple. Con un rapidísimo y fácil formulario cualquiera puede crear una página en la que se organizan eventos (tipo twitter) actualizados en tiempo-real con tecnología AJAX, sin refresco ni necesidad de actualización.
Al igual que un Anfiteatro romano, puede servir para cubrir por ejemplo los siguientes eventos:
- 11-M: ante cualquier catástrofe donde la información llega con cuentagotas esta herramienta puede ser la mejor opción para reunir e informar.
- Apple keynote: anualmente miles de seguidores de Apple están interesados en seguir al minuto las novedades de esta empresa tecnológica.
- E3: el evento anual más importante sobre consolas en la que se presentan los últimos lanzamientos.
- CampusParty: cada año puedes retransmitir todo lo que va ocurriendo.
- Un partido: de cualquier deporte, siguiéndolo con anotaciones minuto a minuto.
- Conferencias: de cualquier ámbito, con esta herramienta podrás retransmitirlas fácilmente punto por punto.
- Evento aeroespacial: lanzamientos de transbordadores, accidentes, emergencias...
- Fenómeno astronómico: eclipse lunar, de sol, perséidas, cometas y cualquier otra eventualidad.
- Y cualquier utilidad que se te ocurra (comenta, por favor).
Sin publicidad, alojado en nuestros servidores de alto rendimiento. Con una tecnología sin MySQL, con un código optimizado para rendir con la máxima rapidez.
Todo esto hace que sea capaz de aguantar las más intensas demandas de usuarios. Según mis cálculos no caerá ni juntándose Digg y Menéame juntos.
[Desarrollo de las sugerencias:
Auto-foco en el campo de escribir y contraseña.
Refresco reducido hasta los 60 segundos.
Permite borrar cualquier nota.
Eliminar anfiteatros.
Bug que muestra la primera linea en blanco al borrarla.
Corregir codificación de caracteres especiales en actualizaciones AJAX.
Corregido problemas con las comillas.
Auto-enlazar direcciones web.
Mejoras extras:
Panel de admin con AJAX.
Contador de aforo (usuarios online).
]
fr-08 es el titulo de la mejor demo que se haya creado. Fue publicada en el 2000 por farbrausch en el evento The Party.
Es toda una experiencia de Internet, un archivo auto ejecutable de tan solo 64kb que lanza una animación en 3D a toda pantalla, con sonido de máxima calidad en la que vuela la imaginación y la calidad es extrema.
Técnicas vectoriales y verdaderos hackers apasionados hacen que cada bit de más de sí. Para el resto de los mortales en 64kb apenas cabe una simple imagen comprimida o un documento de texto de apenas un par de páginas. Una canción de tres minutos ocupa 60 veces más.
Según se comenta informalmente al final de la demo:
- 16mb de texturas.
- 178mb de texturas intermedias.
- 15 minutos de sonido.
- 159mb de música en formato wav.
- 12 tracks (canciones).
- 850 millones de samples.
- 80.000 triángulos texturizados.
- 5,7mb de puntos vectoriales estáticos.
- No incluye geometría animada.
- 1.9Gb de datos sin comprimir (es solo una equivalencia, es puramente matemática, no un streaming de vídeo).
- 64 63,5 kilobytes.
Lo podéis descargar desde aquí:
[Actualización: 2007, aportaciones nuevas generadas por la conversación
- Más información sobre esta demo, fr-08, aquí [EN]. En ella explican y muestran las texturas, escenas, sonido, packer...
- Destacar la última demo fr-041 Debris (siete años después de esta) yo no la puedo visualizar por alguna razón (si en Youtube), promete muchísimo, en solo 170kb. Seguramente sea la mejor demo hecha nunca, pero me parece más increíble la fr08 hecha en 2000, varias épocas de Internet después.
- Excelente aportación clave de ignotion #8: "fr08 NO comprime, o al menos no esta ahí su gracia, sino que GENERA. Genera la música, genera las texturas y genera la geometría. La gracia esta en que si tu puedes generar una textura a través de una formula matemática, entonces te ahorras mucho espacio."
- En Menéame confirman que funciona en GNU/Linux emulado con Wine.
- Aclaración de aritzg: "Eso es una intro de 64k. No es que se hayan comprimido los 1,9 GB si no que los 64KB son capaces de generar el equivalente. Es decir... el ejecutable de 64KB contiene algoritmos de generación de texturas, generación de sonidos, animación 3D, sincronización, etc... que en tiempo de ejecución generan imágenes, volúmenes, música... mediante esos algoritmos."
- Destaco el concepto de que no es una "compresión" si no una "generación" por lo que el titulo de menéame sería confuso.
- Pouet [EN] web importante donde se listan y rankean las demos de la escena.
]
He terminado la recopilación de los resultados que se desprenden de la encuesta ¿Cuantos euros pagarías? que inicié hace unos días.
Podeis ver aquí el resultado detallado. Se han encuestado a 77 usuarios de Internet hasta este momento, aunque lo he dejado abierto, por si alguien más quiere dar su opinión (ya que lo he programado, así se aprovecha más).
Sobre los resultados destaco lo siguiente (obviamente mi interpretación es subjetiva, que cada cual extraiga sus conclusiones de los datos):
- Más del 90% pagaría por una pelicula de calidad descargada por Internet (hubiendo podido elegir 0 Euros, gratis).
- Las películas en cartelera se venderían muy bien a 3 euros, las contemporáneas a 2 euros.
- Sobre las series de televisión más del 80% está de acuerdo en pagar por capítulos.
- Las serias podrían venderse bien a 1 euro, ya que la media es 0.8 euros.
- En el sector de la música hay un notable aumento del "todo gratis" del 55%, excepto si la canción es de un grupo favorito entonces el 80% si pagaría.
- Las canciones se podrían vender bien a 0.5 euros.