Buscar
Social
Ofertas laborales ES
jueves
ene242008

JLibrary ahora tambien por web

Ya hace tiempo descubrí vía JH la aplicación JLibrary (un gestor documental) hecho por Martín Pérez donde utilizando algunas de las tecnologías del momento creó el servidor y el cliente ambos en Java.

Ya desde el principio comentó que lo que le faltaba al proyecto era que el repositorio de documentos (y palabras claves y categorías y relaciones entre documentos y...) fuera navegable vía web, y hoy he leido con agrado que esto ya es una realidad.

Gracias a Daniel Latorre esto ya es posible y para demostrarlo han publicado la propia web del proyecto con jlibrary, y han creado una área para que se pueda probar y jugar, la podeis encontrar en: demo.jlibrary.org Y Para acceder al repositorio de documentos podéis hacerlo con el navegador o bien con el cliente java ;-) 

En la propia web de la demo podéis leer las características tècnicas de la máquina y de la aplicación

Podéis leer la noticia en ambos blogs:

Pensamientos ágiles: http://brigomp.blogspot.com/2008/01/jlibrary-web-disponible.html

Arragonán: http://www.danilat.com/weblog/2008/01/23/jlibrary-web-beta/

 

miércoles
ene232008

Pequeño plugin de ItsNat para Netbeans

Geertjan ha publicado en su blog un mini plugin para Netbeans que permite crear proyectos web nuevos de ItsNat en el IDE de Sun. El plugin básicamente te agrega a ItsNat en la lista frameworks soportados cuando creas un nuevo proyecto y agrega las dependencias necesarias y crea el esqueleto básico usado por ItsNat.

El artículo también es un buen recurso para aprender a progamar módulos para Netbeans con los nuevos recursos disponibles en la versión 6.

martes
ene222008

Publicado LAMEOnJ v1.0. Java MP3 API basada en LAME

LAME es probablemente el mejor codificador MP3 que existe (LAME también incluye un decodificador). Los binarios de LAME tienen dos partes:

1. Un ejecutable: "lame.exe" en Windows, "lame" en Unixes
2. Una librería dinámica/objeto compartido: lame_enc.dll en Windows, libmp3lame.so en Linux (y otros Unixes) y libmp3lame.dylib en Mac OS X

LAMEOnJ es una API 100% Java que permite acceder a la API estándar de LAME en Windows, Linux y Mac OS X x86. La API estándar ha sido completamente mapeada desde Java (más de 150 métodos) y las estructuras nativas son reflejadas como clases Java.

El acceso a las librerías nativas de LAME se realiza a través de JNIEasy.

La API de LAMEOnJ tiene dos niveles o versiones:

1. Una API totálmente simétrica a la API C. El estilo de programación en Java es prácticamente idéntico a hacerlo en C.

2. Una API orienta a objetos: interfases y clases Java encapsulando las tareas más aburridas de la programación C en una API más sencilla y robusta. Aportando métodos para codificar de forma directa en MP3 archivos WAV o streams WAV/LPCM.

LAMEOnJ también mapea la API BladeEnc. Esta API es antigua y sólo es soportada por la versión Windows de LAME (lame_enc.dll).

LAMEOnJ está licenciada como LGPL y albergada en SourceForge.

 

martes
ene222008

Publicado JNIEasy v1.2 añadiendo soporte de Mac OS X

JNIEasy es una librería Java que permite acceder a librerías nativas (DLLs/shared objects/dynamic libraries) programando 100% en Java.

El enfoque llamado Java Native Objects consiste en sincronizar objetos Java con el mundo nativo, por ejemplo un objeto Java puede ser mapeado a un objeto C++ (o una estructura o una unión). Cuando un atributo desde Java es leído/modificado lo es también la versión nativa y viceversa, cuando un método Java es llamado es automáticamente llamado la versión C++ y también es posible desde C/C++ llamar a métodos Java sin usar JNI obteniendo "punteros a funciones Java" desde C/C++. Los objetos Java son POJOs en donde se consiguen mapear los tipos básicos Java tal y como enteros, reales, String y arrays como enteros, reales, cadenas y arrays nativos.

Con la inclusión de Mac OS X 10.4 (Tiger) x86 y el ya existente soporte de Windows y Linux x86 se consigue cubrir cerca del 100% del mercado de ordenadores.

Cambios introducidos en esta versión:

* Soporte de Mac OS X 10.4 (Tiger) y superiores.
* El archivo Ant de ejemplo es ahora mucho más sencillo y verdaderamente multiplataforma, no es necesario ahora ajustar la propiedad basePath en /conf/conf.properties
* El tamaño de JNIEasy.dll y libJNIEasy.so (Linux) ha sido drásticamente reducido.
* Añadidos los métodos JNIEasy.getFeature/setFeature/hasFeature
* Ahora es posible declarar programáticamente la localización (directorio) del archivo con la licencia llamando a JNIEasy.setFeature(String,Object) con "jnieasy.license.dir" como nombre y el path como valor (antes de llamar a JNIEasy.load())
* Eliminada la dependencia de InnowhereUtil.jae y los jars de Xerces (xercesImpl.jar and xml-apis.jar). Ya no son necesarios.
* Eliminada la dependencia de InnowhereException y InnowhereXMLException, ahora JNIEasyException deriva directamente de RuntimeException
* Los métodos Java mapeando métodos nativos ahora pueden ser declarados como "native" sin cuerpo. Un error normal del linker java nos indica que la clase no ha sido "enhanced".
* Añadido el atributo opcional "params" en las declaraciones en XML de métodos y constructores para especificar el método/constructor concreto cuando no es necesaria una configuración de "layout" nativo de los parámetros. Reduce drásticamente el número de elementos XML necesarios. Los XML de los ejemplos han sido actualizados usando esta nueva sintaxis más compacta cuando es posible.
* Solucionado el error: NativeTransaction.setSynchronization no hace nada

LAMEOnJ ha sido actualizado con JNIEasy 1.2, ahora puede acceder al famoso encoder (y decoder) LAME en Windows,Linux y Mac OS X.

 JNIEasy es gratuito con fines sin ánimo de lucro. Es posible descargarse una licencia de 5 días que puede renovarse de nuevo sin necesidad de registrarse o dar dato alguno.


¿Qué librerías nativas que faltan en Java sería conveniente acceder desde Java?

martes
ene222008

JEE sobre Amazon EC2

Como todos los desarrolladores Java sabemos, una de las limitantes para construir aplicaciones web sobre Java es encontrar un buen servicio de hosting a un precio razonable. Por otro lado, desde hace unos años Amazon ofrece EC2 (Elastic Computing Cloud), un sistema virtual de hosting sobre la nube (si no sabes sobre cloud computing revisa este artículo de la Wikipedia) de Amazon on demand, esto es que utiliza un sistema de replicación de servidores basado en imágenes (similar al usado por ejemplo en VMWare) que permite replicar un servidor muy fácilmente para escalar aplicaciones.

Amazon EC2 es muy usado sobre todo en starups ya que así las empresas no se tienen que preocupar por el mantenimiento de los servidores y están respaldadas por una infraestructura que les permitirá escalar en cualquier momento.

Desde hace un tiempo tenía la duda de qué también funcionaba este modelo para aplicaciones Java y este artículo de Charles Humble de InfoQ responde a mi pregunta. Amazon ofrece 3 distintos tipos de configuraciones y uno puede combinarlas para por ejemplo tener en una instancia el RDBMS y en otra un servidor de aplicaciones. Como mencioné el uso de un sistema de imágenes hace más fácil la configuración y por ejemplo ya existen imágenes para Gigaspaces XPA y Tomcat.

Lo interesante es que los precios se ajustan al uso y requisitos que necesites, en el artículo mencionan que una instalación Extra Large (15 GB de RAM, 8 procesadores, 1690 GB para almacenamiento, plataforma de 64-bit )  con un uso de 24 horas, 7 días a la semana tendría un precio de USD$7000 al año. En mi opinión es un precio muy competitivo.

Por otro lado, existe incluso un framework para Groovy que permite desplegar tus aplicaciones JEE directo a Amazon EC2 (supongo que no sería complicado un plugin para maven o una tarea de ant que tomen este framework y automatizen la tarea).

En conclusión, para startups e incluso para empresas más consolidadas, Amazon EC2 se ve como una alternativa muy viable para el hosting de aplicaciones JEE.. ¿alguna experiencia utilizando este servicio?