Noooo! Windows Vista, nooo!

Holas!!
Aqui va un poco de mala experiencia y mala suerte:

Mi polola se compró un equipo Compaq nuevecito. Se veía muy bonito, pués traía gráficos NVidia, aunque integrados. Sabía que tenía Vista, pero como nunca he tratado con él no le dije nada. Yo pense:"mmmm ... Como va a ser tan malo, si total, es para uso de casa, normal". Pues grave error. Su hermano, al tratar de conectar una simple pendrive, que cualquier distro de Linux, WinXP o 2K podría detectar, no fue capaz, casi me fuí de espaldas :-D Na' que hacer. Lo que también me impresiono que para todo te pide buscar una solución en linea. Antes, por lo menos, traía un centro de soporte que te permitía descartar si tu problema fue que no conectaste un cable o algo asi :-P Yo se perfectamente que el mundo esta globalizado con internet, pero, y si no tengo internet, o creo que es muy inseguro y no quiero tener internet.


Parece que se les paso la mano con modificar Windows, van a tener que empezar a rediseñar driver como locos para Windows Vista. Y menos mal que no traía disquetera, por que yo creo que eso es otro lío :-D. Así que si compran un equipo, ojala sea peladito, asi le instalan el SO que mas les guste, o por ultimo, Windows XP o Windows 2000.

Hey, para los escepticos, aqui va esto:

NEWS
Micorsoft lo reconoce

Saludosos!!!

Se termina el año!!


Porfin!!! Aprobé todo en mi universidad!!! (Siii, también aprobé Matemática Aplicada), pero ahora comienza el verdadero trabajo, montando el servidor de la comunidad Java Chile con openSolaris, cosa que me da mucho gusto, instalar openSolaris en los nuevos equipos del laboratorio Linux(Yieaa, van a tener booteo dual Linux/openSolaris y Windows solo virtualizado) y documentar todo lo de LDAP en un super TWiki. Espero terminar estas tareas antes de que cierren la U :-D Demas!! Eso es todo por hoy, cambio y fuera!!
Imagen: (r)Derechos reservados a comunidad Java Chile

Un buen juego


Holas!!

Para pasar los ratos de ocio les recomiendo este buen juego, se llama Treuolous y tiene la trama de aliens contra humanos. No es tan avanzado como AVP, peroresulta entretenido, sobre todo porque puedes construir tu base con torres te autodefenza. Lo pueden descargar aquí. Tambien dejo aquí algunas imagenes para quen se entucianmen. Ahh y por su puesto, esta disponible para GNU/Linux y Windows(al parecer hay un port para openSolaris), ya que esta basado en el motor del Quake 3. Esto le entrega un gran rendimiento, sea cual sea la tarjeta gráfica. Tambien como datos os dejo un link muy bueno: nada mas ni nada menos que un sitio dedicado a los Juegos Libres, pensando principalmente en Linux.

Saludos y disfrútenlo!!

(openSolaris en ZFS + Ubuntu + ArchLinux) in my Laptop

Saludos amigos:

Aqui voy a mostrar como le hice para tener mi openSolaris en sobre ZFS. Es una tarea un poco compleja de mantener, sobre todo porque el instalador oficial no soporta ZFS ni es posible actualizar el sistema. Pero para los que queremos un buen rendimiento y tener lo ultimo de lo ultimo, va muy bien.

Paso -1

Tener instalado nuestros otros sistemas operativos en particiones logicas y dejar un espacio minimo al principio de unos 20~30 GBytes. En mi caso tengo, una particion extendida y en ella una particion ext2 para el /boot de mi Ubuntu, una ReiserFS para mi / de Ubuntu, luego una swap, y finalmente otro ReiserFS para ArchLinux. Tambien, para los que quieran intercambiar cosas entre todos los OSs recomiendo crear antes una particion vfat PRIMARIA, ya que Solaris solo lee particiones primarias y solo puede leer y escribir sobre tipos vfat. Luego creen sus particiones de Linux.
OTRA COSA IMPORTANTE: Creen su cargador de arrnaque en las particiones y no en MBR, ya que asi cada OS manejara automaticamente las lineas de Kernel para cada grub. Sin embargo, pueden usar el grub de openSolaris, ya que es plenamente compatible con Linux, pero mas dificil de mantener cuando actualizemos los kernels :-P.

Paso 0

Instalar openSolaris. Os recomiendo los ultimos builds (svn>75) que trane buen soporte para Xen. Cuando instalen, procuren crear una particion lo suficiente mente grande para despues clonar nuestra instalacion a ZFS, y logicamente al definir las slices, solo ocupar la mitad del espacio o menos y solo usar un punto de montaje(solo root, / y swap). Es recomendable crear inmediatamente la slice que sera posteriormente nuestra pool para ZFS, asignandole un punto de montaje no usado por el sistema (/zfsroot, por ejemplo)

Paso 0,9

Si no definieron la particion con el resto del espacio, como lo hice yo :-(, no se preocupen, ahora vamos a asignar el espacio libre a una slice. Para esto, como root, tecleamos 'format'. Seleccionamos el numero de nuestro disco duro para luego ingresar el comando 'partition'. Dentro de esta seccion podemos definir los slices. Colocamos 'print' para ver los slices ocupados y disponible, asi como las dimensiones en cilindros. Luego, modificamos una slices sin asignar tecleando el nuemro de la slice. Luego ingresamos que va a ser 'alternates', aceptamos lo predeterminado en permisos. Cuando nos pregunte el cilindro de inicio, colocamos ell numero siguiente de cilindro ocupado por nuestra particion y como 'size' el ultimo numero de cilindro menos uno. Luego ponemos 'label', y aceptamos escribir los cambios. Aqui esta lo que hice yo:

partition> p
Current partition table (unnamed):
Total disk cylinders available: 3112 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 3 - 1405 10.75GB (1403/0/0) 22539195
1 swap wu 1406 - 1578 1.33GB (173/0/0) 2779245
2 backup wm 0 - 3111 23.84GB (3112/0/0) 49994280
3 alternates wm 1579 - 3014 11.00GB (1436/0/0) 23069340
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 - 0 7.84MB (1/0/0) 16065
9 alternates wu 1 - 2 15.69MB (2/0/0) 32130

partition> help
Expecting one of the following: (abbreviations ok):
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit

partition> modify
Cannot modify disk partitions while it has mounted partitions.

partition> 3
Part Tag Flag Cylinders Size Blocks
3 alternates wm 1579 - 3014 11.00GB (1436/0/0) 23069340

Enter partition id tag[alternates]:
Enter partition permission flags[wm]:
Enter new starting cyl[1579]:
Enter partition size[23069340b, 1436c, 3014e, 11264.33mb, 11.00gb]: 3015c
`3015c' is out of range
Enter partition size[23069340b, 1436c, 3014e, 11264.33mb, 11.00gb]: 3014c
`3014c' is out of range
Enter partition size[23069340b, 1436c, 3014e, 11264.33mb, 11.00gb]: 3112e
End cylinder 3112 is beyond max cylinder 3111
Enter partition size[23069340b, 1436c, 3014e, 11264.33mb, 11.00gb]: 3111e
partition>
partition>
partition> print
Current partition table (unnamed):
Total disk cylinders available: 3112 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 3 - 1405 10.75GB (1403/0/0) 22539195
1 swap wu 1406 - 1578 1.33GB (173/0/0) 2779245
2 backup wm 0 - 3111 23.84GB (3112/0/0) 49994280
3 alternates wm 1579 - 3111 11.74GB (1533/0/0) 24627645
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 - 0 7.84MB (1/0/0) 16065
9 alternates wu 1 - 2 15.69MB (2/0/0) 32130

partition> help
Expecting one of the following: (abbreviations ok):
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit

partition> label
Ready to label disk, continue? yes

Luego de esto ya tenemos lista nuestra slice para la picina de ZFS.

Paso 1

Desmontar y eliminar del archivo /etc/vfstab la entrada de punto de montaje para la particion reservada en la instalacion. Si no lo habiamos hecho, solo hay que crear un nuevo conjunto de almacenamoento con el comando:

zpool create rootpool c0d0sX, donde X es la slice definida anteriormente.

Si la slice la definimos en el proceso de instalacion, lo que hay que hacer es desmontarla y añadir el parametro -f para forzar la creacion, a pesar de que exista un sistema de archivos.

Paso 2

Crear el sistema de archivos ZFS para nuestro root con el comando:

zfs create rootpool/rootfs

, asignamos un punto de montaje generico:

zfs set mountpoint=legacy rootpool/rootfs

, lo montamos:

mkdir /zfsroot
mount -F zfs rootpool/rootfs /zfsroot

y lo agregamos a nuestro vfstab:

echo rootpool/rootfs - /zfsroot zfs – yes - >> /etc/vfstab

Paso 3

Hacer un vlocado de nuestro root en UFS a nuestro nuevo ZFS:

# cd /zfsroot/
# ufsdump 0f - / | ufsrestore -rf -
DUMP: Fecha de este volcado de nivel 0: 17 de noviembre de 2007 13:45:38 CLST
DUMP: Fecha del último volcado de nivel 0: el periodo
DUMP: Volcando /dev/rdsk/c0d0s0 (darkmovile:/) en salida estándar.
DUMP: Reasignación (Paso I) [archivos normales]
DUMP: Reasignación (Paso II) [directorios]
DUMP: Escribiendo registros de 32 Kilobytes
DUMP: 9832500 bloques calculados (4801,03MB).
DUMP: Volcando (Paso III) [directorios]
DUMP: Volcando (Paso IV) [archivos normales]
DUMP: 47,07% terminado, realizado en 0:11
DUMP: 98,60% terminado, realizado en 0:00
./export/home/ramoran/.mozilla/firefox/0n404u09.default/prefs.js: no se ha encontrado en el volumen
DUMP: 9833598 bloques (4801,56MB) en 1 volumen a 4020 KB/seg
DUMP: EL VOLCADO HA FINALIZADO

NOTA: Existe otro metodo, ocupando find, pero ese medoto no crea los archivos en /dev ni /devices, por lo que este es mas practico.

Paso 4

Actualizar nuestros zpool.cache en el ramdisk:

echo etc/zfs/zpool.cache >> /zfsroot/boot/solaris/filelist.ramdisk

, ajustar el sistema de archivos de nuestro conjunto de almacenamiento para el cual debe arrancar:

zpool set bootfs=rootpool/rootfs rootpool

NOTA: Este parametro se puede ajustar a nivel de grub tambien.

y actualizar el archivo de arranque:

/usr/sbin/bootadm update-archive -R /zfsroot

Paso 5

Ajustar nuestro nuevo grub y menu.lst y agregarlo al punto de montaje legacy:

mkdir -p /rootpool/boot/grub
cp /zfsroot/boot/grub/menu.lst /rootpool/boot/grub
cd /rootpool/boot/grub/
echo 'title Solaris ZFS' >> menu.lst
# Corregido!!!
echo 'kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS' >> menu.lst
echo 'module$ /platform/i86pc/$ISADIR/boot_archive' >> menu.lst

y ajustamos el nuevo punto de monje de root:

grep -v 'rootpool/rootfs' /etc/vfstab | awk '$3 == "/" { printf "rootpool/rootfs\t-\t/\tzfs\t-\tno\t-\n" } ; $3 != "/" { print $0 }' > /zfsroot/etc/vfstab

Paso 6

Instalar nuestro nuevo grub en el disco:

installgrub /zfsroot/boot/grub/stage1 /zfsroot/boot/grub/stage2 /dev/rdsk/c0d0sX

Donde X es la slice de nuestro ZFS root. Con esto estaríamos listo y deberíamos poder arrancar con ZFS

Pasos a seguir

Posteriormente podemos seguir editando nuestro grub, así como eliminar la slice UFS y agregarla a nuestro conjunto de almacenamiento.

Eso es todo amigos. Espero que os resulte. Mucha suerte. Ahora voy a ver si funciono :-P, si no, voy a tener que corregir este post. Byte!

CONFIRMADO: Funciono, asi que adelante amigos, prueben ZFS ya.




Mi ACER Aspire 5050

Holas!!

Escribo este post porque mucha gente me ha preguntado como lo he hecho con mi notebook. Actualmente cuenta con lo siguientes sistemas operativos:

  • Solaris 11 Nevada b76 en ZFS
  • Ubuntu 7.10 64bits en ReiserFS
  • ArchLinux 32bits en ReiserFS

Una partición de Fat32 para intercambio de datos entre todos los SOs.
Me ha costado echar a andar algunos componentes, de hecho, todavía me cuesta mucho, sobre todo con la red inalámbrica pero en general todo funciona bien en Linux. Ahora describo todos los problemas que tuve y como los soluciones:

Gráficos en ATI Radeon Xpress 1100

Este chipset es una GPU integrada, que ocupa el mismo Turion64 para procesar gráficas. El driver ATI oficial lo soporta sin problemas y el driver "ati" de xorg lo soporta sin aceleración, al igual que el driver gratuito "radeon". Lo que no he logrado hacer andar es la salida de TV o SuperVideo (tengo que buscar mas información sobre eso). En solaris no he tenido problemas, solo que sin aceleración 3D, e igual puedo usar la salida VGA. En Ubuntu mi salvación ha sido Envi, un proyecto de Alberto Milone, que me ha permitido instalar el driver 8.42.3permitiendo sacar 100 frames mas que con el driver anterior y mucha mejor estabilidad. El utilizar el driver propietario inhabilita la posibilidad de suspensión e hibernación del equipo, pero se puede solucionar usando algunos quirks, de lo que comentare mas adelante. En ArchLinux, nada que decir, hasta pude ehchar andar Compiz Fusion con AIGLX, ya que este driver, al igual que el que instale con Envi en Ubuntu, trae incorporada la extensión composite, permitiendo integrar graficas 3D en el escritorio. En general muy buen rendimiento la tarjeta en linux, aprox. 1800 fps con glxgears.

Wireless

Compre este equipo porque tenia integrada una tarjeta Artheros, pero para mi sorpresa, era tan nueva que los chicos de madwifi todavía no le dan soporte. En todo caso están trabajando en ello. Por mientras es posible ocupara usando el driver oficial que proporciona ACER con el famoso ndiswrapper. Para los que no sepan, este programa emula en windows un kernel de WindowsNT permitiendo emular nuestro driver wireless. Se han encontrado muchos problemas justo con este modelo de tarjeta wireless, pero que en la versión actual, la 1.49 han sido solucionados, tanto el problema de la mac 00:00:00:00:00:00 que me pasaba a mi en Ubuntu64, el kernel panic en Fedora y el bloqueo por un BUG CPU0 que sucede en cualquier distribución, pero esto tiene mucho que ver con la BIOS, de lo cual hago un comentario al final.
En Solaris no tengo wireless, ya que el ndiswrapper es muy experimental y se bloquea el sistema. En Ubuntu 64 bits y en ArchLinux no he tenido dramas, ya que estas versiones que tengo instaladas vienen con ndiswrapper 1.49.

Sonido

La Intel HDA funciona sin problemas en ambos linux. En solaris chicharrea un poco, pero igual suena :-P Es mucho pedir para un SO de servidores.

WebCam

Cuando tuve instalado Debian, no pude echar a andar la webcam y tampoco quise martirizarme tratando de investigar tanto, ya que en Ubuntu64 funciona de maravilla, salvo porque solo me funciona con Ekiga, pero este es un gran programa. En ArchLinux todavía estoy tratándose de echarla a andar. Mi lsusb es el siguiente:

Bus 003 Device 002: ID 064e:a100 Suyin Corp. -Webcam
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 003: ID 046d:c50a Logitech, Inc. - Mouse Inalambrico
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000

Los modulos en mi Ubuntu son los siguientes:

ramoran@darkmovile:~$ lsmod | grep video
video 21140 0
uvcvideo 52228 1
compat_ioctl32 11136 1 uvcvideo
videodev 31360 2 uvcvideo
v4l1_compat 15364 2 uvcvideo,videodev
v4l2_common 21888 3 uvcvideo,compat_ioctl32,videodev
usbcore 161584 6 ndiswrapper,uvcvideo,usbhid,ehci_hcd,ohci_hcd

Usando el ekiga de Solaris prende la luz de la WebCam pero ekiga solo muestra un cuadrado verde. Hay que investigar mas sobre ello.

Lector de Tarjetas

El lector de tarjetas se puede ocupar cargando un modulo llamado "yenta", que a partir del kernel 2.6.22 viene integrado, por lo que puedo ocupar mi lector de tarjeta en ambos linux, pero no en Solaris, ya que no hay modulo :-P

Modem

La verdad es que no me he interesado en echarlo a andar. Lo haré cuando tenga un tiempo libre.

ACPI

El PowerNow!, escalado de frecuencia funciona bien en ambos Linux, pero algunas otras características hay que ponerlas a mano. Para acceso via procfs de el control de brillo y encendido de la wireless hay un modulo muy interesante en GoogleCode que permite hacer esto. También me entere que hay paquetes para Ubuntu 32 y 64 bits.

Características

Modelo : Aspire 5050
Procesador : AMD Turion 64bits MK-38 2200 Mhz 512 Kb Cache L2
BIOS : v1.3303
Graficos : ATI Radeon Xpress 1100
Disco Duro : Hitachi "80" Gb XD

Ojala estos datos sirvan de algo. Saludos!!

openSolaris - El SO mas avanzado del planeta!!

Esto no es por que deje mi libertad de lado, solo quiero ser objetivo, pues yo he instalado Solaris 10 y openSolaris, y la verdad, lo que muestran las presentaciones son verdad. Es alucinante crear una maquina virtual con tu mismo SO con solo unas cuantas lineas, u obtener información directa del kernel y poder programar respuestas en un lenguaje parecido a C y con un mínimo de impacto en el sistema, es algo inimaginable para mi, al menos hasta que no lo vi con mis propios ojos.
La instalación, desde versiones, no ha cambiado mucho, considerando que este UNIX es muy diferente a Linux, y nuevo para los entornos de escritorio, por lo que no se le puede pedir mas. Lo que encontré bueno es que ahora ocupa GRUB como gestor de arranque, permitiéndome poner ahí mismo las instalaciones de mis Linuxs.
Lo malo de openSolaris es que no es para un PC de escritorio, asiq ue cuando lo instalen, no se hagan iluciones con que van a tener un super escritorio 3D como con Beryl o Compiz, pero cuando lo cargen con maquinas virtuales verán su real rendimiento, ya que es como lo mismo tener 2, 3 o 4 maquinas virtuales corriendo. Tienen que tener mínimo 400 Mb para instalar openSolaris, aunque se recomienda 512+256Mb (Yo tengo 512 y va bien). También es recomendable una placa madre decente y una tarjeta aceleradora si quieren instalar el escritorio 3D de Java, LookingGlass, que compite a la par con Beryl (Mi NVidia MX-4000 me funciona a la perfeccion, no es muy rapida, pero funciona bien).
Proximamente podre links muy interesante sobre openSolaris, y un PDF en español que encontre muy genial sobre este SO creado por Sun, donde muestra como saborear cada una de las avanzadas características de openSolaris. Por mientras, les dejo el source : www.opensolaris.org
Notese que pueden pedir que les manden los DVDs de Solaris a la casa o bajarlos ;-)
Saludos!!!

Abajo MSN Messenger!!! Arriba Pidgin!! aMSN!!!

Bueno, el protocolo de MSN Messenger, y hay que reconocerlo, muy poco practico para la gente de Windows, a menos que te guste andar mandando imágenes entre medio de los textos, y es mas, mandar imágenes, en ves de texto.
Pero en vista de la necesidad social, y de que la mayoría ocupa MSN Messenger, hay que innovar, y el software libre no se queda atrás, ni yo tampoco. Pidgin y Alvaro's Messenger son alternativas practicas para los amantes del buen software y de un mundo libre. El primero, corresponde al ex-mensajero multiprotocolo conocido como GAIM, pero sigue siendo múltiprotocolo, es decir, puedes tener más de una cuenta abierta al mismo tiempo, y no solo de MSN Messeger, sino también de Yahoo! Messenger, ICQ, IRC, GTalk, y muchos otros protocolos. En lo personal, lo encuentro muy bueno y sencillo, ideal para la casa, estudio y oficina. Si quieres monear con cámaras web, textos animados y otras tonteritas, puedes ocupar Alvaro's Messenger, que trae un soporte muy completo para el protocolo de MSN Messenger.
Pidgin me ha dejado muy sorprendido al usarlo en Linux y en Windows, y no solo yo, sino también a la gente a la que es lo he mostrado. Pero para mi desgracia, todavía no consigo compilarlo para Solaris x86 :-(
Otra cosa a recomendar de GTalk( Ahora con un revolucionario Google Talk Gadget) y Yahoo! Messenger, como alternativas más libres que Windows Live Messenger ;-)
Saludos!!!

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!!!!

Google y Extensiones para Firefox

Bueno, todos sabemos lo bueno que es Firefox (los que lo usamos a diario) y que podemos anexarle pequeños programas para mejorarlo, como un corrector ortográfico, manejador avanzado de descargas, RSS, herramientas de desarrollo WEB y muchas otras utilidades. Ahora google saco, a fines del año pasado, unas extensiones para Firefox nuevas, las cuales son:
  • Google Browser Sync: Que permite sincronizar nuestra cuenta google remota todo el contenido de nuestro navegador, como las paginas visitadas, cookies, contraseñas guardadas, y las paginas que visitaste por ultima vez, permitiendo que, al instalar la extensión, podemos recuperar todos estos datos y continuar navegando como en casa, sin perder el hilo de nuestra navegación.
  • Blogger Web Commnents: Permite hacer comentarios sobre la Web que estamos visitando, y ver comentarios de otras personas.
A parte de estas extensiones, tenemos la Barra Google, del motor de búsqueda, la extensión de Notebook (la encuentro genial), que permite realizar anotaciones importantes y se graban en tu cuenta google para que no se te olviden y finalmente, la extensión para enviar SMS, pero solo para números de USA :-(

Bueno lectores, ojala esto aumente mas en Uds. la Googlemania. Hasta el próximo post. Byte!!

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