Buscar
Social
Ofertas laborales ES
lunes
mar052007

Humor - ¿Sabes lo qué es un EJB?

Genial video sobre un profesor intentanto explicar uno de los conceptos de JEE.
lunes
mar052007

JSON vs XML

Arun Gupta ha escrito una entrada en su weblog en la que, además de recoger un montón de enlaces a documentación sobre JSON y herramientas para trabajar con este formato, compara XML y JSON. Desde su punto de vista, las ventajas de JSON son que es más simple; es un mejor formato para intercambiar datos (mientras que XML es mejor para intercambiar documentos); su procesamiento por parte de los ordenadores es rápido; se necesitan librerías muy pequeñas para trabajar con él (siendo posible incluso procesarlo sin librería); dada su naturaleza es ideal para entornos Ajax, y ya existen parsers para este formato en más de 20 lenguajes de programación.



Sus desventajas son que es un formato más reciente y con menos soporte a nivel de herramientas que XML; es complicado de entender para los seres humanos; no posee el equivalente a [CDATA[]] (por lo que no puede emplearse para, por ejemplo, transportar imágenes o sonidos); no permite describir interfaces gráficas; y no es extensible.



En general, JSON es un formato más limitado que XML y para el cual existe menos soporte dado que es más reciente. Pero se adapta mejor que XML a ciertas aplicaciones en las cuales probablemente se está empleando XML porque cuando se crearon no había nada mejor o por culpa de la fiebre de "emplear XML para todo".



¿Cuál es vuestra opinión sobre este post? ¿En qué escenarios creéis que se debe emplear JSON y en qué escenarios se debe emplear XML?
domingo
mar042007

Liberado Alfresco 2.0

Alfresco es un gestor de contenidos (aunque quizás sería más correcto llamarlo gestor de documentos) desarrollado sobre Java y, en su segunda versión, distribuido bajo licencia GPL (antes se distribuía bajo MPL). Su característica más diferenciadora respecto a otros gestores de contenido es la posibilidad de acceder a los documentos mediante un interface similar a la del explorador de Windows donde podemos copiar, mover y borrar archivos que se encuentran dentro de un conjunto de directorios. También cuenta con una interfaz web que permite añadir meta-información a los documentos.



La principal novedad de la segunda versión, además del cambio de licencia, es que expone sus mecanismos de búsqueda a través de OpenSearch.



¿Hay usuarios de este framework por aquí? ¿cuáles son vuestras impresiones?
domingo
mar042007

Herramienta gratuita para gestión de empresas de servicios

Autentia, los creadores del Web Adictosaltrabajo.com, han Liberado como bajo licencia GPL el software que han construido para la gestión de su propia empresa. Está construida con la última tecnología Java(Spring, JSF, Hibernate, Maven, Subversion, etc.)



Podeis obtener el producto, video-documentación y más información en: http://tntconcept.sourceforge.net/



Seguro que es muy útil para empresas de servicios, profesionales independientes y departamentos de desarrolladores en empresas.



viernes
mar022007

Rendimiento y el uso de String

No es un tema nuevo en absoluto, pero no está mal recordarlo.

Seguramente todos usamos extensivamente el operador + o += con objetos String, no haya nada malo en ello salvo que sean usadas en bucles repetidas veces. En esas ocasiones el uso de StringBuffer es menos bonito pero con mucho mayor rendimiento.



Haced la prueba comparando el tiempo de ejecución entre:





long start = System.currentTimeMillis();

String str = "";

for(int i = 0; i < 10000; i++)

str += i;

System.out.println(System.currentTimeMillis() - start);



start = System.currentTimeMillis();

StringBuffer strb = new StringBuffer();

for(int i = 0; i < 10000; i++)

strb.append( i );

System.out.println(System.currentTimeMillis() - start);







La segunda opción es *miles* de veces más rápida.



La razón es porque el + y el += suponen la creación de al menos un objeto StringBuffer y la conversión de éste en un nuevo objeto String resultante de la expresión, es decir dos objetos como mínimo por iteración que además son mandados inmediatamente al garbage collector por no hablar de la perdida del objeto String previamente asignado al asignar el resultado de la expresión.