martes, 18 de diciembre de 2007

Usabilidad en la Web

Hola, muchas veces cuando desarrollamos aplicaciones web, contamos con un diseñador grafico que diseñe nuestras páginas web, estilos, etc.. y nosotros solo nos encargamos del desarrollo de las demas capas(MVC, dao, etc.), sin embargo tambien a veces nos toca desarrollar el diseño de las páginas, en dreamweaver, bluefish (en linux), html, jsp o lo que sea...
Aqui tocamos un tema sumamente importante en el desarrollo de aplicaciones web, el cual nos permite que nuestras paginas sean faciles de navegar y al mismo tiempo intuitivas para los usuarios, esto se denomina Usabilidad en la web e interfaz en internet.
La usabilidad son técnicas que ayudan a los seres humanos a realizar tareas en entornos graficos de ordenador, en nuestro caso, páginas web.
Siempre en la construcción y definición de la navegación de un sitio web tenemos que recordar que el usuario debe encontrar lo que busca de manera facil y rapida, incluso los parametros que a veces visualizamos en la barra inferior del browser nos ayudan a entender la navegación de un sitio web, existen algunas reglas para una buena usabilidad en nuestros sitios, estan son:

1.- En internet es el usuario el que manda, por lo tanto debemos tener en cuenta una excelente y facil navegacion para el, esto se consigue con una buena deficinición de navegación del sitio, un buen analisis y sobre todo conocer el negocio y pensar como usuario.

2.- En internet la calidad se basa en la rapidez y fiabilidad del sitio, se toma en cuanta más que la pagina sea rapida que bonita, fiable que moderna, sencilla que compleja y sobre todo directa.

3.- Seguridad, si en el mundo real a veces desconfiamos de algunas cosas, imaginate como se siente la gente al ingresar por la web de su banco. Debemos procurar que toda la navegación y sitio funcionen como reloj para que de esta forma los usuarios puedan confiar en el.

4.- La confianza es algo que cuesta ganar y se pierde con un mal enlace, esto quiere decir que tal y como esta la competencia en internet, no puedes perder ni un solo visitante por tener un enlace mal hecho. Es mejor salir con algo sencillo e irlo complicando poco a poco (buscar en la web extreme programing y metodologias agiles), que salir con todo y ver que es lo que pasa. Versiones 1.0 son buenas mientras lo que este puesto este bien y genere confianza. Poco a poco y con el feedback de los usuarios, podras ir complicando la pagina y sistema. Pero asegura antes de arriesgar.

5.- Simplifica, reduce, optimiza, la gente no se va a aprender tu sitio por mucho que insistas, asi que por lo menos hazlo sencillo, reutiliza todos los elementos que puedas, para que de este modo los usuarios se sientan comodos y no se pierdan cada vez que necesiten encontrar algo.

6.- Pon las conclusiones al principio, el usuario se sentira mas comodo si ve las metas al principio. De esta forma no tendra que buscar lo que necesita y perdera menos tiempo en completar su tarea. Si completa su tarea en menos tiempo se sentira comodo y quizas se dedique a explorar el sitio o quizas se lo recomiende a un amigo.

7. No hagas perder el tiempo a la gente con cosas que no necesitan, cuidado con cruzar promociones, si lo haces por lo menos hazlo con cuidado. Procura que la selección de productos a cruzar sea consecuente y no lo quieras "vender todo" en todas las paginas. Cuando el usuario avance en su navegación debes dejarle mas espacio libre. Puede ocurrir que cuando este punto de comprar algo vea una oferta que le distraiga y se pierda esa venta.

8. Buenos contenidos, escribir bien para internet es todo un arte. Pero siguiendo las reglas basicas de poner las conclusiones al principio y escribir como un 25% de lo que pondrias en un papel, se puede llegar muy lejos. Leer en pantalla cuesta mucho, por lo que, en el caso de textos para internet, reduce y simplifica todo lo que puedas.

Recuerda siempre que lo facil y simple es la mejor manera de poder satisfacer a los usuarios en la web. Otros puntos importantes para revisar son:

Ubicuidad, Visibilidad, Contenido, Estética, Fidelidad.

Esto es parte de la experiencia que tengo desarrollando web.

Dejo este enlace para seguir investigando:

http://www.dcc.uchile.cl/~rbaeza/inf/reglasweb.html

Saludos y suerte !!

martes, 11 de diciembre de 2007

xForm

Hola, hace un tiempo se dio a conocer la nueva generación de formularios web impuesto por la W3C (World Wide Web Consortium), los xForm son formularios web que agregan una caracteristica muy importante a los actuales formularios web, esta es la validación de la información y el cambio en la forma en que se construyen estos formularios web.
Estas paginas gestionan, sin interactuar con el servidor, tanto la presentación como la lógica de la interfaz de usuario y su comunicación con el servidor se restringe al intercambio de datos utilizando técnicas AJAX.
Los xForm es la nueva generación de formularios dinamicos, no solo para la web sino que tambien se convertiran en el estandar para dispositivos moviles.
En este articulo veremos un ejemplo y como se modela un xForm.

Como requisito previo es necesario tener la jdk 1.4, 5 o superior, el ide eclipse y ant. luego vamos a la siguiente url y descargamos el ajaxForms.

http://sourceforge.net/project/showfiles.php?group_id=154001

Una vez que tenemos el template de ajaxForms, lo descomprimos en un directorio, abrimos el eclipse y seteamos este ajaxForms como proyecto en el eclipse, este ajaxForms que descargamos de sourceforge viene listo para comenzar a trabajar con xForm, incluye un buid.xml para trabajar con ant, deployar y probar nuestros xForms.

Entoces, vemos que nuestro ajaxForms tiene como contenido lo siguiente:

En la raiz tenemos 3 carpetas: bin(vacio), lib(ajaxforms.jar y jaxen.jar), web(data.xml, echo.shtml y index.xform)

Más los siguientes archivos:
.classpath
.proyect
buid.properties
build.xml (para ant, recomiendo ant 1.7)
license.txt
readme

Agregamos el buid.xml al show view de ant del eclipse del costado derecho.

1.- Hacemos doble click en clean del buid, para limpiar el proyecto.

2.- Hacemos doble click en buid (default), esto generara en el proyecto una nueva carpeta de nombre build.
Si abrimos esta carpeta vemos que en su contenido se encuentran los siguientes archivos:

Una carpeta de nombre resources, y tres archivos:
data.xml
echo.shtml
index.html

Este ultimo es el formulario web que se genera a partir del index.xform de nuestra raiz del proyecto, corresponde a un html en el cual la mayoria es javascript y ajax, el archivo data.xml es la información inicial con la que se rellena el formulario y el echo.shtml es el action del formulario, vemos además que el archivo index.html generado contiene un log en la parte inferior y que al hacer save apunta al archivo echo.shtml

El archivo index.xform, corresponde a un archivo XML Schema de tipo xsd, en el cual se define el modelo del formulario, los tipos de datos para los imput, etc., es necesario identificar claramente el contenido de este tipo de archivos para poder trabajar con xForm:

En este archivo se identifican dos areas, una es el head y la otra el body.

En el head se define el modelo del formulario (diseño), la instancia de los datos que rellenan el formulario, el action o submit del formulario, y algunas validaciones, y el el body se define el cuerpo del formulario, los action de los botones, los imput, select, etc..

Dejo en ustedes esta introducción y la inquietud de poder seguir investigando esta nueva forma de implementar formularios web.

Saludos y suerte !!

lunes, 3 de diciembre de 2007

Automatix en Linux

Hola, Automatix es un programa para linux, el que trabaja de forma similar al Synaptic, automatizando la instalaciòn y eliminaciòn de softwares y paquetes, viene por defecto en algunas distribuciones de linux, y en modo simple es una interfaz grafica para el comando "apt", contra esto una de las ventajas de Synaptic es que ademas de estas funciones tambien sirve para la reparaciòn de paquetes dañados. En este articulo explicare en pocos pasos su instalacion en Debian etch.

Primero debemos fijarnos de no estar ocupando algun gestor de paquetes, como synaptic o apt.

En algunos casos la instalaciòn de programas en linux debe hacerse en modo de superusuario o root, por lo cual nos pondremos en modo root con el siguiente comando:

slack@debian:/$ su
Password: xxxxxxxx

Con el comando 'su' nos podemos cambiar de usuario en un terminal de linux, si colocamos solamente la palabra su, el sistema nos cambiara previo ingreso de la clave al usuario root, si queremos cambiarnos a otro usuario, deberemos preceder de su el usuario, por ejemplo, si queremos cambiarnos al usuario pepito debemos tipear:

slack@debian:/$ su pepito

Bueno para no perder el foco, seguire explicando la instalaciòn de automatix desde la consola linux, ya estando como root debemos tipear los siguientes comando

1.- El siguiente paso añade a nuestro repositorio source.list la url de donde debera descargar automatix

debian:/# echo "deb http://www.getautomatix.com/apt etch main" | sudo tee -a /etc/apt/sources.list

2.- Luego traeremos la key de automatix a nuestro equipo, esta key quedara en nuetro home

debian:/# wget http://www.getautomatix.com/keys/automatix2.key

3.- Importamos la Key

debian:/# gpg --import automatix2.key

4.- Agregamos la key a la instalaciòn

debian:/# gpg --export --armor E23C5FC3 | sudo apt-key add -

5.- Actualizamos nuestro apt-get

debian:/# sudo apt-get update

6.- Y finalmente instalamos Automatix

debian:/# sudo apt-get install automatix2

Con estos pasos ya deberiamos tener listo automatix para comenzar con su uso, si vemos el contenido de automatix2.key en nuestro home mostrara algo similar a esto:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP Key Server 0.9.6

mQGiBEX4li8RBADyUvBUKEuhYyVuU05DSwoYg1z+9CmaWhI7ZfMO8iD24W5JIuhP
I7d3hTTcoKCvcF4zsBMOLjqdsaleyWPfqpdhVH24uGI5AXeGpPhJxFLCpFuzi5c4
Y/lGQ3o+EtDrizT993m/KLjkvoP0csCjNpBmvuIDd82JAvPAwt1HP7PFfwCgwUMl
UV8ag4iLqDL77FnjsDrpn40D/iaN1dN5QWIbzK0d3QICH7KxYBfjCaqdH5FeskyO
SvlPOLoc/g7Af5++hWILdfHLRfyiifoZTl4PPS5JAFXiLv2lVm7XlicwhgOUQvlC
mwY98QJt5mpJ3/jHQttcYC0pgp4O5zfWczLRl7E0kycbK3/+Blq4Di0Uy/j74rSU
G8AOA/9A0VeJYh2qHAdv60J7X2jGzQEKwSWlJwegAuLUaAHfTaza42gcRqJ9KlMI
g9Ffevqo+6903y8dwhbU6mFoM/Xis7nawzybuEGuErLXjKHdjwUf9GAR0bgRSqlE
nuci5DViinZdtK7z6nTAct6LbK8gobWq3f5bx+Qxfg3887rLFrQ1QXJuYXYgR2hv
c2ggKEF1dG9tYXRpeCBUZWFtIExlYWQpIDxncmV5cm9kQGdtYWlsLmNvbT6IYAQT
EQIAIAUCRfiWLwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEMyRmjHiPF/D
x3AAoKQ5MBNV3W+IU9J/J9bMf/IIQTKxAJwPAmO+UszYTvEIQnzsDWBFaJvfPbkC
DQRF+JY6EAgAv3DaPvjJncXiDcdtF5OWj/gt01WCYt33jdw4nFUJAmWZkk/K/Bje
q4DxYfJH0oSjOiSHWmdeoEVl0twII3yTOaB3Kv1EAhX9elwIOeUea9ckC8qxtFV6
qJVCNmYhPpSWVi3i29uFbjm6syZIxQ91Ec+FLS8QP7uWT8YVBb5ORayc/r75oa0k
Mz10I/t/SyMcsJQaTOAwGl6P974on/k7Z6Y++nLa1FbhYLLB1LgwIKoNpYngGNyb
DcemK1qbDskTTylB4dNTGq8ydeCycFWWFihshg5RErYmlhVbThkYTEQmnvOdAGaO
fJ6+KHYHV2R+ORqSoCGwhTCHB3p9cEwgOwADBQgAgaNrR39kIo/kvFwTr8zyNZKr
NUyRxXdBomo9aiK79tFBXf7Df+12DtWN/X2bxcUXsWaUbxD9/v3uBiPbMvDdxS4e
G23pvZ8C3GVbwt2zNWieIWJZTb57MKd/F94fKbRx9X+xrCDZSCgtzwdoS4g5X+lT
v6/dTd9Onu5DFZXxLdOBa+ZbYGXSwzOkzOtW+80Eb/Gne6Jeg8KKgpqao8xVC1Ge
H280D8ubH5nSOnayO03Ps5j96B41c3E2TjpdLISbxrN7XjCaY9K+HNaiI5P21qpx
owYTXgfAey8Vs4w+klB08LBL5T91lj24Lq5M6WLnCNYm7TtJdgIbBRlGngMnX4hJ
BBgRAgAJBQJF+JY6AhsMAAoJEMyRmjHiPF/DcvEAnRYxdvbQXzetwPF0duFYyaBx
aRaIAJ4+xfLN+a0W5Lj4SzdRK1L9ITIvfQ==
=ez+A
-----END PGP PUBLIC KEY BLOCK-----

Este archivo solo tiene permisos de lectura para root.

Para arrancar automatix debemos ir al menù, aplicaciones-> herramientas del sistema -> Automatix,

Al arrancar automatix, primero se verifica la conexion a internet y luego abre la interfaz grafica de automatix en donde podremos chekar los programas que deseemos instalar.

IMPORTANTE: Actualmente existe automatix para debian, hace un tiempo no existia, y se podia instalar el de ubuntu, sin embargo al arrancarlo lanza una excepcion de version. la cual se puede reparar siguiendo los pasos de la siguiente url:

http://www.esdebian.org/article.php/20070823000145782

Saludos y suerte !!

miércoles, 28 de noviembre de 2007

Password de root

Hola, a veces cuando trabajamos como superusuario o root en una maquina linux, corremos peligro de modificar la clave de root y no recordarla, sin embargo existe un metodo de poder modificar esta contraseña aun encriptada.

Para eso necesitamos acceder a la maquina victima de alguna forma con los permisos para poder modificar la clave, lo podemos hacer desde un cd live o desde grub antes que botee el sistema (jjj), una vez que estamos con acceso al sistema debemos editar como root el archivo que contiene las claves, este se encuentra en /etc/shadow (Linux fedora, debian y otras distros), sin embargo esta forma de modificar la password solo es valida en fedora, ubuntu y no debian, ya que debian posee ademas un archivo oculto donde almacena las claves, siendo esta distro una de las mas seguras por sus niveles de seguridad, entonces (en fedora y ubuntu) editamos este fichero con el siguiente comando:

[root@desarrollo ~]# nano /etc/shadow

Este nos desplegara por consola el contenido del fichero que almacena las password de las cuentas de la maquina. Nos fijamos en la linea del fichero que comienza con root, este es mi fichero shadow:

root:$1$yIuxswB6$QT86TruSszlFpfJajq0RL0:13845:0:99999:7:::
bin:*:13550:0:99999:7:::
daemon:*:13550:0:99999:7:::
adm:*:13550:0:99999:7:::
lp:*:13550:0:99999:7:::
sync:*:13550:0:99999:7:::
shutdown:*:13550:0:99999:7:::
halt:*:13550:0:99999:7:::
mail:*:13550:0:99999:7:::
news:*:13550:0:99999:7:::
uucp:*:13550:0:99999:7:::
operator:*:13550:0:99999:7:::
games:*:13550:0:99999:7:::
gopher:*:13550:0:99999:7:::
ftp:*:13550:0:99999:7:::
nobody:*:13550:0:99999:7:::
rpm:!!:13550:0:99999:7:::
dbus:!!:13550:0:99999:7:::
avahi:!!:13550:0:99999:7:::
rpc:!!:13550:0:99999:7:::
mailnull:!!:13550:0:99999:7:::
smmsp:!!:13550:0:99999:7:::
nscd:!!:13550:0:99999:7:::
vcsa:!!:13550:0:99999:7:::
haldaemon:!!:13550:0:99999:7:::
rpcuser:!!:13550:0:99999:7:::
nfsnobody:!!:13550:0:99999:7:::
sshd:!!:13550:0:99999:7:::
netdump:!!:13550:0:99999:7:::
pcap:!!:13550:0:99999:7:::
xfs:!!:13550:0:99999:7:::
beaglidx:!!:13550:0:99999:7:::
ntp:!!:13550:0:99999:7:::
apache:!!:13550:0:99999:7:::
hsqldb:!!:13550:0:99999:7:::
gdm:!!:13550:0:99999:7:::
eddie:SPazu6o8RY76c:13845:0:99999:7:::
slackware:$1$XVVZPWKH$.7nfCZ2/5PNKQqjSGxhXd.:13622:0:99999:7:::
acade03:LTZr79vyOL6tE:13845:0:99999:7:::
lorena:UJz7VT.jDOS.U:13845:0:99999:7:::
postgres:!!:13572::::::
valeria:FTTFXp78Npc6E:13845:0:99999:7:::
zidboy:OYUlNA.CKxvOA:13845:0:99999:7:::
desa:$1$Pgrh1DCx$gd1Qyzqew2m/6tntaj9HD.:13787:0:99999:7:::
mysql:!!:13708::::::
csagredo:ECuYwNCZrBjU2:13845:::::13880:
jiratomcat:NNawvQXlqK5og:13845::::::

Vemos aqui que root esta en la primera linea del fichero, en sus casos debiera ser algo similar:

root:$1$yIuxswB6$QT86TruSszlFpfJajq0RL0:13845:0:99999:7:::

Tienes que borrar todo lo que haya entre los primeros y segundos dos puntos, ya que este string es la password encriptada. quedaría así:

root::13845:0:99999:7:::

Ahora podrás bootear tranquilamente y entrar como root, ya que estará sin clave. Te recomiendo que le pongas una lo antes posible con el comando passwd, ya que es un gran riesgo de seguridad dejar el sistema sin password.

¿Moralejas después de esto? Primero, comer pasas. Así no se te volverá a olvidar la clave. Segundo, ponerle clave a GRUB para que nadie pueda entrar en modo single, excepto tú.

Nota: Este artículo es para aquellos que se les olvidó la clave, no para que hackeen otros sistemas, ademas no les servira por que para eso deben saber mas de redes.

Saludos y suerte !!

Maven en Linux

Hola, para los que conocemos ant, no nos costara comprender lo que es maven, ya que maven es la evolución de ant. mejora enormemente la automatización de proyectos Java.

Maven es una herramienta para la gestión y automatización de proyectos Java. Estaba integrado dentro del proyecto Jakarta pero ahora es un proyecto de nivel superior de la Apache Software Foundation.

En la versión 1, maven se basa en un fichero XML de configuración (project.xml) y una serie de plugins, esta herramienta puede compilar el proyecto Java, ejecutar los tests unitarios, generar paquetes (jars, wars, etc..) y generar una serie de reportes. La versión 2 usa también un fichero XML de configuración llamaddo pom.xml. Su funcionalidad es parecida a Apache Ant de manera que permite compilar, ejecutar test o realizar distribuciones pero con la diferencia que trata de forma automática las dependencias del proyecto. Una de las más importantes características es su actualización en línea mediante servidores con repositorios de librerias (jar's). Maven es capaz de descargar nuevas actualizaciones de las bibliotecas de las que depende el proyecto y de igual manera subir una nueva distribución a un repositorio de versiones, dejandola al acceso de todos los usuarios, de esta forma maven alimenta el desarrollo de proyectos Java y el Open source.

Maven se ejecuta de forma nativa por la consola de Unix-Linux (debian en mi caso), tambien tiene plugin de integracion con Eclipse y Netbeans en su version 5.5. Para trabajar con maven primero debemos dirigirnos a su download en la siguiente URL: http://maven.apache.org/index.html, actualemente esta disponible la version 2.0.8, sin embargo este articulo se basara en la instalación y trabajo con maven 1.0.2, he probado con la version 1.1 y 2.0.7 y no existe mayor diferencia, en maven 1.0.2 el comando es maven y en las posteriores es mvn.

Entonces, nos descargamos la version 1.0.2 de la siguiente url, que corresponde a los archivos de Maven:
http://archive.apache.org/dist/maven/binaries/ , una vez que tengamos el archivo maven-1.0.2.tar.gz en algún directorio donde lo dejamos, debemos copiar o mover el archivo al directorio /usr/local de nuestra maquina con el siguiente comando:

slackware:/home/slack/Software# cp maven-1.0.2.tar.gz /usr/local/

* cp para copiar y mv para mover

Nos posicionamos en este directorio y descompimimos el archivo con el siguiente comando por consola:

slackware:/usr/local# tar -xzvf maven-1.0.2.tar.gz

Se generara un directorio con el nombre maven-1.0.2, en /usr/local,

Hacemos un ls -l para ver lo que contiene el directorio:

slackware:/usr/local# ls -l
total 5972
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 bin
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 etc
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 games
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 include
drwxrwsr-x 4 root staff 4096 2007-09-30 21:54 lib
lrwxrwxrwx 1 root staff 9 2007-09-15 08:40 man -> share/man
drwxr-xr-x 5 slack slack 4096 2004-12-07 08:13 maven-1.0.2
-rw-r--r-- 1 slack slack 6060686 2007-11-28 11:57 maven-1.0.2.tar.gz
drwxr-xr-x 6 slack slack 4096 2007-10-18 15:29 maven-2.0.7
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 sbin
drwxrwsr-x 13 root staff 4096 2007-10-12 17:55 share
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 src

Ya confirmado la creación de nuestro directorio maven en usr/local, debemos agregar al path de los ejecutables el nuevo comando de maven, esto es para poder ejecutar maven desde cualquier directorio de linux, ya que en ocaciones debemos ejecutar el comando desde los directorio de nuestras aplicaciones.

Entonces ingresamos la siguiente linea de comandos:

slackware:/usr/local# export PATH=/usr/local/maven-1.0.2/bin:$PATH

OJO: si ejecutamos este comando como root, solo se podra ejecutar el comando maven como root, para ejecutar el comando como un usuario, debemos asegurarmos de los permisos, usuario y grupos del directorio
maven-1.0.2. En ubuntu podemos agregar este path editando el archivo profile, que esta en /etc/profile

supongamos que tenemos dos usuarios: slackware como root y slack, para correr maven como slackware(root) podemos hacerlo de la forma que explique arriba, si queremos ejecutar maven como slack (usuario) , debemos cambiar de usuario y grupo al directorio maven y setar el path, de la siguiente forma:

slackware:/usr/local# chown -R slack maven-1.0.2/
slackware:/usr/local# chgrp -R slack maven-1.0.2/
slackware:/usr/local# ls -la
total 48
drwxrwsr-x 12 root root 4096 2007-11-27 14:01 .
drwxr-xr-x 12 root root 4096 2007-09-20 17:57 ..
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 bin
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 etc
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 games
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 include
drwxrwsr-x 4 root staff 4096 2007-09-30 21:54 lib
lrwxrwxrwx 1 root staff 9 2007-09-15 08:40 man -> share/man
drwxr-xr-x 5 slack slack 4096 2004-12-07 08:13 maven-1.0.2
drwxr-xr-x 6 slack slack 4096 2007-10-18 15:29 maven-2.0.7
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 sbin
drwxrwsr-x 13 root staff 4096 2007-10-12 17:55 share
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 src
slackware:/usr/local# su slack
slack@slackware:/usr/local$ export PATH=/usr/local/maven-1.0.2/bin:$PATH

Si todo va ok, podriamos ejecutar un maven --version para asegurarmos que todo esta correcto, de la siguiente manera:

slack@slackware:/usr/local$ maven --version
__ __
| \/ |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
|_| |_\__,_|\_/\___|_||_| v. 1.0.2

Y huala, ya tenemos maven instalado y configurado en nuestra maquina Linux (debian), ahora podremos ejecutar comandos maven para trabajar con proyectos Java. dejo algunos link de interes para conocer estos comandos.

http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

Saludos y suerte !!

martes, 27 de noviembre de 2007

Common Unix Printing System

Common Unix Printing System , CUPS, es un sistema de impresión modular para sistemas operativos de tipo Unix que permite que un computador actúe como servidor de impresión. Un computador que ejecuta CUPS actúa como un servidor que puede aceptar tareas de impresión desde otros computadores clientes, los procesa y los envía al servidor de impresión apropiado.

CUPS está compuesto por una cola de impresión con su planificador, un sistema de filtros que convierte datos para imprimir hacia formatos que la impresora conozca, y un sistema de soporte que envía los datos al dispositivo de impresión. CUPS utiliza el protocolo IPP(Internet Printing Protocol) como base para el manejo de tareas de impresión y de colas de impresión. También provee los comandos tradicionales de línea de comandos de impresión de los sistemas Unix, junto a un soporte limitado de operaciones bajo el protocolo server message block (SMB, no es samba). Los controladores de dipositivos de impresión que CUPS provee pueden ser configurados utilizando archivos de texto con formato Descripción de impresoras PostScript (PPD, PostScript Printer Description en inglés) de Adobe Systems. Existen varias interfaces de usuario para diferentes plataformas para configurar CUPS; cuenta también con una interfaz como aplicación Web. CUPS es software libre y se distribuye bajo licencia GNU.

Para acceder a CUPS lo puedes hacer desde tu browser accediendo a tu localhost:

http://localhost:631/

Esta url corresponde al servidor web de administración de impresoras de tu localhost en Linux (debian en mi caso), desde esta aplicación se puede configurar impresoras y trabajos de impresion.

Saludos y suerte !!

jueves, 15 de noviembre de 2007

Actualización de aplicaciones en Tomcat

Para un equipo de desarrollo lo más conveniente es generar versiones estables de las aplicaciones y publicarlas en un servidor de desarrollo antes de pasarlas a producción, cuando se generan mantenciones en las aplicaciones web, y es necesario pasarlas a un servidor de desarrollo, en este caso Tomcat, se deben seguir los siguientes pasos.

1.- Generar el archivo .war en el ide local, sea eclipse o netbeans.

2.- Ingresar a la maquina de desarrollo, abrir un terminal unix(consola) o el cliente ssh en windows e ingresar la siguiente linea de comando para tener acceso a la maquina de desarrollo como usuario tomcat (previamente creado), en este caso se ocupa linux y su terminal.

slackware:/home/slack# ssh tomcat@desarrollo.gruposiglo.cl

Esta instrucción solicita acceso a la maquina de desarrollo por ssh, el cual nos pedira contraseña del usuario tomcat, en caso de modificación de la contraseña del usuario tomcat, esta debera ser notificada al grupo que efectúa estas tareas.

tomcat@desarrollo.gruposiglo.cl's password: xxxxxxxx

3.- Si el acceso es correcto el login nos dejara en la siguiente ruta del servidor, debemos posicionarnos en la ruta en la cual se encuentra el servidor Tomcat con la siguiente linea de comando:

Last login: Thu Nov 15 10:07:58 2007 from slackware.groupsiglo.local
[tomcat@desarrollo ~]$ cd /home/tomcat/tomcat55/

4.- Con la precaución de que nadie este efectuando alguna tarea importante en el servicio de tomcat en desarrollo y aviso a los demás desarrolladores del grupo, debemos proceder a bajar el servicio Tomcat con la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ ./bin/shutdown.sh
Using CATALINA_BASE: /home/tomcat/tomcat55
Using CATALINA_HOME: /home/tomcat/tomcat55
Using CATALINA_TMPDIR: /home/tomcat/tomcat55/temp
Using JRE_HOME: /usr/java/jdk1.5.0_12
CompilerOracle: exclude org/apache/lucene/index/IndexReaderstop doBody


5.- Posteriormente debemos eliminar los archivos de la aplicación que queremos actualizar, por ejemplo cdding, para los cual debemos seguir los siguientes pasos, comenzamos por ingresar al directorio donde se encuentra esta aplicación (webapps) con la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ cd webapps/

Lo cual nos dejara en el directorio donde se encuentran las aplicaciones de desarrollo.

Si hacemos un ls -l, nos listara las aplicaciones del directorio, sus usuarios y grupos:

[tomcat@desarrollo webapps]$ ls -l
total 141712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 14:10 cdding
-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war


Para esta tarea recordemos que el servicio de tomcat debe estar abajo.

Posteriormente eliminamos el archivo y directorio de la aplicación que queremos actualizar (cdding de ejemplo), con los siguientes comandos:

[tomcat@desarrollo webapps]$ rm -rf cdding.war

En la linea anterior hemos eliminado el .war de la aplicación, seguidamente eliminamos el directorio con el siguiente comando:

[tomcat@desarrollo webapps]$ rm -rf cdding

Y al hacer un ls -l vemos que este archivo y directorio ya no existen:

[tomcat@desarrollo webapps]$ ls -l
total 111712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war


6.- Siempre con el servicio de tomcat abajo debemos copiar a este directorio la nueva o actualización de la aplicación (archivo .war) que queremos desplegar, para esto podemos ocupar algún navegador de archivos, como ssh client para windows o el comando scp en la consola de linux o algún navegador con soporte para sftp como konqueror en linux.

Una vez que copiamos nuevamente la aplicación (.war) a este directorio podemos hacer un ls -l para confirmar su existencia en el webapps de tomcat:

[tomcat@desarrollo webapps]$ ls -l
total 141712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war


Ya confirmada la existencia del .war en el directorio webapps de tomcat, nos debemos pocisionar el la raiz del tomcat con el siguiente comando:

[tomcat@desarrollo webapps]$ cd ..


7.- Seguidamente arrancamos nuevamente el servicio con la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ ./bin/startup.sh
Using CATALINA_BASE: /home/tomcat/tomcat55
Using CATALINA_HOME: /home/tomcat/tomcat55
Using CATALINA_TMPDIR: /home/tomcat/tomcat55/temp
Using JRE_HOME: /usr/java/jdk1.5.0_12


Si todo va bien esta acción desempaquetara el archivo .war de la aplicación generando un directorio con su nombre.

[tomcat@desarrollo webapps]$ ls -l
total 141712
drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 14:10 cdding
-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera
-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng
-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed
drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2
-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war
drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old
drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm
drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira
drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples
drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore
-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT
drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab
-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war
drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples
drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs
drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio
-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war
drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo
-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war
drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng
-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war

8.- Si queremos verificar que el servicio esta arriba, ingresamos la siguiente linea de comandos, la cual nos confirma el uso del servicio y el puerto que esta ocupando:

[tomcat@desarrollo tomcat55]$ netstat -tan | grep 8080
tcp 0 0 :::8080 :::* LISTEN

En caso contrario no mostrara nada.

Si queremos ver el log del servicio tomcat, podemos ingresar la siguiente linea de comando:

[tomcat@desarrollo tomcat55]$ tail -f logs/catalina.out

los cual nos despliega la traza del servicio y sus aplicaciones.

Toda esta tarea de mantención no debiera demorar más de 5 minutos, con la practica podemos hacer esto en unos 3 minutos, recordemos que se debe efectuar en el menor tiempo posible para no interrumpir otras acciones del grupo de desarrollo.


Saludos y Suerte !!

viernes, 2 de noviembre de 2007

Asignar memoria a java para eclipse

Hola, a veces desarrollando aplicaciones java en eclipse, debugueando y ocupando gran cantidad de memoria en nuestro sistema, etc... eclipse nos manda un OutOfMemoryExceptions, warning o error de overlock de memoria, y se nos complica seguir trabajando hasta reiniciar eclipse.

Por lo tanto la solución es asignar más memoria a la Java virtual machine sobre la que corre eclipse, y para eso tenemos que parametrizar los parámetros con los que se incializa la Java Virtual Machine. existen algunos metodos para setear esa cantidad de memoria, el más simple y efectivo es pasar estos parametros de memoria en el lanzador de eplipse en el escritorio del linux, en mi caso es debian, la linea del lanzador que hay que editar es:

/home/slack/programas/eclipse/eclipse

quedando:

/home/slack/programas/eclipse/eclipse -vmargs -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m

En algunas distros de Linux, cuando parametrizamos este lanzador, aparece sobre el icono de eclipse una taza de café.


Saludos y suerte !!



domingo, 28 de octubre de 2007

Actualizar Debian Etch

Cuando llevamos algún tiempo trabajando con una distribución, y nos damos cuenta que ya es tiempo de actualizar nuestro sistema operativo, tenemos varias opciones, una es con synaptic, otra el propio gestor gráfico de actualizaciones, etc. ahora vamos a ver como mantener actualizado nuestro sistema Debian Etch desde la consola. comenzamos abriendo un terminal como root y escribimos el siguiente comando:


slackware:/home/slack# aptitude update
Des:1 http://www.debian-multimedia.org etch Release.gpg [189B]
Des:2 http://ftp.de.debian.org etch Release.gpg [378B]
Des:3 http://ftp.debian.org etch Release.gpg [378B]
Des:4 http://ftp.debian.org etch Release.gpg [378B]
Des:5 http://security.debian.org etch/updates Release.gpg [189B]
Obj http://www.debian-multimedia.org etch Release
Obj http://ftp.debian.org etch Release
Obj http://ftp.de.debian.org etch Release
Obj http://security.debian.org etch/updates Release
Obj http://ftp.debian.org etch Release
Ign http://www.debian-multimedia.org etch/main Packages/DiffIndex
Ign http://ftp.de.debian.org etch/main Packages/DiffIndex
Ign http://ftp.debian.org etch/main Packages/DiffIndex
Ign http://ftp.debian.org etch/contrib Packages/DiffIndex
Ign http://security.debian.org etch/updates/main Packages/DiffIndex
Obj http://www.debian-multimedia.org etch/main Packages
Obj http://ftp.de.debian.org etch/main Packages
Ign http://ftp.debian.org etch/non-free Packages/DiffIndex
Ign http://ftp.debian.org etch/main Packages/DiffIndex
Ign http://ftp.debian.org etch/non-free Packages/DiffIndex
Ign http://security.debian.org etch/updates/contrib Packages/DiffIndex
Ign http://security.debian.org etch/updates/non-free Packages/DiffIndex
Ign http://ftp.debian.org etch/contrib Packages/DiffIndex
Obj http://ftp.debian.org etch/main Packages
Obj http://ftp.debian.org etch/contrib Packages
Obj http://security.debian.org etch/updates/main Packages
Obj http://ftp.debian.org etch/non-free Packages
Obj http://ftp.debian.org etch/main Packages
Obj http://security.debian.org etch/updates/contrib Packages
Obj http://ftp.debian.org etch/non-free Packages
Obj http://ftp.debian.org etch/contrib Packages
Obj http://security.debian.org etch/updates/non-free Packages
Descargados 5B en 2s (2B/s).
Leyendo lista de paquetes... Hecho

Una vez actualizada, ejecutamos el siguiente comando para ver si hay versiones nuevas de los paquetes de nuestro sistema:

slackware:/home/slack# aptitude upgrade
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Escribiendo información de estado extendido... Hecho
Leyendo las descripciones de las tareas... Hecho
Construir la base de datos de etiquetas... Hecho
Se actualizarán los siguientes paquetes:
file iceweasel iceweasel-gnome-support libmagic1 libmozjs0d libnspr4-0d libnss3-0d librpcsecgss3 libxul-common
libxul0d linux-headers-2.6.18-5 linux-headers-2.6.18-5-686 linux-image-2.6.18-5-686 openoffice.org
openoffice.org-base openoffice.org-calc openoffice.org-common openoffice.org-core openoffice.org-draw
openoffice.org-evolution openoffice.org-gcj openoffice.org-gnome openoffice.org-gtk openoffice.org-help-en-us
openoffice.org-help-es openoffice.org-impress openoffice.org-java-common openoffice.org-l10n-es
openoffice.org-math openoffice.org-writer openssl python-uno ttf-opensymbol w32codecs xulrunner-gnome-support
35 paquetes actualizados, 0 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 166MB de ficheros. Después de desempaquetar se liberarán 1094kB.
¿Quiere continuar? [Y/n/?] Y

Aqui vemos que respondemos "Y" a la pregunta ¿Quiere continuar?

y comienza la actualización y descarga de paquetes de la siguiente manera:

Escribiendo información de estado extendido... Hecho
Des:1 http://security.debian.org etch/updates/main linux-image-2.6.18-5-686 2.6.18.dfsg.1-13etch4 [16,3MB]
Des:2 http://www.debian-multimedia.org etch/main w32codecs 1:20071007-0.0 [14,3MB] ....


Una vez finalizado, tendremos nuestro sistema actualizado.

Este metodo resulta más rápido, otra forma es con adept, el cual nos avisa cuando existen actualizaciones disponibles, para actualizar el sistema con adept, primero debemos instalarlo de la siguiente forma:

slackware:/home/slack# aptitude install adept

En otro articulo explicare con más detalle este metodo de actualización del sistema

Saludos y suerte !!

martes, 23 de octubre de 2007

Administración de sistemas Unix con Webmin

A veces es necesario efectuar algunas configuracines en Linux o Unix en modo consola, ya sea edición de ficheros, configuración de firewall, bases de datos, tunelling, ssh, ssl, administración de usuarios, puertos, etc. por suerte existe una herramienta open source llamada Webmin que nos facilita enormemente esta tarea. Es de lo que trata este articulo.

Webmin es una aplicación de administración con interfaz web para Linux. Una de las ventajas de Webmin es que se pueden efectuar tareas basicas de administración como la gestión de usuarios y tareas más avanzadas como la gestión de servidores web, bases de datos, servidores de correos (Debian es lo recomendado para la administración de servicios de correos), para los que desarrollamos nos facilita enormemente estas tareas de administración y configuracion de servicios. La siguiente es una pequeña lista de algunas tareas que podemos realizar con Webmin:

- Crear, editar y borrar cuentas de usuarios en el sistema.
- Exportar ficheros y directorio a través de NFS
- Administrar cuotas de espacio para discos por usuarios
- Instalar y desintalar Software
- Configurar un Firewall
- Crear sitios virtuales en apache
- Administrar bases de datos Mysql y PostgreSQL
- Compartir directorios y ficheros a traves de Samba
- Configurar SSL
- Administrar y gestionar hardware, etc.

Webmin se distribuye en:

http://sourceforge.net/project/showfiles.php?group_id=17457

Y para los sistemas:

- GNU/Linux
- FreeBSD
- Sun Solaris
- HP-UX
- Mac OS X

La arquitectura de software de Webmin es modular, lo que permite ampliar su funcionalidad a traves de la instalación de nuevos modulos. Esta escrito en Perl e incluye un pequeño servidor web donde los modulos corren como CGIs, tambien es posible configurarlo para que corra en Apache.

A continuación beremos como se instala y configura webmin, paso a paso para un Debian, aunque tambien existe en paquetes rpm (red-hat, suse, mandrake), PKG (Solaris), y en formato zip y tar:

Para su instalación vamos a ocupar apt-get:

1.- slackware:/# apt-get install webmin

Si se ejecuta correctamente la instalación, estariamos listos para ingresar a la interfaz web de Webmin, esta es la url por defecto:

https://localhost:10000/

Vemos que ademas se agrega ssl al protocolo http, los cual significa que para la dministración remota de servicios la información viaja a travez de la red encriptada.

El acceso para el Login de Webmin es como superusuario o root.

Otra forma de instalación de Webmin en linux, es bajando el paquete webmin para la distribución de nuestro sistema. ya sea fedora, suse, debian, slackware, etc., y proceder normalmente con la instalacion teniendo ya el paquete en nuestro equipo, para el caso de Debian seria de la siguiente forma:

Desde la consola escribimos el comando:

slackware:/home/slack/Open-Source# dpkg -i webmin_1.370_all.deb

y luego si todo va bien debemos ingresar a:

https://localhost:10000/

Saludos y Suerte !!








jueves, 18 de octubre de 2007

Hacer un CD con autoarranque

Hace un tiempo, cuando trabaje en 3m, en más de una oportunidad tuve que generar alguna presentación o instalador que arranque automáticamente al insertar el CD en el lector, aquí les digo como:

1.- Creas un documento de texto, y pones lo siguiente:

[Autorun]
OPEN=START nombre_del_documento.extension
ICON=nombre_del_icono_que_se_vera_en_la_unidad.ico

se escribe el documento con el nombre: autorun.inf

2.- Tiene que estar todo en la raíz del CD, el archivo autorun.inf y el archivo .ico para mostrar el icono en el lector.

Arrancando un Flash:

En la raíz del CD, para arrancar automáticamente un flash (recuerden que el flash puede tener extension swf o .exe), debemos tener como minimo lo siguiente:

autorun.inf
presentacion.swf
icono.ico

Cuando se inserta el CD en el lector, por defecto se lee el archivo autorun.inf, lo cual ejecuta las ordenes OPEN, e inicia el programa pasado como parámetro y relaciona el icono con el CD

Saludos y Suerte !!

viernes, 28 de septiembre de 2007

Configurar SSL para Tomcat en Linux

Hola, muchas veces cuando trabajamos desarrollando aplicaciones Web o administrando servidores Web como Apache, Tomcat, etc.. necesitamos por requerimiento de nuestros clientes una conexión segura con certificados de seguridad (https), existen alternativas comerciales, es decir propietarias, que son pagadas y otras Open Source como openSSL. en este articulo explicare la configuración del Open Source de SSL para tomcat 5.5.20 en Linux (en windows debiera ser lo mismo, aunque en su entorno).

1.- Como prerequisito debemos tener instalado Tomcat como servidor en nuestra maquina y configurado su classpath y variables de entorno,
Es importante tener esta configuracion o variables de entorno declaradas para seguir adelante. Tomcat lo bajas de http://tomcat.apache.org/ y JSSE de http://java.sun.com/products/jsse/
una vez que bajas jsse lo descomprimes en un directorio y configuras su classpath como variable de entorno, tambien debes copiar los jar que estan en la carpeta lib del jsse (jcert.jar, jnet.jar, y jsse.jar) a tu $JAVA_HOME/jre/lib/ext , directorio donde tienes Java.

en mi caso tengo Linux Debian, tipeo el siguiente comando en la consola con gksudo para edición y para ver y editar mi ennvironment:

slackware:/# gksudo gedit /etc/environment

se abre un editor de texto con el siguiente contenido:

LANG="es_CL.UTF-8"

JAVA_HOME=/usr/lib/jvm/java-6-sun

JSSE_HOME=/home/slack/programas/jsse1.0.3_04

CATALINA_HOME=/home/slack/programas/apache-tomcat-5.5.20

TOMCAT_HOME=/home/slack/programas/apache-tomcat-5.5.20

MAVEN_HOME=/home/slack/desarrollo/atlassian-jira/maven-1.0.2

#PATH=$PATH:$MAVEN_HOME/bin

export JAVA_HOME JSSE_HOME CATALINA_HOME TOMCAT_HOME MAVEN_HOME

Vemos que tengo seteado aqui mi CATALINA_HOME que apunta al directorio donde tengo instalado tomcat, lo mismo para TOMCAT_HOME, tambien tienes que tener el JAVA_HOME y el JSSE_HOME, que contiene los jar de seguridad que necesita la jdk en mi caso la 6 de sun microsystems.

Si todo esta ok, debes crear el certificado de la key con el siguiente comando en la consola:

slackware:/#$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA

Cuando te solicite una clave debes ingresar por default "changeit" y los demas datos que te solicite la configuración.

Luego debes descomentar la configuracion del archivo de tomcat para que reconozca https y SSL, este archivo es server.xml
del directorio conf de tomcat para esto abrimos el fichero server.xml desde la consola:

slackware:/home/slack/programas/apache-tomcat-5.5.20# gksudo gedit conf/server.xml

(en windows editamos este mismo fichero con el bloc de notas)

Esta es la definición que necesitamos descomentar:

//
//

Al descomentar este tag, el servidor automaticamente reconoce el tipo de configuración de su protocolos web.
Luego editamos $JAVA_HOME/jre/lib/security/java.security Añadimos security.provider.2=com.sun.net.ssl.internal.ssl.Provider
donde estan estas definiciones, es el acomienzo del archivo.

en las ultimas versiones de java esta linea ya existe.

Ahora procedemos a importar el certificado con OpenSSL. con la siguiente linea de comandos generamos el certificado con openSSL:

slackware:/usr/lib/jvm/java-6-sun-1.6.0.02/jre/lib/security# openssl req -new -out REQ.pem -keyout KEY.pem
Generating a 1024 bit RSA private key
.......++++++
.............++++++
writing new private key to 'KEY.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

Nos solicitara nuevamente unos datos que debemos ingresar, como nombre, empresa, etc...

seguidamente verificamos esta informacion:

slackware:/usr/lib/jvm/java-6-sun-1.6.0.02/jre/lib/security# openssl req -x509 -in REQ.pem -key KEY.pem -out CERT.pem
Enter pass phrase for KEY.pem:
slackware:/usr/lib/jvm/java-6-sun-1.6.0.02/jre/lib/security# openssl req -verify -in REQ.pem
verify OK
-----BEGIN CERTIFICATE REQUEST-----
MIICADCCAWkCAQAwgZAxCzAJBgNVBAYTAmNsMREwDwYDVQQIEwhzYW50aWFnbzER
MA8GA1UEBxMIc2FudGlhZ28xDjAMBgNVBAoTBWNkbXNhMQwwCgYDVQQLEwNjZG0x
FjAUBgNVBAMTDWpvcmdlIHNhbG9tb24xJTAjBgkqhkiG9w0BCQEWFmxpbnNsYWNr
d2FyZUBnbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMeBzkd5
p4eV+fuoJv08UyXHW2pRm7U+Q1Na//6uNskASKGrvuo6gostuDBAq3UmF6trYfSI
+OXqoaJo1ZQpQC+Buaf4pqlNb2OuJbEqZ2pMMscTudn97rmC7dSYinQvUK7QpGjY
6Z3lGlyskpG9nln7KWlUNotDsZk99j8LBZwHAgMBAAGgLzAUBgkqhkiG9w0BCQIx
BxMFY2Rtc2EwFwYJKoZIhvcNAQkHMQoTCGNoYW5nZWl0MA0GCSqGSIb3DQEBBQUA
A4GBADwZJ5iKIngYxZJ4uij66AsBt3578pN6U284Va7ioevaa+008BdW0CSYKOgf
2xCiBmD3GQYvP1pplAlFBqeNhMMVGXCMbm9omwYycT6tgW/47aEXZITf/agaf2zJ
7dj3cJkXbXyJ5OEkDQ654wQV9rqFy7Udsj0b/rSt8NYwutwH
-----END CERTIFICATE REQUEST-----
slackware:/usr/lib/jvm/java-6-sun-1.6.0.02/jre/lib/security# openssl req -verify -in REQ.pem -key KEY.pem
Enter pass phrase for KEY.pem:
verify OK
-----BEGIN CERTIFICATE REQUEST-----
MIICADCCAWkCAQAwgZAxCzAJBgNVBAYTAmNsMREwDwYDVQQIEwhzYW50aWFnbzER
MA8GA1UEBxMIc2FudGlhZ28xDjAMBgNVBAoTBWNkbXNhMQwwCgYDVQQLEwNjZG0x
FjAUBgNVBAMTDWpvcmdlIHNhbG9tb24xJTAjBgkqhkiG9w0BCQEWFmxpbnNsYWNr
d2FyZUBnbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMeBzkd5
p4eV+fuoJv08UyXHW2pRm7U+Q1Na//6uNskASKGrvuo6gostuDBAq3UmF6trYfSI
+OXqoaJo1ZQpQC+Buaf4pqlNb2OuJbEqZ2pMMscTudn97rmC7dSYinQvUK7QpGjY
6Z3lGlyskpG9nln7KWlUNotDsZk99j8LBZwHAgMBAAGgLzAUBgkqhkiG9w0BCQIx
BxMFY2Rtc2EwFwYJKoZIhvcNAQkHMQoTCGNoYW5nZWl0MA0GCSqGSIb3DQEBBQUA
A4GBADwZJ5iKIngYxZJ4uij66AsBt3578pN6U284Va7ioevaa+008BdW0CSYKOgf
2xCiBmD3GQYvP1pplAlFBqeNhMMVGXCMbm9omwYycT6tgW/47aEXZITf/agaf2zJ
7dj3cJkXbXyJ5OEkDQ654wQV9rqFy7Udsj0b/rSt8NYwutwH
-----END CERTIFICATE REQUEST-----

Verificamos que la firma es correcta sobre una petición de certificado:

slackware:/usr/lib/jvm/java-6-sun-1.6.0.02/jre/lib/security# openssl req -text -in REQ.pem
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=cl, ST=santiago, L=santiago, O=cdmsa, OU=cdm, CN=jorge salomon/emailAddress=linslackware@gmail.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:c7:81:ce:47:79:a7:87:95:f9:fb:a8:26:fd:3c:
53:25:c7:5b:6a:51:9b:b5:3e:43:53:5a:ff:fe:ae:
36:c9:00:48:a1:ab:be:ea:3a:82:8b:2d:b8:30:40:
ab:75:26:17:ab:6b:61:f4:88:f8:e5:ea:a1:a2:68:
d5:94:29:40:2f:81:b9:a7:f8:a6:a9:4d:6f:63:ae:
25:b1:2a:67:6a:4c:32:c7:13:b9:d9:fd:ee:b9:82:
ed:d4:98:8a:74:2f:50:ae:d0:a4:68:d8:e9:9d:e5:
1a:5c:ac:92:91:bd:9e:59:fb:29:69:54:36:8b:43:
b1:99:3d:f6:3f:0b:05:9c:07
Exponent: 65537 (0x10001)
Attributes:
unstructuredName :cdmsa
challengePassword :changeit
Signature Algorithm: sha1WithRSAEncryption
3c:19:27:98:8a:22:78:18:c5:92:78:ba:28:fa:e8:0b:01:b7:
7e:7b:f2:93:7a:53:6f:38:55:ae:e2:a1:eb:da:6b:ed:34:f0:
17:56:d0:24:98:28:e8:1f:db:10:a2:06:60:f7:19:06:2f:3f:
5a:69:94:09:45:06:a7:8d:84:c3:15:19:70:8c:6e:6f:68:9b:
06:32:71:3e:ad:81:6f:f8:ed:a1:17:64:84:df:fd:a8:1a:7f:
6c:c9:ed:d8:f7:70:99:17:6d:7c:89:e4:e1:24:0d:0e:b9:e3:
04:15:f6:ba:85:cb:b5:1d:b2:3d:1b:fe:b4:ad:f0:d6:30:ba:
dc:07
-----BEGIN CERTIFICATE REQUEST-----
MIICADCCAWkCAQAwgZAxCzAJBgNVBAYTAmNsMREwDwYDVQQIEwhzYW50aWFnbzER
MA8GA1UEBxMIc2FudGlhZ28xDjAMBgNVBAoTBWNkbXNhMQwwCgYDVQQLEwNjZG0x
FjAUBgNVBAMTDWpvcmdlIHNhbG9tb24xJTAjBgkqhkiG9w0BCQEWFmxpbnNsYWNr
d2FyZUBnbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMeBzkd5
p4eV+fuoJv08UyXHW2pRm7U+Q1Na//6uNskASKGrvuo6gostuDBAq3UmF6trYfSI
+OXqoaJo1ZQpQC+Buaf4pqlNb2OuJbEqZ2pMMscTudn97rmC7dSYinQvUK7QpGjY
6Z3lGlyskpG9nln7KWlUNotDsZk99j8LBZwHAgMBAAGgLzAUBgkqhkiG9w0BCQIx
BxMFY2Rtc2EwFwYJKoZIhvcNAQkHMQoTCGNoYW5nZWl0MA0GCSqGSIb3DQEBBQUA
A4GBADwZJ5iKIngYxZJ4uij66AsBt3578pN6U284Va7ioevaa+008BdW0CSYKOgf
2xCiBmD3GQYvP1pplAlFBqeNhMMVGXCMbm9omwYycT6tgW/47aEXZITf/agaf2zJ
7dj3cJkXbXyJ5OEkDQ654wQV9rqFy7Udsj0b/rSt8NYwutwH
-----END CERTIFICATE REQUEST-----


Con esto ya debieramos tener configurado nuestro servidor para servir paginas seguras, ahora arrancamos tomcat:

slackware:/home/slack/programas/apache-tomcat-5.5.20# ./bin/startup.sh
Using CATALINA_BASE: /home/slack/programas/apache-tomcat-5.5.20
Using CATALINA_HOME: /home/slack/programas/apache-tomcat-5.5.20
Using CATALINA_TMPDIR: /home/slack/programas/apache-tomcat-5.5.20/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun

y vemos el siguiente log:

slackware:/home/slack/programas/apache-tomcat-5.5.20# tail -f logs/catalina.out
28-09-2007 03:53:28 PM org.apache.catalina.startup.HostConfig deployDescriptor
A28-09-2007 03:53:28 PM org.apache.catalina.realm.JAASRealm setUseContextClassLoader
INFO: Setting useContextClassLoader = false
28-09-2007 03:53:30 PM org.apache.catalina.startup.ContextConfig validateSecurityRoles
##### platform = PostgreSQL
[cdding] INFO [main] [/cdding].log(646) | Loading Spring root WebApplicationContext
28-09-2007 03:53:46 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Arrancando Coyote HTTP/1.1 en puerto http-8080
28-09-2007 03:53:46 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Arrancando Coyote HTTP/1.1 en puerto http-8443
28-09-2007 03:53:46 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
28-09-2007 03:53:46 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/71 config=null
28-09-2007 03:53:46 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
28-09-2007 03:53:46 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 21538 ms

abrimos https://localhost:8443/

Y tenemos socket security layer en nuestro localhost

Ahora una más cortita de hacer esta misma configuración para jdk superiores a la 1.4, que contengan en el directorio bin la keytoll:

1.-
Descomentar del archivo server.xml del directorio conf de tomcat el tag del conector:


maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />

2.- Crear almacen de claves y certificado de seguridad:

slack@debian:/usr/lib/jvm/jdk1.5.0_12/bin$ keytool -genkey -alias tomcat -keyalg RSA

Nos pedirá una serie de datos para configurar el certificado. Lo primero que nos pide es la contraseña para el almacén de claves, por defecto es "changeit"

Si queremos usar cualquier otra clave, lo único que tenemos que hacer es añadir al Connector el parámetro keystorePass especificando la clave a usar.

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass=”mi_clave”/>

Nos pregunta si los datos introducidos son correctos e introducimos si.

A continuación nos pide la contraseña para tomcat. Da la opción de pulsar INTRO para este efecto.

Saludos y suerte !!

viernes, 21 de septiembre de 2007

Intel PRO/Wireless 3945ABG en Debian Etch

Hola, al instalar Debian etch en mi equipo (un notebook hp modelo nx7400) no se detecto de manera automática la wi-fi durante la instalación. leyendo documentación resolvi que es un problema del kernel y las licencias software de los drivers, sin embargo en el open source cada día ahí más de todo para estos casos. Así que puse manos a la obra para poder conectarme inalambricamente con mi Debian etch.
A continuación explico en pocos pasos y de manera clara y corta esta configuración:

*Para una tarjeta de red inalámbrica modelo Intel Corporation PRO/Wireless 3945ABG integrada en el portátil tendrás que añadir el firmware de ésta al kernel.

1.- Hay que localizar la versión del kernel correspondiente, vas a la consola y tipeas lo siguiente:

slackware:/# uname -a

Te desplegara la siguiente información:
Linux slackware 2.6.18-5-686 #1 SMP Thu Aug 30 02:19:07 UTC 2007 i686 GNU/Linux

Tambien puedes saber tu tarjeta tipeando el siguiente comando por consola:

slackware:/# lspci

este comando te desplegara una lista con tus dispositivos, em mi caso es esta, vemos q al final esta mi wireless:

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 01)
02:06.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
02:06.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller
02:0e.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
10:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

2.- Despues hay que encontrar tu versión con el siguiente comando por consola:

slackware:/# apt-cache search ipw3945

en mi caso busque las opciones del kernel que tengo instalado, el 2.6.18-5-686

Esto te desplegara una lista de opciones, si no lo hace debes editar tu archivo de repositorios de la siguiente forma:

slackware:/# gksudo gedit /etc/apt/sources.list

y añadir al repositorio estas tres lineas (si es que no se encuentran):

#wireless
deb http://ftp.de.debian.org/debian etch main
deb http://ftp.debian.org/debian/ etch main non-free contrib

3.- Seguidamente debes instalar los modulos de tu version del kernel, en mi caso es:

# apt-get install ipw3945-modules-2.6.18-5-686
# apt-get install ipw3945d
# apt-get install firmware-ipw3945

Esto último carga el firmware en /lib/firmware

4.- Te recomiento que luego reinicies el equipo con tu wi-fi encendida. Ya en el sistema debes configurar la conexión (IP estática o DHCP, etc...).

Saludos y suerte !!

domingo, 16 de septiembre de 2007

Instalar tomcat en Linux

Hola, si trabajamos desarrollando aplicaciones web, generalmente debemos trabajar con algún servidor web para nuestras páginas, existen varias alternativas que vale la pena probar, yo he probado jonas, sun aplication server y otras, sin embargo una de las mas recomendables es Tomcat del proyecto jakarta, tomcat es seguro, facil de administrar, y 100% free.

Tomcat puede servir desarrollos jsp y java por su puerto 8080. a continuación explico en pocos pasos su instalación en Linux.

1.- Baja tomcat de su pagina http://tomcat.apache.org/
yo baje la version apache-tomcat-5.5.20 en formato tar.gz

2.- Posteriormente procederemos a descomprimir este archivo en nuestra maquina, ten en cuenta un buen directorio donde dejar definitivamente tu tomcat, porque posteriormente debes configurar las path de tomcat, entonces lo desempaquetamos de la siguiente forma:

slackware:/home/slack/programas# tar -zxvf apache-tomcat-5.5.20.tar.gz

Esto debe generar un directorio de nombre:

apache-tomcat-5.5.20 en el mismo directorio que se desempaqueta

Si ingresamos al directorio de tomcat y hacemos un ls nos muestra las siguientes carpetas:

slackware:/home/slack/programas/apache-tomcat-5.5.20# ls -l
total 68
drwxr-xr-x 2 slack slack 4096 2007-09-15 17:08 bin
drwxr-xr-x 6 slack slack 4096 2006-09-12 11:10 common
drwxr-xr-x 3 slack slack 4096 2007-09-15 17:16 conf
-rw-r--r-- 1 slack slack 11357 2006-09-12 11:12 LICENSE
drwxr-xr-x 2 slack slack 4096 2006-09-12 11:10 logs
-rw-r--r-- 1 slack slack 688 2006-09-12 11:12 NOTICE
-rw-r--r-- 1 slack slack 6744 2006-09-12 11:10 RELEASE-NOTES
-rw-r--r-- 1 slack slack 6964 2006-09-12 11:12 RUNNING.txt
drwxr-xr-x 5 slack slack 4096 2006-09-12 11:10 server
drwxr-xr-x 4 slack slack 4096 2006-09-12 11:10 shared
drwxr-xr-x 2 slack slack 4096 2007-09-15 17:08 temp
drwxr-xr-x 9 slack slack 4096 2007-09-15 17:16 webapps
drwxr-xr-x 3 slack slack 4096 2007-09-15 17:16 work

En la carpeta webapps se guardan nuestras aplicaciones que se despliegan de nuestro archivo war generado en eclipse con ant, maven u otro ide

Posteriormente debemos agregar este tomcat a nuestro class-path para que quede como variable de entorno, en debian se debe editar el archivo environment, con el siguiente comando

slackware:/# gksudo gedit /etc/environment

luego agregamos la ruta y el classpath al archivo, este es mi environment


LANG="es_CL.UTF-8"

JAVA_HOME=/usr/lib/jvm/java-6-sun

CATALINA_HOME=/home/slack/programas/apache-tomcat-5.5.20

TOMCAT_HOME=/home/slack/programas/apache-tomcat-5.5.20

export JAVA_HOME CATALINA_HOME TOMCAT_HOME


Ya estan agregadas nuestros Path de Tomcat al entorno, podemos comprobar esto con el siguiente comando en la consola.

slackware:/# env

Nos debe dar un listado de entornos configurados en la maquina, en este listado se agregan las siguientes lineas:

CATALINA_HOME=/home/slack/programas/apache-tomcat-5.5.20
TOMCAT_HOME=/home/slack/programas/apache-tomcat-5.5.20

OJO:
si no se encuentran declaradas estan variables debes reiniciar la maquina

y ya estariamos listos para poder iniciar tomcat en nuesetra maquina, esto se hace de la consola en el directorio de tomcat con el siguiente comando:

slackware:/home/slack/programas/apache-tomcat-5.5.20# ./bin/startup.sh

desplegando una lista similar a esta:

Using CATALINA_BASE: /home/slack/programas/apache-tomcat-5.5.20
Using CATALINA_HOME: /home/slack/programas/apache-tomcat-5.5.20
Using CATALINA_TMPDIR: /home/slack/programas/apache-tomcat-5.5.20/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun

Eso quiere decir que estamos listos para ingregar a nuestro tomcat en el localhost abriendo la siguiente url en nuestro browser.

http://localhost:8080/

esto nos debe desplegar la pantalla inicial de tomat, en donde podremos acceder al manager de las aplicaciones, y para parar el servidor se debe ingresar el siguiente comando en el terminal:

slackware:/home/slack/programas/apache-tomcat-5.5.20# ./bin/shutdown.sh


Saludos y suerte !!

viernes, 10 de agosto de 2007

Montando Appfuse en Eclipse

Hola a todos, en esta entrada explico de forma breve pero util la instalación y montaje del conocido Appfuse WebWork en eclipse, appfuse es una aplicación open source j2ee que implementa spring framework, patrones, manager, dao, y vistas, y puede trabajar con ibatis e hibernate para acceder a la base de datos que puede ser mysql, postgresql, oracle u otras.
Esta explicación te servira para Windows y Linux, no lo he probado en otras plataformas, y te sirve solo como introducción y ayuda, las demás configuraciones de bases de datos(properties.xml), servidor de correo(mail.properties),etc. las tendrás que configurar tu. Como no tengo mucho tiempo de sacar pantallazos y ese tipo de cosas me he permitido de hacer esta explicación en pocos pasos, lo demas lo dejo a tu experticia.

1.- debes abrir una ventana de tu explorador he ingresar la sigte url para bajar Appfuse Webwork:

https://appfuse.dev.java.net/servlets/ProjectDocumentList?folderID=6196

2.- una vez en la página busca y baja el archivo:

appfuse-webwork-1.9.4-src.zip que pesa alrededor de 27 megas

bajalo y copialo a tu carpeta de proyectos o desarrollo de tu equipo y descomprimelo.

3.- si todo va bien cuando se descomprime se generara una carpeta de nombre:

appfuse

4.- una vez hecho esto, debes abrir eclipse o netbeans, te recomiendo que por primera vez lo hagas en eclipse.

5.- y ya en eclipse debes ir a los menús:

file --> new --> proyect -->, se va a abrir una ventana donde debes seleccionar la primera opcion:

java proyect y luego presionar botón next o siguiente si esta en spanish.

6.- te pedira un nombre para el proyecto a montar, puedes poner cualquier nombre, pero te aconsejo que sea appfuse

7.- seguidamente y en la misma ventana debes seleccionar el chekbox 'create proyect from existing source' y dar la ruta de tu proyecto appfuse

8.- luego debes hacer click en boton next y en la siguiente ventana next y finish, ahí te montara appfuse en tu eclipse que podras ver el navigator o browser de archivos al costado izquierdo de tu ide eclipse.

9.- una vez hecho esto debes configurar base de datos local en el archivo properties.xml que esta en la raiz del proyecto, en ese archivos existen conexiones de ejemplo que puedes ocupar.

puedes tener varias conexiones a distintas bases de datos en el mismo archivo, solo tienes que comentar las que no ocupas.

appfuse.war se llama el archivo que generara eclipse, para esta tarea se apoyara con ant, el que automatiza el deploy en tu eclipse, si no lo tienes ve i bajalo de la sigte. url:

http://ant.apache.org/

te recomiento la version 1.7, la desenpaquetas en tu equipo en algún directorio para este tipo de librerias, luego vas al menu superior de eclipse, window --> sho view --> ant

Esto abrira un explorador en el cual debes agregar el buid.xml del proyecto, para que puedas trabajar con tu proyecto y ant (la tarea de ant es ejecutar tag de el build.xml de tu proyecto)

appfuse puede trabajar con distintas bases de datos, en mi caso tengo postgreSQL 8.2 intalada en mi debian, y ant no la crea por lo tanto la debes crear con el gestor de base de datos, el pgAdmin3, Webmin, o por consola, esta configuracion de base de datos es la que debes tener en tu properties.xml

Ahora ya tienes listo tu eclipse con ant, para deployar el proyecto y trabajar con la base de datos(dbload y dbprepare), para esto en ant debes ejecutar los siguientes task

clean: limpia el directorio de tu proyecto de archivos generados con la compilacion.

dbprepare: genera automaticamente las tablas y relaciones en tu base de datos.

dbload: carga la primera información de ejemplo en tu base de datos que contiene el archivo sample-data.xml del directorio metadata/sql

package web, undeploy

start tomcat: inicia el servidor tomcat de tu maquina local, para esto debes tener en la carpeta plugin de tu eclipse el archivo de sysdeo para tomcat

deploy war: genera el archivo appfuse.war y lo copia a tu webapp de tomcat

y finalmente deploy web

Ahora para ver tu appfuse debes abrir tu explorador en la dirección:

http://localhost:8080/appfuse

el user es tomcat y
la passwd es tomcat

o para admin mraible como user y tomcat como clave

para apoyo puedes ir a las sigtes url's

http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuseEclipse_es

o escribirme un email o comentarios, tratate de sacar todas las dudas.

Saludos y suerte !!

domingo, 29 de julio de 2007

Que es Linux?

Linux es la denominación de un sistema operativo tipo-Unix y el nombre de un núcleo. Es uno de los paradigmas más prominentes del software libre y del desarrollo del código abierto, cuyo código fuente está disponible públicamente, para que cualquier persona puede libremente usarlo, estudiarlo, redistribuirlo y, con los conocimientos informáticos adecuados, modificarlo.

En los últimos años linux a sido la motivación creciente y punto de partida para el desarrollo y estandarización de nuevas tecnologías, como la nube, sistemas operativos mobiles como android, etc.

Grandes empresas mundiales como Google, Amazon, Oracle entre otras han ido migrando a las tecnologías estándares, las que permiten que en cualquier dispositivo puedan correr sus aplicaciones. Linux sistema operativo open source universal permite a los desarrolladores de todo el mundo participar en el desarrollo de las nuevas tecnologías. Otra gran ventaja que tiene este sistema operativo frente a Windows es que maximiza la utilización del hardware, consume pocos recursos, trabaja en el contexto del open source y es multiproceso, es decir puede ejecutar varias tareas a la vez, cosa que windows emula con la administración de los recursos, lo que muchas veces termina con un pantallazo azul con algún tipo de error, o el sistema queda pegado indefinidamante hasta el ctrl+alt+supr