Buscar
Social
Ofertas laborales ES
lunes
oct082007

Java ME - CDC en windows mobile

Petr Panteleyev's ha puesto en su blog enlaces sobre como instalar JavaME - CDC sobre el sistema operativo de Microsoft Windows Mobile, uno de los sistemas operativos más usados en smartphones.

Por lo que veo windows Mobile no tiene soporte para Java ME - CDC por lo que es necesario compilar el código fuente para generar un binario para dicha plataforma. Las instrucciones las puedes hallar en este wiki.

Lo malo es que las APIs especiales para poder acceder a algunos recursos de los dispositivos como Bluetooth o códecs multimedia no pueden ser compiladas tan fácilmente para dicha plataforma porque cada dispositivo usa diferentes características hardware para dichos recursos.

domingo
oct072007

Versión final del JSR 242 "Digital Set Top Box Profile"

Hace unos días se ha liberado la versión final del JSR 242 "Digital Set Top Box Profile", una especificación que pretende crear un API estándar y unificada para su uso en la televisión digital. En esta especificación han participado empresas tan importantes e influyentes en el negocio de la distribución de video como Comcast, Time Warner Cable, Liberate, Motorola, Philips, y Sun Microsystems.

Uno de los objetivos principales de la especificación era unificar las APIs propietarias de fabricantes como Motorola, Philips, Liberate y otros. Entre la funcionalidad que ofrece la especificación está la posibilidad de acceder a video bajo demanda, guías de programación interactivas, juegos.

No deja de ser irónico que después de 16 años Java vuelva a sus orígenes: la televisión por cable. El proyecto Green, padre de Java, tenía entre sus objetivos construir un entorno de programación para "Set Top Boxes". El proyecto, un fracaso completo, creó el lenguaje de programación que dio lugar a Java. 16 años después Java va a intentar triunfar donde su "padre" fracasó.

domingo
oct072007

Solucionados varios fallos de seguridad críticos en Java SE

Sun ha parchado varios fallos de seguridad críticos en Java SE, fallos que han sido anunciados a través de su weblog de seguridad. Varios de estos fallos están relacionados con Java Webstart y permitían a una aplicación escalar permisos y escribir ficheros en la máquina cliente. Otro fallo, relacionado con el mecanismo de caché de los Applet, permitía a un Applet maligno abrir conexiones de red no autorizadas, pudiendo así exponer recursos y servicios de una intranet que de otro modo no serían accesibles desde el exterior.

Las versiones de Java SE afectadas son JRE 6 Update 2 y anteriores; JDK y JRE 5.0 Update 12 y anteriores; SDK y JRE 1.4.2_15 y anteriores; y SDK y JRE 1.3.1_20 y anteriores. Sun ya ha publicado nuevas versiones de todas estas ediciones de la plataforma con los fallos de seguridad solucionados en java.sun.com.

sábado
oct062007

Artículo comparando los distintos motores de webservices disponibles en Java

En Infoq han publicado un artículo comparando los distintos motores de webservices disponibles en Java.

Los motores de webservices comparados han sido: Apache Axis2, Apache CXF, Spring Web Services, JBossWS y Sun’s Metro.

El artículo incluye entrevistas a los desarrolladores principales de estos motores WS donde se discute sobre temas como interoprabilidad, estándares, madurez, soporte REST y databinding.

La URL es http://www.infoq.com/articles/os-ws-stacks-background.

jueves
oct042007

Introducción a JSR-275: Medidas y unidades

Jean-Marie Dautelle ha escrito este artículo sobre JSR-275 que busca estandarizar las medidad y sus unidades mediante el uso de clases concretas y extensibles.

Actualmente en Java no existe forma simple de lidiar con las medidas usadas para un mismo fin, en el artículo la autora menciona un error en un software desarrollado para la NASA que costó USD$ 125 millones porque la mitad de los programadores usaron unidades inglesas y la otra unidades métricas. Esta especificación busca una forma consistente para lidiar con las unidades de forma tal que no importa si el input esté en celsius o en fahrenheits, el sistema tomará los valores correctos.  

Por ejemplo, para obtener el peso de una persona se pondría:

 class Person {
void setWeight(Measurable<Mass> weight);
}
De esta forma se podría obtener el valor en la unidad que uno quisiera:
double weightInKg = weight.doubleValue(KILOGRAM);
double weightInLb = weight.doubleValue(POUND);
double wrong = weight.doubleValue(LITER); // Compile Error! 


Como puedes ver, al querer obtener el peso en una unidad que no aplica para Masas, el compilador te informará del error.
La especificación también tiene métodos estáticos para realizar operaciones entre las unidades, por ejemplo la operación KILO multiplica por mil una unidad y ofrece la posibilidad de crear unidades propias, aquí un ejemplo de la autora:

Unit<Pressure> PASCAL = NEWTON.divide(METER.pow(2)).alternate("Pa");
Unit<Duration> HOUR_MINUTE_SECOND = HOUR.compound(MINUTE).compound(SECOND);

Con esta especificación la conversión de unidades las maneja el JDK por lo que podremos estar seguros de que son correctas y consistentes. Todavía no se ha decidido si este JSR será incluido en JDK 7.