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
Sábado, Abril 11, 2009
NetBeans 6.7, el próximo release del NetBeans IDE: Tip 1 (Ergonomic)
Luego del exitoso lanzamiento por parte de NetBeans.org de la versión 6.5 y 6.5.1 (versión mejorada del 6.5) de su IDE, vino el anuncio lanzamiento de la versión 6.7 del mismo. Esta versión aún no alcanza su etapa final, sin embargo, esta llena de cambios y mejoras. Hoy hablaré de una de ellas, disponible a partir de Netbeans 6.7 Milestone 2; defininda por el mismo NetBeans Team como “Ergonomic”, ya que permite al IDE acomodarse a las necesidades del desarrollador, cargando solamente los módulos que el/ella necesite.
Cuando por ejemplo instalamos la versión “All” o completa del IDE y vamos a revisar los plugins y y módulos disponibles (Tools->Plugins->Installed), veremos (y sin motivo para alarmarnos…) que muchos de los módulos del IDE están desactivados, y prácticamente estan activos los que pertenecen a la parte base del IDE, como lo muestra la imagen:

Lista de plugins para NetBeans 6.7M3
Los módulos no activos, se activarán según lo requiera el usuario. Por ejemplo, si vamos al wizard para crear una nueva aplicación web, cuando intentamos crear dicho proyecto, en la segunda ventana del asistente, aparecerá un mensaje como este:

Activándose...
Esta característica de acivar módulos por demanda, un poco extraña, inicialmente, busca evidentemente aliviar un poco la carga de trabajo del IDE, pues solo trabaja con las clases que necesita, evitando utilizar carcaterísticas que quizás nunca utilicemos (C++, por ejemplo…).
Cabe aclarar que una vez estos módulos se activan no se vuelven a desactivar, a menos que el usuario así lo indique. Una vez más gracias a todos por leer mis posts, hace un año y unos pocos días que me mudé a wordpress y van casi 20K visitas, simplemente gracias!!! :-)
Nota: para aquellos que se estén preguntando por qué saltaron de 6.5 a 6.7, la razón es tan sencilla como curiosa; no querían que se asociara al IDE con el número 6.6…6, jejej, veanlo aquí ;-)
Miércoles, Febrero 25, 2009
Haciendo debug de Javascript en Netbeans 6.5
Entre las múltiples características que brinda el IDE Netbeans 6.5, una de las más llamativas y quizás poco explotadas es el debugger para Javascript. A continuación mostraré como se puede hacer este debug en un ejemplo sencillo.
- Crear una aplicación Web, colocándole el nombre deseado (WebApplication1?) y escogemos el framework a utilizar en este casodeberá ser Visual Web JavaServerFaces(Luego explicaré por qué).
- Agregamos al proyecto un archivo de javascript. Vamos a File->New File. En la sección Other, seleccionamos JavaScript File. Le colocamos como nombre script.
- En vista de diseño de la pagina principal, vamos a la ventana Palette, buscamos una sección que dice Advanced, ahí seleccionamos script y lo arrastramos a la página.
- Sin cambiarnos de la vista de diseño vamos a la ventana Navigator, en la cual buscamos el objeto script que acabamos de agregar.
- Luego de haberlo encontrado y seleccionado, vamos a la ventana de Properties, donde editamos la propiedad url. Al hacer click en el boton [...] nos lleva a una especie de selector de archivos. Debe aparecer en los candidatos el archivo JavaScript que acabamos de crear; script.js. Lo seleccionamos y damos click en OK. Hasta acá se han ejecutado los pasos necesarion para poder utilizar en la página, las funciones de JavaScript que se creen en el archivo script.js
- Abrimos el archivo llamado script.js y pegamos el sgte código
- Arrastramos un botón a la página principal. Editamos sus propiedades, seleccionando el botón y luego haciendo click en la ventana Properties. En la opción onClick, escribimos alerta(“Hola mundo de debugger “)
- Si ejecutamos de una vez la aplicación, seguro saldrá un botón, al que si le damos click dirá Hola mundo de debugger 90. Sin embargo, aún no tenemos debugger sobre el JavaScript.
- Hacemos click derecho sobre el nodo del proyecto y luego en Properties. En la categoría debug, seleccionamos el que dice JavaScript. Luego seleccionamos el browser (recomiendo de lejos Firefox, he tenido malos ratos con el debugger en IE)
- A continuación vamos al archivo JavaScript, llamado script.js y seleccionamos cualquiera de las filas donde deseamos que el debugger se detenga. Aparecerá el cuadro rojo en la linea como en el código java normal, es decir un breakpoint. Ahora si le damos ejecutar a la aplicación pero con debugger. Aparece un mensaje, confirmando lo que habiamos seleccionado antes. Podemos incluso indicarle en la parte inferior que no queremos ver ese mensaje de nuevo. Esta configuración se puede cambiar en cualquier momento en las propiedades del proyecto editadas en el paso anterior.
- La primera vez, se instalará un plugin para que Firefox soporte el debug de la aplicación. Será necesario reiniciar el navegador.
- Luego de un par de minutos, se instala el plugin y podemos hacer debug del código escrito en JavaScript.

Vista de Navigator
function alerta(msj){
var uno=1;
uno+=89;
alert(msj+uno);
}

Confirmacion JavaScript1

Instalación de plugin para firefox

Debugger en NetBeans IDE 6.5
Por alguna razón, cuando el programa llega a un breakponit y estas en el navegador, no salta a NetBeans. Hay que ir manualmente y hacer click en el IDE, para ver el programa. Los controles para avanzar son idénticos al debugger normal. Por último quiero decir que la razón por la que escogí Woodstock, sobre IceFaces es simplemente porque IceFaces no tiene un equivalente para el componente script, añadido en el paso 3.
Como vemos este debugger es una nueva ayuda para entender el funcionamiento de código JavaScript en nuestras aplicaciones web.
Una última observación es que no es recomendable que naveguemos mientras está arriba el debugger en modo javascript. La razón es que páginas con javascript (casi todas) tendrán comportamientos extraños.
Domingo, Febrero 1, 2009
5 Plugins sencillos pero muy útiles para Netbeans 6.5
Desde hace casi un año, hago parte de una comunidad que (en sus ratos libres) prueba y revisa los plugins que constantemente son creados para NetBeans por la misma comunidad, con el fin de que, si son aprobados, dichos plugins estén disponibles directamente a través del Update Center de NetBeans. Durante todo este tiempo hemos revisado una gran cantidad de plugins. Algunos muy buenos, otros no tanto. A continuación listo 5 plugins que personalmente me han llamado la atención por lo sencillos que son de utilizar y por la gran utilidad que representan. El orden es aleatorio, todos son realmente buenos:
Permite seleccionar codigo fuente de nuestras clases, y copiarlo con el formato HTML, es decir que podemos copiar fragmentos desde el editor de NetBeans directamente a sitios como foros, blogs, etc, y se reflejará exactamente el formato (tamaño, color, tipo de letra).

Special copy paste
Luego pegamos directamente en cualquier blog, foro, etc.
/**
* @param args the command line arguments
*/
public static void main(String[] args)throws IOException {
// TODO code application logic here
File backup=new File("backsup.bak");
}
Si eres de los que les gusta tener todo en un mismo sitio, este plugin te encantará. Utiliza clases propias de Java (nada de utilizar Acrobat por debajo, o algo por el estilo…) para poder leer algún pdf, que te saque de apuros mientras programas.
Retomando aquello de copiar y pegar, este plugin guarda un histórico de varias copiadas que hallamos realizado con anterioridad, incluso despues de cerrar el IDE y apagar el equipo! Luego de instalarlo se puede configurar el numero de históricos que guarde (no he probado cual es exactamente el máximo :P) y además el tamaño de la fuente.

Copy paste history 1
Cuando deseamos ver el histórico en el editor, simplemente presionamos Altv + V, y despliega una lista con las opciones guardadas.

Copy and paste history 2
Permite configurar el IDE, para que guarde automáticamente los archivos con que estamos trabajando, a un determinado intervalo de tiempo.

Autosave module
Podemos minimizar NetBeans y convertirlo en un icono más, que se ubica en la barra de tareas.

System tray
Netbeans, ha dejado de ser un IDE más en la lista, para convertirse en una gran comunidad, en la que todos aportamos y recibimos, contribuyendo al crecimiento de este gran proyecto.
Stumble It!