AndEngine: Motor de juegos para Android

AndEngine es un motor LGPL para el desarrollo de juegos sobre Android.

Ofrece:

· Un Motor: refresca y actualiza la escena

· Escenas: pueden tener Capas y Entidades

· Texturas

· Sprites

· Física

· Detección de colisiones

· Música y efectos de sonido

Un ejemplo de lo que se puede desarrollar con AngEngine:

Capa de uso gratuito de Amazon AWS

Si el otro día veíamos como desplegar en la nubre de VMWAre de forma gratuita hoy veremos cómo comenzar a usar el cloud de Amazon de forma gratuita:

Amazon permite ejecutar una Microinstancia de Amazon EC2 gratuita durante un año, beneficiándose además de una capa de uso gratuito para Amazon S3, Amazon Elastic Block Store, Amazon Elastic Load Balancing y transferencia de datos de AWS.

Esta Capa gratuita ofrece al mees:

Capa de uso gratuito de AWS (al mes):

· 750 horas de uso de Microinstancia Linux de Amazon EC2 (613 MB de memoria y compatibilidad con plataformas de 32 y 64 bits), horas suficientes para ejecutarse de forma continua todos los meses*

· 750 horas de Elastic Load Balancer más 15 GB de procesamiento de datos*

· 10 GB de Amazon Elastic Block Storage, más 1 millón de E/S, 1 GB de almacenamiento de instantáneas, 10.000 solicitudes GET para instantáneas y 1.000 solicitudes PUT para instantáneas*

· 5 GB de almacenamiento estándar de Amazon S3, 20.000 solicitudes de obtención y 2.000 solicitudes de colocación*

· 15 GB de banda ancha saliente sumada por todos los servicios de AWS*

· 25 horas de máquina de Amazon SimpleDB y 1 GB de almacenamiento**

· 100.000 solicitudes de Amazon Simple Queue Service**

· 100.000 solicitudes, 100.000 notificaciones HTTP y 1.000 notificaciones por correo electrónico para Amazon Simple Notification Service**

· 10 indicadores de Amazon Cloudwatch, 10 alarmas y 1.000.000 de solicitudes de API**

· AWS Management Console para ayudarle a crear y gestionar su aplicación en AWS.

Podéis leer más aquí.

Desplegando en Cloud Foundry desde Spring Roo

El otro día vimos que era Cloud Foundry.

Hoy vamos a desplegar una aplicación Spring Roo en Cloud Foundry para que veáis lo integrado que está y lo sencillo que es 🙂

Para eso:

· Descargaré e instalaré Spring Roo (versión 1.2 RC1 al menos)

· Arrancaré la consola de Roo e instalaré el addon de Cloud Foundry para Roo:

roo> pgp automatic trust

roo>addon install bundle –bundleSymbolicName org.springframework.roo.addon.cloud.foundry

· Desde la consola hago login en Cloud Foundry:

roo> cloud foundry login –email myemail@mail.com –password ****** –cloudControllerUrl http://api.cloudfoundry.com

· Ya puedo usar los commandos cloud foundry:

Como roo>cloud foundry info

· Me crearé un proyecto de Roo de la forma tradicional (como ya hemos visto en varios posts). Podéis hacerlo también así:

o Me creo un fichero proyecto.roo en el raíz del proyecto con este contenido:

project –topLevelPackage com.dw.roo.conference –java 6 –projectName conference

persistence setup –provider HIBERNATE –database HYPERSONIC_IN_MEMORY

entity jpa –class ~.domain.Speaker –testAutomatically

entity jpa –class ~.domain.Talk –testAutomatically

field string –fieldName firstname –class ~.domain.Speaker –notNull

field string –fieldName lastname –notNull

field string –fieldName email –unique –notNull

field string –fieldName organization

field date –fieldName birthdate –type java.util.Date –past –notNull

field number –type java.lang.Long –fieldName age –min 25 –max 60

field string –fieldName title –class ~.domain.Talk –notNull

field string –fieldName description –notNull –sizeMax 4000

field set –fieldName talks –type ~.domain.Talk –class ~.domain.Speaker –cardinality ONE_TO_MANY

field reference –fieldName speaker –type ~.domain.Speaker –class ~.domain.Talk –notNull

controller all –package ~.web

logging setup –level INFO –package ALL_SPRING

(*) Fijaros que el commando entity en la versión 1.2 de Roo es ligeramente diferente….

o Lo lanzo con roo>script –file proyecto.roo

· Compilo el proyecto con roo>perform package

· Ahora ya puedo desplegar la aplicación en Cloud Foundry:

roo>cloud foundry deploy –appName NombreAplicacion –path targetconference-0.1.0.BUILD-SNAPSHOT.war

NOTA: el nombre de la aplicación debe ser único, si no ponéis un nombre único os dará este error:

· Una vez desplegada la aplicación puedo ver las aplicaciones, instancias,…

roo>cloud foundry list apps

· Y ya podemos arrancar la aplicación:

roo>cloud foundry start app –appName LuismiCloudFoundry1

· Y por supuesto acceder a ella en http://luismicloudfoundry1.cloudfoundry.com

· Puedo ver el estado de la aplicación, la instancia,…:

· Los Servicios provisionados:

· Provisionar más memoria para la aplicación:

En el próximo post veremos cómo provisionar otros servicios (por ejemplo como pasar a una base de datos MySQL).

Podéis ver el soporte del addon de Spring Roo a Cloud Foundry aquí,

Esto que hemos visto desde la consola Roo también se puede hacer desde Spring Tool Suite, podéis verlo aquí: http://blog.springsource.com/2011/04/13/using-cloud-foundry-from-sts/

¿Qué es Cloud Foundry?

Cloud Foundry es la propuesta PaaS (Platform As A Service) de VMWare.

Dentro de las Capas Cloud el PaaS está entre el IaaS (Infraestructure As A Service) y el SaaS (Software As A Service):

Si un IaaS nos da la infraestructura para que nosotros montemos nuestros servicios o plataformas (como Amazon EC2) un PaaS nos provee una abstracción sobre esa infraestructura y nos provee una plataforma y un stack de soluciones (como Google App Engine o Azure).

El objetivo de VMWare con Cloud Foundry es resolver los problemas de los PaaS existentes:

· Falta de portabilidad entre Clouds: acaso lo que corres en GAE correrá en algún otro sitio?

· Clouds sólo públicas: muchas organizaciones no pueden plantearse el uso de una nube pública y necesitan una infraestructura privada o mixta.

· Restricciones del Cloud: hasta hace poco GAE no soportaba bases de datos relacionales,…

· Soporte para estándares y frameworks

· Atado a un entorno: En Azure el uso de su base de datos SQL Azure o en GAE el uso de la suya,…

Cloud Foundry se define como una plataforma opensource multi-lenguaje, multi-framework, multi-aplicación y multi-cloud.

Cloud Foundry permite una elección en todas las capas como se ve en el stack que soporta:

Actualmente soporta:

· Lenguajes: Java, Groovy, Scala, Ruby y Node.js

· Frameworks: Spring, Rails, Grails, Node,…

· Servicios: MySQL, Redis, MongoDB,…

Y se están incluyendo nuevos Servicios: nuevas bases de datos, soporte RabbitMQ,…

Cloud Foundry corre sobre VMWare VSphere (Sistema operative cloud de VMWare).

Para comenzar a usar Cloud Foundry debes solicitar una cuenta (gratuita de momento), en un próximo post veremos como desplegar una aplicación creada con Spring Roo en Cloud Foundry.

Otra funcionalidad interesante es Micro Cloud Foundry que permite instalar en una máquina una máquina virtual con la plataforma para probar en local.

Why I will use Java EE (JEE, and not J2EE) instead of Spring in new Enterprise Java Projects in 2012

Interesante (y cuestionable por supuesto como todas las opiniones) reflexión sobre los motivos que llevaron a una persona a usar JEE en lugar de Spring en 2012.

Los argumentos son bastante coherentes:

Ventajas JEE Ventajas Spring
JEE es una especificación estándar No necesitas un AppServer (vale un WebServer)
Independiente de vendedores Características no soportadas por estándares JEE: Spring Batch, Spring Mobile, Spring Social, Spring Web Flow,…
Varias implementaciones Muchas más flexibilidad y potencia (AOP sobre JEE Interceptores)
Convención sobre configuración Versiones más rápidas

Lo que no veo es como de esta comparativa sale esta conclusión:

Due to the reasons I explained against Spring in the „BUT“ parts, I will choose JEE in most new Enterprise Java projects

Tiene pinta que la conclusion fue lo primero que escribió y luego se le olvidó cambiarlo 😀

dompdf: HTML to PDF converter

Dompdf, se trata de una librería de código abierto con la que poder transformar páginas de HTML a PDF.

Para su funcionamiento es necesario PHP 5, pero sus ejemplos me parecen espectaculares

http://pxd.me/dompdf/www/examples.php#samples

El código lo podemos encontrar aquí: http://code.google.com/p/dompdf/

JaCoCo: Java Code Coverage Library

JaCoCo es una librería Java libre para controlar la cobertura de código creado por el equipo de EclEmma.

Aunque aún va sólo por la versión 0.5.5 ya se puede usar.

Podéis ver un ejemplo de los informes que genera.

Se puede usar desde Java, Ant o Maven, con Sonar o desde Eclipse.