Al realizar una aplicación desktop en NetBeans, nos damos cuenta que se crea un .jar con el nombre de la aplicación, pero, si utilizamos alguna libreria extra (de terceros, o un proyecto distitnto, por ejemplo), entonces NetBeans crea además una carpeta llamada “lib”. Donde residen los jar’s de dichas librerías. Algunas veces, por seguridad o comodidad he deseado empaquetar todo esto en un solo archivo .jar. Pues bien en este artículo publicado en Sun Developer Network (SDN), Robert Eckstein nos dice como hacerlo modificando el archivo build.xml de la aplicación.
Miércoles, Septiembre 2, 2009
Sábado, Agosto 8, 2009
…y ahora qué?
Es la pregunta que nos estamos haciendo muchos de los usuarios de productos de Sun, luego de que ya han pasado algunos meses desde la noticia de la compra de la compañía por parte de Oracle. Muchas dudas, muchos rumores, pero aún ningún pronunciamiento oficial por parte de alguna de las dos compañías que nos dé una verdadera luz de guía.
Por un lado los usuarios que trabajan (o trabajamos) día a día con aplicaciones open-source de Sun como NetBeans, MySQL, OpenSolaris, GlassFish, VirtualBox, etc. Muchos desarrolladores, pequeñas, medianas (e incluso grandes) empresas utilizan al menos uno, sino varios, de estos componentes, y se preguntan que suerte correrán estos productos con la llegada de Oracle: ¿desaparecerán?, ¿serán reemplazados?¿dejarán de ser “free”? En mi humilde opinión, considero que estos productos seguirán en pie por mucho tiempo, y bajo las mismas condiciones actuales. La razón es muy simple, todos ellos tienen algo en común; una comunidad open-source. Precisamente para ser open-source, un producto debe estar soportado en una comunidad que (básicamente) lo regule, desarrolle nuevas funciones y corrija “bugs”. La “comunidad” hace rato dejo de ser algo en donde todas o la mayoría de personas involucradas pertenecen a la compañía “dueña” del producto. Por ejemplo, en el caso específico de NetBeans, con un solo click puedes reportar un bug en el IDE, o en listas de correos puedes preguntar y contestar inquietudes a personas de otras ciudades y países, personas comunes y corrientes que aportan su conocimiento sin esperar nada a cambio, salvo quizás mayor conocimiento. Asimismo, existe un grupo inmenso de personas que se encarga de traducir el IDE a 10 o 20 idiomas, todos los días alguien hace un nuevo plugin con una nueva funcionalidad (un reproductor de música, un driver, compatibilidad con un nuevo framework, etc). De esa manera miles de personas NO involucradas con Sun hacen crecer al IDE de manera desinteresada, o bueno si tienen un interés: mejorar el producto. Este patrón de colaboración entre personas del común se repite en todos los demás productos open-source, lo cual considero nos garantiza su existencia por un buen tiempo.
Por otro lado, tenemos los productos licenciados como por ejemplo MySQL Enterprise que que tampoco creo que vayan a desaparecer de la noche a la mañana. Es bien sabido que muchas empresas tienden a ser renuente a cambiar por ejemplo su sistema operativo, o su motor de base de datos, etc. La razón es el temor a los traumatismos que dichas migraciones puedan generar (tiempos, costos, etc), en comparación con la poca o nula mejoría que note el usuario final, todos sabemos como son los usuarios finales, a menos que los datos se teletransporten frente a sus ojos y haya destellos de luces cósmicas, el sistema siempre será lento! ¿Un cambio de motor?¿¿Antes era Diesel??. Por eso tampoco veo en un futuro cercano a Oracle obligando a sus recien adquiridos clientes a pasarse a un nuevo motor de BD, eso sí, seguro habrán cambios en las condiciones de licenciamiento (precio, cantidad, tiempo, etc). En el mercado existen muchas personas que se dedican casi que exclusivamente a ayudar a las empresas a traducir y entender los contratos de licenciamiento de Oracle, esto refleja la complejidad de dichos contratos. Además, se rumora que Oracle aprovechará esta nueva adquisición para visitar clientes (nuevos y viejjos) y realizar auditorías, lo cual sería como excusa para replantear condiciones de licenciamiento.
Por último, a los que temen que Java desaparezca, (y es una inquietud que he oído con frecuencia…) les digo: ¿cuanto tiempo lleva desapareciendo COBOL? =P
Jueves, Abril 16, 2009
Nimbus Look & Feel
Desde el JDK 6 release 10 (jdk6u10), está disponible un nuevo Look & Feel para las aplicaciones en Java: Nimbus Look & Feel. El cual tiene una manera de funcionar muy particular y distinta a como venían funcionando los L&F anteriores.
Para invocarlo simplemente escribimos en el “Main” de nuestra aplicación:
public static void main(String[] args) {
// TODO code application logic here
for(UIManager.LookAndFeelInfo laf:UIManager.getInstalledLookAndFeels()){
if("Nimbus".equals(laf.getName()))
try {
UIManager.setLookAndFeel(laf.getClassName());
} catch (Exception ex) {
}
}
}
No es recomendable poner el L&F directamente asi:
try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Exception ex) {// Manejo de excepción... }
Por varias razones. La principal es que a partir de Java 7, el L&F Nimbus cambiará de paquete y se ubicará en javax.swing.plaf.nimbus. Muchos se preguntarán “Y por qué no lo pusieron ahi desde que lo crearon?” La respuesta es sencilla; Los paquetes java.* y javax.* no pueden ser modificados en releases menores. Por otro lado, nada nos garantiza que nuestra aplicación se vaya a ejecutar en un cliente con jdk6u10 o superior instalado.
Una de las grandes ventajas de Nimbus sobre los otros L&F’s es que este no se encuentra basado en Bitmaps, sino que todo se basa en Vectores, los cuales permiten tener mayor precisión al pintar el componente, sobretodo cuando se agrandan o reducen componentes, cuando se maximiza o restaura una aplicación.
Existe una aplicación de prueba llamada Laffy, con la cual se puede observar todos los componentes Swing, con el L&F de Nimbus. Una vez descarguen jdk6u10, o superior instalado pueden hacer click aqui para darle un vistazo a Laffy y por supuesto, el más reciente Look and Feel de Java; Nimbus. He aqui un vistazo a Laffy.

Nimbus Look & Feel
Los invito a todos a probar en sus aplicaciones este nuevo L&F, seguro sus clientes (o su jefe ;-) ) se mostrarán sorprendidos!
Jueves, Diciembre 11, 2008
Disponible “Patch 1″ para Netbeans 6.5
Ya se encuentra disponible un parche para Netbeans en el que se resuelven 62 bugs. A continuación les indicaré como descargar estas actualizaciones:
Nos dirigimos al Update Center: Tools–>Plugins. En la ficha que selecciona por defecto, “Available plugins”, le damos al boton “Reload catalog”. Esto permite que en la primera ficha, “Updates”, aparezca una nueva actualización, la cual se encarga de actualizar el Update Center, y entre otras cosas mejorará la búsqueda de nuevas actualizaciones y nos permitirá, luego ver y descargar el resto de actualizaciones. La seleccionamos y la instalamos, luego tendrás que reiniciar el IDE. Una vez vuelvas a entrar, te diriges de nuevo al Update Center, si la ficha de Updates te aparece vacia le das “Reload”, luego deben aparecer 17 nuevas actualizaciones, seleccionalas todas y sigue las instrucciones. Luego tendrás que reiniciar una vez más, para disfrutar de este parche.
Casi todos los módulos son intervenidos en esta actualización (Php, SaaS, Platform, Java, GlassFish V3, Ruby on Rails, Database, etc.) Es por esto, que realizar esta actualización es altamente recomendable. Si deseas saber la lista exacta de los bugs resueltos, visita este link.
Miércoles, Mayo 14, 2008
Centro de actualización de GlassFish
El servidor de aplicaciones, open source de Sun, desde la versión 2 (v2), proveé una herramienta gráfica de fácil manejo, para actualizar e instalar nuevos componentes a GlassFish, de manera similar a como se hace con netbeans. Para ejecutar el Centro de Actualización debemos ejecutar:
install-root/glassfish/updatecenter/bin/updatetool
En el caso de windows, por ejemplo, sería
C:\Archivos de programa\glassfish-v2ur2\updatecenter\bin\updatetool.bat
Se abre esta pantalla:

En 4 fichas diferentes, nos permite ver
- Actualizaciones al software que tenemos instalado
- El software que ya tenemos instalado
- Software nuevo que está disponible para descargar
- Preferencias
Como ven, el entorno de actualización es muy similar al de Netbeans. En las preferncias podemos añadir otros servidores desde los cuales actualizar, o programar para que se actualiza determinada fecha, o cada determinado tiempo (puede ser diario o semanal) y a determinada hora. Algo para destacar es que incluye el tamaño de la descarga, dependiendo del ancho de banda de la conexión , podemos calcular cuanto tardaremos en actualizar el servidor. Además revisa y valida por si mismo la dependencia entre paquetes, obligandonos a descargar los paquetes prerequeridos, evitando fallos en la instalación o posterior ejecución. Otra característica de mucha ayuda, son 2 iconos q marcan si el paquete que parece en la lista es nuevo y/o si al instalarlo es necesario reiniciar el servicio, cosa que en ambiente productivo puede resultar bastante molesto para el usuario final, por no decir traumático si se llega a hacer de manera inesperada.
Stumble It!