StarWars Day!!!

Hola !!!

Un día como hoy, hace 30 años atrás estrenaron la Guerra de las galaxias [yo ni nacia ;-( ], y por este motivo y mi relación con Java, les muestro una pic interesante ;-) Saludos!!!

Copyright de las fotos a sus respectivos autores, así como el logotipo de Java, a Sun Microsystems Inc.
La idea fue mía, y hecha en OpenOffice.org Draw ;-)

Javadocs y Netbeans 5.5

Hola nuevamente!!!


Aqui voy a mostrar las ventajas que tiene usar NetBeans con Javadocs, las cuales son muchas. Pero primero, vamos a explicar lo que es Javadocs.

Javadocs

Es una herramienta que nos provee el SDK de Java para generar la documentacion de nuestras ropias clases, de manera rapide y efectiva. Lo que que hace javadocs es basicamente tomar los comentarios marcados de manera especifica y los enlaza, generando una pagina en formato HTML con todos los comentarios, dependencias y parametros de clases, atributos y metodos que se encuentren en el codigo. Al ejecutar java docs sobre un codigo bien comentado, quedara al mismo estilo que la documentacion de la API de Java.

Comentarios, al puro estilo Javadocs

Los comentario que procesa Javadocs se estructuran así:

/**
* Este comentario sera procesado por Javadocs
* @etiqueta [dato_opcional] Etiqueta procesada por Javadocs
*
*/
// Aqui el codigo que corresponde el comentario de arriba

Lo anterior, y como es la idea de Javadocs, es que el código fuente este muy enlazado a los comentarios, cosa de que la documentación sea clara y comprensible para quien la lee. TambiénJavadocs procesa etiquetas, y de acuerdo a ellas, y su contenido, genera informacion mas precisa. No es obligatorio ponerlas, pero si se quiere buena documentación, si lo son.

Javadocs con NetBeans

¿Que tiene de bueno? Muchas cosas, es tan simple como 2 clicks para generar toda la documentacion, sin contar los asistentes que nos ayudan a comentar bien nuestro codigo y nos avisan en caso de estar incompletos. Los principales objetos de Javados en NetBenas son:

Auto comment... : Es un asistente que analiza todas las clases, subclases, atributos y metodos, verificando que esten bien comentados, asi como permitirnos agregar comentarios facilmente. Lo encontramos en en menu 'Tools' -> 'Auto comment'. Tambien podemos desplegar esta herramienta haciendo click con el boton secundario en un archivo .java, seleccionando el manu 'Tools' y luego 'Auto comment'.

Generate Javadocs for Proyect : Genera la ayuda javadocs para todas las clases de nuestro proyecto. Podemos hacer que la genere en el menu 'Build'->'Generate Javadocs for [proyecto]' o bien, desplegando el menú contextual en el nombre el proyecto y clickear en 'Generate Javadocs for proyect'.


También, dentro del proyecto, al examinar el código fuente, encontraremos en la ventana de propiedades una clausula que nos permitirá insertar comentarios Javadocs a gusto, así como etiquetas, dependiendo de donde se encuentre el cursos del editor de código.

Así al colocar el cursos en el cuerpo de un método de una clase, con permitirá documentar ese método especifico. Si nos colocamos fuera de un método o atributo, pero dentro de la clase, podremos documentar la clase en si.


Espero, nuevamente sea de su agrado esto y que tenga mucha utilidad. Good Bytes!!

Paquetes (Librerias) en Java y los Jars

Fuentes:

  • http://www.lab.dit.upm.es/~lprg/material/apuntes/packages/packages.htm
  • http://javabasico.osmosislatina.com/curso/progbasico/genpack.htm
  • http://javabasico.osmosislatina.com/curso/progbasico/usopack.htm
  • http://javabasico.osmosislatina.com/curso/progbasico/jars.htm
Saludos!!!

Ahora, vista de las mismas necesidades de conocimiento, voy a mostrar como trabajar con los paquetes de Java o packages.
Un paquete en Java es lo que su nombre lo indica, un paquete o conjunto de clases, lógicamente, que tienen cosas en común. Lógicamente un programado puede agruparlas con o sin criterio, pero lo ideal es que se dediquen a funciones especificas. También los paquetes definen una jerarquía de directorios, que permiten igualmente agrupas las clases, cosa de desplegar los archivos mas ordenadamente.
También, cuando necesitamos librerías de java, igualmente estamos llamando a una clase especifica o a todo un paquete. Por ejemplo, cuando ponemos esto:

import System.io.*;

estamos importando todas las clases del paquete System.io. Ahora, si hacemos esto:

import org.usach.abo.ABO;

Estamos importando la clase ABO del paquete org.usach.abo.

Para definir un paquete solo tenemos que incluir antes que los paquetes a importar, la definición del paquete al que pertenece la clase, de la forma siguiente:

package org.ruta.del.paquete;

lo que implica que el paquete tiene que estar en la ruta:

org/ruta/del/paquete

o en windows, suponiendo que el proyecto fue creado en c:\mi_proyecto\

c:\mi_proyecto\org\ruta\del\paquete\

En ese directorio tenemos que crear nuestra clase con el identificador de package. Si queremos compilar o ejecutar algo, solo tenemos que ubicarnos en el directorio del proyecto y poner:

java org.ruta.del.paquete.MiClase
javac org.ruta.del.paquete.MiClase.java

El asume estomáticamente la ruta hacia la clase o conjunto de clases.

Los famosos JARs

Los JAR o archivos con extensión .jar, corresponden a archivos ZIP, que contienen un conjunto de clases organizadas en paquetes. Esto resulta muy útil cuando tenemos una gran cantidad de clases, lo que implica una gran cantidad de archivos, por lo que empaquetarlas en un JAR resulta practico al momento de la distribución de nuestro software o despliegue.
Para crear un JAR de nuestros paquetes, solo tenemos que ubicarnos en la raiz de los paquetes y llamar al ejecutable jar, que viene includo en el SDK de Java, asi:

jar cvf mipaquete.jar *
y con esto obtendremos todas las clases y paquetes en un solo y practico archivo JAR.Asi mismo, para extraer el contenido de un .jar solo hay que hacer:

jar xvf mipaquete.jar

y recrea la estructura del paquete que teníamos cuando empaquetamos.

JARs y Netbeans 5.5

Al trabajar con NetBeans 5.5 tambien podemos decirle que nos genere un archivo JAR para distribuir nuestro proyecto. Para hacer esto, hacemos click secundario en el proyecto y vamos a "Properties" y luego a la seccion "Packaging". Deberian ver algo como esto:El primer cuadro nos muestra cual ba a ser el nombre del archvo JAR a generar. El segundo muestra que archivos va a excluir al empaquetar, que como predeterminado excluye los fuentes. Tambien, nos da la opcion de comprimir el archivo JAR, usando comprension ZIP.

Extra Bonus!!

Para Windows:

Les recomiendo que al momento de trabajar con estas utilidades, ya sea al trabajar con JARs o compilar y ejecutar usando la liea de comandos, agreguen en su variable de entorno el directorio en donde tienen instalado su SDK, al directoio "bin". Así, si yo tengo instalado mi SDK en:
c:\Archivos de programas\J2SDK_\

Nota: si tienen la ultima(a la fecha de escribir esto), es 1.6.0 y es 1.
En su variable PATH, deberían tener agregado:

c:\Archivos de programas\J2SDK_\bin

Verifiquenlo abrindo la consola(Menu Inicio->Ejecutar->'cmd') y tecleando:

echo %PATH%

y debería estar en su ruta.
Espero que os sea de mucha utilidad. Salu2!!!

Tolkien y su literatura

"Lenta fue la mano hasta el pecho, y con igual lentitud levantó la redoma de Galadriel. Por un instante titiló, débil como una estrella que lucha al despertar en medio de las densas brumas de la tierra; luego, a medida que crecía, y la esperanza volvía al corazón de Frodo, empezó a arder, hasta transformarse en una llama plateada, un corazón diminuto de luz deslumbradora, como si Eärendil hubiese descendido en persona desde los altos senderos del crepúsculo llevando en la frente el último Silmaril.. La oscuridad retrocedió y la redoma pareció brillar en el centro de un globo de cristal etéreo y la mano que la sostenía centelleó con un fuego blanco[...]
-Aiya Eärendil Elennion Ancalima!-"
Las Dos Torres, J.R.Tolkien
No se si sea la forma increíble en que Tolkien junta metáforas, o si es como mezcla historias con historias. Los Silmarils, según lo que relata el Silmarillion, fueron las gemas hechas por los Elfos mas bellas y mas codiciadas por todos. Ni siquiera los Enanos, con la habilidad que tienen para trabajar los minerales de la tierra, el Diamante, el Oro y el Mithradir, pudieron concebir o imaginar una gema tan hermosa. Sus inicios fueron en la luz de los arboles de Valinor, llamados Telperion y Laurelin, creados para medir el tiempo en Arda, mediante ciclos de luminosidad de cada uno, e iluminar la tierra de los elfos, hasta que fueran heridos por Melkor y murieran, obligando a Yavanna a crean con las ultimas flores de estos arboles la luna y el sol, y dar fin a la edad de los arboles, el inicio de la edad del sol y la aparición de los hombres. Estas inigualables gemas, robadas por Melkor, trajo muchos conflictos, pues fue forjada con magia de días de antaño, tiempo en que había comunicación de la Tierra Media con la de los Valar. Los Valares en un inicio compusieron la melodía que perdura en nuestros día, conduciendo nuestras vidas hacia un destino soñado por nuestro creador-Esto seria si lo comparamos con el Cristianismo que vivía el autor de estos libros-siendo un Valar nuestro creador, y su melodía nuestra vida.
Si alguien se entusiasma con lo mencionado por mi, al extremo de querer leer El Señor de los Anillos, El Hobbit o El Silmarillion, por favor, leanlos y quedaran maravillados.

Trabajando en J2SE con SVN y NetBeans 5.5

Hola a todos!! :-P

Ahora, por la suma necesidad de conocimiento en la comunidad, me he visto forzado a seguir trabajando y escribiendo. Explicare la manera de trabajar con NetBeans 5.5 en SVN y algunas buenas practicas con Java SE 1.6 o Java 6.

¿Que es Java SE 1.6?

Es absurdo que yo lo explique, teniendo a un experto, ¿cierto?, asi que vean lo siguiente, para luego hacer algunas aclaraciones:
http://es.wikipedia.org/wiki/Java_SE

Ahora, para que no nos confundamos, Java 1.6 es lo mismo que Java 6 y que J2SE 1.6.

Simples Recomendaciones al Trabajar con Java

Algunas practicas recomendables para trabajar con el codigo es usar la nomenclatura de CaMeLLo:
  • Los nombre de clases se comienzan con mayuscula y continuan con minuscula hasta el inicio de otra palabra, en donde se inicia con mayuscuala, continuando con minuscula, y asi sucesivamente. Ejemplo: ABO, ArbolBinarioOrdenado, ABOExceptions, Clase.
  • Los nombres de atributos y metodos comienzan con minuscula y continuan asi hasta la nueva palabra, en donde se inicia con mayuscula y continua nuevamente con minuscula, y así sucesivamente. Ejemplos: definirABO, definirArbol, nuevoArbol, archivo.
Usando una nomenclatura estandar permite a los desarrolladores entenderse mejor y obtener un codigo fuente mucho mas legible. Otras recomendaciones, como el usar nombre significatibos al momento de definir clases, atributos o metodos (nombreArchivo) y no nombre tontos (nA), estan de más.

Usando SubVersioN en NetBenas 5.5

NetBeans hace de front-end para el comando svn, por lo tanto al apretar el boton de commit, por ejemplo, lo que hace es hacer un commit de lo que tenemos guardado, por lo que antes de cualquier sincronizacion que queramos hacer, SIEMPRE debemos GUARDAR TODO.
  • Show All Changes : Muestra una ventana donde podemos ver lo cambios tanto locales como remotos y hasi escoger cuales queremos y cuales no.
  • Diff All Files : Al momento de haber divergencias en archivos remotos y locales, y sobre todo, cuando se modifica por dos o mas personas el mismo archivo, conviene hacer un diff, el cual consiste en compara las diferencias entre los archivos y ver cuales se conservan y cuales no. Esta operacion del menu permite hacer un diff a todo los archivos y muestra todas las diferencias.
  • Update All Files : Descarga todos los archivos del servidor SVN, sobrescribiendo los cambios locales.
  • Commit All Files : Sube todos los archivos al servidor SVN sobreescribiendo cualquier modificacion remota.
  • Checkout : Abre el asistente para obtener los archivos de un servidor SVN. Generalmente es la operacion inicial para cargar el proeycto remoto y despues solo ir modificando algunos archivos y no todos.
  • Import to repository : Permite subir un nuevo proyecto en el servidor.
  • Update proyect with Dependences : No hare descripcion de esta opcion, pues no se usa comunmente.
  • Show changes : Muestra una ventana con un resumen de las modificacion de un objeto especifico.
  • Diff : Hace diff de un objeto especifico.
  • Update : Hace Update de un objeto especifico.
  • Commit : Efectua los cambio en un objeto especifico.
  • Export Diff Patch : Genera un diff patch o parche, que permite parchar las modificaciones de un programa, en base a sus diferencias.
  • Copy to : Copia objetos especificos a otro lugar.
  • Switch to : Permite subir o bajar de revision un objeto, de acuerdo a la historia guardada.
  • Merge to : Permite mezclar objetos de diferentes revisiones.
  • Show annotations : Muestra notas dejadas al momento de crear una revision especifica.
  • Serach History : Permite buscar en las diferentes revisiones de un objeto especifico.
  • Revert Modifications : Revierte las modificaiones de un objeto seleccionado, ya sea modificaciones locales, o de revisiones anteriores.
  • Resolve Conflicts : Asistente que permite resolver conflictos entre archivos locales y los del servidor, asi como moficicaciones entre diferentes usuarios.
  • Ignore : Premite ignorar alguna modificacion y dejarla pasar (No es muy recomendable).
La mayoria de estas opciones, y dependiendo del caso, van a estar disponibles en el submenu "subversion" en el menu contextual de los objetos del explorador de proyectos, o al hacer click secundario en los archivos, aplicando ciertas acciones a objetos especificos.
Tabien existen algunos iconos que permiten identificar cuando han abido cambios locales o en el servidor, lso cuales acompañan a los iconos en el explorador de proyectos y en el explorador de archivos.

Esperando que este escrito les haya sido de utilidad, buena suerte y a tomar Java Coffe.
PD: Disculpen la mala ortografia, pero es que es tarde y quiero dormir!!! ZZZZ!!!! Byte!

NetBenas 5.5 y SVN(Subversion)

Hola!!

Voy a explicar en sencillos pasos como trabajar con NetBeans y un repositorio de código fuente SVN o más conocido como Subversion.
Vamos a ocupar un servidor SVN gratuito, en donde alojaremos nuestro proyecto. El sitio es:
https://opensvn.csie.org/ - OpenSVN
Cuando quieran hacer un proyecto, quieran compartir código y trabajar efientemente y no tienen un servidor, ocupen este, que además les ofrece un Wiki del proyecto 'trac' para definir tickets con problemas y colaborar mejor en comunidad.
Explicando en sencillos pasos lo que hay que hacer, les doy esta 'pequeña' lista:
  1. Una ves instalado NetBeans, arranquen el Update Center, del menú Tools.
  2. Sigan el asistente e instalen el modulo de Subversion, ya sea global, si tienen privilegios o no global si tienen cuentas de usuario restringidas.
  3. Bajen e Instalen SubVersioN de su sitio oficial.
  4. Ejecuten NetBeans, vayan al menú Subversion y que tengan un feliz chekout!!!
Ahora mostrare, por razones lógicas, la manera de hacerlo paso a paso para la plataforma de Windows. Si están en otra plataforma, es tan sencillo como seguir los pasos anteriores.

  1. Instale lo necesario en NetBeans:
  2. Lo mas probable es que le pida reiniciar el IDE. Reinícielo y cierrelo. Ahora, descargue el instalador de SubVersioN aquí e instálelelo, con solo Next, Next y mas Next. No tiene que configurar nada en el instalador, solo instalarlo.
  3. Teniendo listo esto, inicie NetBeans y abra el modulo de checkout de SubVersioN, para configurar un nuevo proyecto en NetBeans.
  4. A pedido de Ivannia voy a aclarar algunos conceptos. El Repository URL es el lugar en donde tenemos nuestro repositorio remoto, y de de donde nuestro cliente SVN va a descargar los archivos de nuestro proyecto. Como en nuestro caso hemos creado una cuenta gratuita en OpenSVN, le damos el sitio del SVN seguido del nombre de nuestro proyecto. También le pasamos las credenciales necesarias para que nos de acceso. En el panel de control de OpenSVN podemos crear cuentas para que mas de un usuario pueda tener acceso, así como que permisos tiene. Si nosotros lo permitimos, podemos dar acceso anónimo a nuestro proyecto, cosa que cualquier persona pueda descargar los archivos, pero no modificarlos. Como no es nuestro caso, le colocamos nuestras credenciales.
  5. Luego, el cliente se conectara a nuestro repositorio remoto y vera que carpetas y archivos tiene. Aqui nosotros tenemos las opciones de escoger donde especificamente esta nuestro proyecto, para que NetBeans, a traves del cliente SVN haga una copia local y lo pueda abrir. Podemos colocar nuestro proyecto en el raiz de nuestro repositorio, pero no lo recomiendo, ya que los proyectos de NetBeans se guardan en carpetas, por lo que se puede confundir si tenemos nuestro proyecto directamente en la carpeta raiz del repositorio.
  6. Aquí se nos da también la opción de cargar una versión especifica de nuestro proyecto. Por defecto, bajara la ultima versión.
  7. Ya con esto, el cliente hará un checkout, es decir una copia local de los archivos del proyecto, pidiéndonos posteriormente abrirlo. Esto se hace solamente una ves, ya que después el repositorio remoto solo baja o sube los archivos que se han modificado, o tu has modificado. En caso de haber conflictos, NetBenas mostrara alertas y permitirá tomar cartas en el asunto para no dejar la escoba :-P.
  8. Si tienes algún problema, lo mas recomendable es que reinicies NetBeans y pruebes nuevamente, ya que tiene que asumir a través de la variable de entorno que tiene el ejecutable(svn.exe) disponible. Para esto, verifica haciendo click secundario en Mi PC, Propiedades, Ficha "Opciones Avanzadas" y luego en Variables de Entorno. Fíjate que la variable PATH apunte al directorios de binarios de tu instalación de SubVersioN, como se muestra en la imagen:
  9. Si no tuviste inconvenientes, podrás tener un feliz checkout y trabajar en el proyecto de NetBenas.
Espero que les sirva a todos los que lo lean. Muchos salu2!!!!

Apoyando el Software Libre, a un mundo libre! - Designed by Posicionamiento Web