Java Enterprise

J2EE, MVC, JSF, Struts, Hibernate, Spring, EJB's, Ant.

Servlet tuning

Jejeje ps ando ocioso y me puse a ver que onda con el tuning en los servlets y ps (nolo sabia y espero sea de utilidad) encontre cosas muy curiosas y que ps disminuyen el tiempo de ejecucion del servlet bastante!

Escenario... pintar una tabla con 40000 filas(un simple for jaja :P)

jsp
[code]
<%--
Document : index
Created on : 30/12/2008, 12:49:37 AM
Author : jali
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

JSP Page

/**
* Envia a lapagina solicitada
*/
function ir(valor) {
if(valor==1)
document.formEnvio.action="servlet/HeavyLoader";
if(valor==2)
document.formEnvio.action="servlet/LightLoader";
document.formEnvio.submit();
}

Introduccion a ZK

Bueno pues esta es una guia rapida pa crear aplicaciones RIA con un framework que ando analizando pa un proyecto je.

1) pagina oficial, aqui encontraran el lugar para descargarlo y documentacion al respecto
2) Ir al sitio de downloads y descargan los jars.
3) Agregan a su proyecto /lib/*.jar, /lib/ext/*.jar y /lib/zkforge/*-jar
4)Teniendo esto, agregamos las siguientes lineas a nuestro web.xml

[code]

Used to clean up when a session is destroyed
ZK Session Cleaner
org.zkoss.zk.ui.http.HttpSessionListener

ZK loader for ZUML pages
zkLoader
org.zkoss.zk.ui.http.DHtmlLayoutServlet

update-uri /zkau

1

zkLoader
*.zul

Tapestry 5.0.18 - Final Release

El viernes 12 de diciembre salió al fin la versión estable para producción de Tapestry 5. Voy a actualizar mis aplicaciones a la 5.0.18 y espero que ya no haya cambios de la 5.0.17; las notas de la nueva versión solamente indican dos correcciones y ningún cambio importante. La verdad es que ya se veía listo para producción desde hace como dos versiones.

Sito de Tapestry

San WAS este año yo te pido...

Hoy 12 de diciembre... dia de la virgen morena... ya me tiene asoleado el was xD
Version 6.0.1
Servidor : HP con Unix
# procesadores : 4
De entrada... instalan el was 6.1(java 5)
levanto mi aplicacion.... usuario... password..
LOGIN listo!!!

telnet... $ top...
Madres!!!!!!! 340% de procesamiento :(
Llamadas de los gerentes, del subdirector de area... DEL DIRECTOR DE AREA!!!!
"Que paso? No hay sistema. Se liberaba ayer" xD

Historia del "se liberaba ayer
Proyecto XXXXXX
Tiempo de desarrollo: LLeva 4 años(al fin liberado por su servilleta xD)

Desarrolladores: 10
Ingenieros(jefes de los desarrolladores): 3
Gerentes: 3

Codigo:.... asi lo dejamos jajaja. Un ascoooo! acopladisimo, a mas no poder. Modificas un query y casi casi modificaba tambien el CSS jajaja.
LLamada del Gerente de Desarrollo:
"Alejandro?"
Si, que paso?
"Te necesito en un proyecto con prioridad de liberacion. Estaras ahí 3 semanas"(Llevo 1 año xD)
Ok, cuando me necesitan.
"ahora mismo, llevamos tu maquina hoy mismo a donde esta el equipo de desarrollo para que te presenten, te den un a introduccion y comiences. Esto por que acaba de renunciar un desarrollador"
Ok

Actualizando de Tapestry 5.0.15 a versiones más nuevas

Recientemente tuve algunos problemas actualizando una aplicación que utilizaba Tapestry 5.0.15 a 5.0.17 y tuve que buscar bastante para encontrar los problemas porque no están muy bien documentados algunos cambios, así que decidí publicar esta información aquí:

Lo más importante es que los campos de sus clases de páginas que anoten con  , no pueden tener un valor por default, ni pueden tener un método getter o setter. Si necesitan implementar uno de los dos métodos, van a tener que implementar ambos y quitar la anotación  . Si tienen un valor default, se lo deben asignar en algún otro lugar (un método anotado con   o hacer el getter que verifique si ya tiene algun valor y asignárselo en caso de que no, vigilando que si el valor puede ser fijado a nulo por el usuario, no hay que volver a ponerle nada, etc).

Abuso de recursos en aplicaciones web y otros horrores

Les dejo esta anécdota a los programadores que visitan javamexico.com en busca de respuestas para ciertos problemas básicos y que a veces se ofuscan buscando algo muy concreto y pierden de vista el diseño general de su aplicación. La moraleja: si tienes un problema que parece algo difícil de resolver y/o la solución es muy tediosa de implementar, lo más probable es que alguien ya lo haya hecho antes. Y probablemente hay algún proyecto de software libre que contiene ya la manera de solucionar tu problema de manera sencilla. El principio DRY: Don't Repeat Yourself (en contraste con el síndrome NIH, Not Invented Here, que es tan común en muchas casas consultoras donde prefieren inventar el hilo negro en cada proyecto en vez de utilizar soluciones externas).
Hace poco me tomé un proyecto que originalmente tenía otra persona y al revisar su código me encontré varios horrores... un pequeño sitio web que en cada JSP tenía código Java para abrir una conexión a la base de datos, pero desde encontrar el   y pedir  , hasta cerrarla en el  .

Netbeans6.5 Release Candidate2

Ya salió a la luz la rc2 de netbeans 6.5

Entre las características más sobresalientes que incluye son desarrollo web, empresarial, escritorio, aplicaciones móviles, php, javascript, java, C/C++ , Editor UML, soporte para bases de datos, SOA, Rest, Profiler, soporte para SCM, Tomcat/Glassfish por default, Ruby y Groovy, soporte robusto para php, debugging de javascript para firefox e internet explorer (con sugerencias de compatiblidad entre navegadores), soporte para jquery, prototype y otras librerías js. Esta versión también incluye muchas mejoras en el editor de java y ruby on rails, desarrollo C/C++. En la parte java se incluye soporte y autocompletado para hibernate, spring, importador de proyectos eclipse, y algo llamado compile on save (Lo copiaron de eclipse y consiste en compilar al momento de guardar las clases para simular "Live class reloading" osea ver los cambios en caliente sin reiniciar manualmente el servidor). Esta release candidate incluye mejoras a la versión beta y muchas muchas características no incluidas aquí .... todo en un mismo paquetito con la opción de descargarlo en español

Modificación de código con Javassist

Recientemente tuve contacto con esta librería, que permite hacer cosas bastante interesantes. El objetivo central de la misma es permitir la manipulación de de clases de Java, directamente sobre los binarios, en tiempo de ejecución.
Dentro de su funcionalidad está la capacidad de leer y modificar las anotaciones que tiene un método o clase, siempre y cuando hayan sido definidas con Retention.CLASS o Retention.RUNTIME, es decir, anotaciones que se quedan en la clase compilada pero son ignoradas por la JVM al momento de utilizar la clase, o bien anotaciones que se quedan en la clase y son visibles en tiempo de ejecución.
Lo interesante es que se pueden ver las anotaciones y otras propiedades de una clase y sus métodos, antes de cargarla a la JVM, esto porque se lee el archivo   directamente y se interpreta, e incluso se puede modificar. Por ejemplo, se pueden agregar anotaciones a una clase que no las tenía.
Incluso parece ser que se pueden modificar métodos, agregando código al principio o al final del mismo; crear clases al vuelo que heredan de clases existentes.

Desarrollo aplicaciones WEB

Hola buenas tardes soy nuevo en esta comunidad, desarrollo aplicaciones java pero SWING, estoy por comenzar con aplicaciones Web me podrian dar una breve introducción o links para algun manual.

Celebrando 10 años de Netbeans

Ah! que rápido se pasa el tiempo,... como se dice por allí, "parece que fue ayer.." total que ya es el cumpleaños número 10 de Netbeans.

En la página del proyecto de Netbeans se hace una invitación para que se junte la comunidad y celebre este importante acontecimiento, a la vez que se reconozca a la gente y a los proyectos que han hecho posible el éxito de esta gran herramienta.

Al momento de publicar esta nota se encuentra disponible la versión 6.1 de la cual puedo apreciar tres características importantes, desde mi punto de vista, claro.

El soporte para JavaScript, El soporte y la integración por defecto con el Framework de Spring y El soporte y la integración con MySQL.

En fin, pues no me queda más que hacer la invitación para que prueben y evaluén esta herramienta si es que aún no la conocen.


Sale y vale
Byte

Distribuir contenido