lunes, 29 de diciembre de 2008

Instalar Pgadmin3 en Linux

Hola, la vamos a hacer cortita por que no tengo mucho tiempo, escribo este tips solo como recordatorio.

Una de las bases de datos Open Source más utilizadas es PostgreSQL, por su flexibilidad, potencia y rapidez es una de las mejores que existe hoy en día, con respaldo de grandes empresas, ademas de tener soporte para multiples funciones, entre ellas soporte para PL (procedimientos almacenados). aunque no soy muy amigo de meter logica de negocio en las bases de datos, por la dependencia que esto provoca, ojo, no digo que sea malo... jajajja son pesimos.. kikokiko.

Bueno, cuando tenemos linux y nos queremos hacer de una buena base de datos local para nuestros desarrollos optamos por Mysql que es excelente o por PostgreSQL que tambien es muy buena. ambas free.

Si tenemos instalado webmin, podemos instalar Postgre desde la pestaña de servicios, esto no es nada mas que instalar postgre con apt-get pero desde una interfaz grafica.

Una vez instalada nuestra base de datos postgreSQL, podemos instalar un cliente grafico como PGadmin3.

Por consola lo hacemos de la siguiente manera, utilizando el gestor de paquetes de Debian y ubuntu:

1.- Buscamos en nuestros repositorios si contamos con este paquete para instalar.

slack@ubuntu:/usr/local/Xerox/DocuShare/bin$ apt-cache search pgadmin
pgadmin3 - graphical administration tool for PostgreSQL
pgadmin3-data - graphical administration tool for PostgreSQL - documentation
pgagent - job scheduler for PostgreSQL
phppgadmin - web-based administration tool for PostgreSQL
postgresql-contrib-8.3 - additional facilities for PostgreSQL

2.- Se despliega en el listado lo que andamos buscando, ahora procedemos a instalar automatyicamente el software con apt-get, como root

slack@ubuntu:/usr/local/Xerox/DocuShare/bin$ sudo apt-get install pgadmin3
[sudo] password for slack:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
libwxbase2.8-0 libwxgtk2.8-0 pgadmin3-data pgagent
Se instalarán los siguientes paquetes NUEVOS:
libwxbase2.8-0 libwxgtk2.8-0 pgadmin3 pgadmin3-data pgagent
0 actualizados, 5 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 8225kB de archivos.
Se utilizarán 23,1MB de espacio de disco adicional después de desempaquetar.

decimos que S, y comienza la descarga desde los repositorios que tenemos en nuestro source.list

¿Desea continuar [S/n]? S
Des:1 http://cl.archive.ubuntu.com intrepid/universe libwxbase2.8-0 2.8.8.0-0ubuntu2 [671kB]
Des:2 http://cl.archive.ubuntu.com intrepid/universe libwxgtk2.8-0 2.8.8.0-0ubuntu2 [3373kB]
Des:3 http://cl.archive.ubuntu.com intrepid/universe pgadmin3-data 1.8.4-1 [2626kB]
Des:4 http://cl.archive.ubuntu.com intrepid/universe pgadmin3 1.8.4-1 [1515kB]
Des:5 http://cl.archive.ubuntu.com intrepid/universe pgagent 1.8.4-1 [38,2kB]
Descargados 8225kB en 19s (420kB/s)
Seleccionando el paquete libwxbase2.8-0 previamente no seleccionado.
(Leyendo la base de datos ...
140462 ficheros y directorios instalados actualmente.)
Desempaquetando libwxbase2.8-0 (de .../libwxbase2.8-0_2.8.8.0-0ubuntu2_i386.deb) ...
Seleccionando el paquete libwxgtk2.8-0 previamente no seleccionado.
Desempaquetando libwxgtk2.8-0 (de .../libwxgtk2.8-0_2.8.8.0-0ubuntu2_i386.deb) ...
Seleccionando el paquete pgadmin3-data previamente no seleccionado.
Desempaquetando pgadmin3-data (de .../pgadmin3-data_1.8.4-1_all.deb) ...
Seleccionando el paquete pgadmin3 previamente no seleccionado.
Desempaquetando pgadmin3 (de .../pgadmin3_1.8.4-1_i386.deb) ...
Seleccionando el paquete pgagent previamente no seleccionado.
Desempaquetando pgagent (de .../pgagent_1.8.4-1_i386.deb) ...
Procesando activadores para man-db ...
Procesando activadores para doc-base ...
Processing 1 added doc-base file(s)...
Registering documents with scrollkeeper...
Configurando libwxbase2.8-0 (2.8.8.0-0ubuntu2) ...

Configurando libwxgtk2.8-0 (2.8.8.0-0ubuntu2) ...

Configurando pgadmin3-data (1.8.4-1) ...
Configurando pgadmin3 (1.8.4-1) ...

Configurando pgagent (1.8.4-1) ...
Procesando activadores para libc6 ...
ldconfig deferred processing now taking place
slack@ubuntu:/usr/local/Xerox/DocuShare/bin$

3.- Y listo, ya tenemos pgadmin3 para trabajar graficamente con nuetsro PostgreSQL

Aqui va un pantallazo de PGAdmin3



Esto si que es Open Source, todo a la mano y sin comprar licencias.

El software libre es una fuente de innovación...

Saludos y Suerte !!

jueves, 18 de diciembre de 2008

BPEL y BPMN

Los sistemas de soporte operacional en las empresas están basados en procesos que conforman su cadena operativa, cadenas de valor, de negocio, etc. soportando por ejemplo, los ciclos para la gestión de clientes, productos, servicios, recursos humanos, contabilidad, finanzas, administración, presupuesto, facturacion, etc.

La agilidad operativa en la administración de estos procesos, es un diferenciador competitivo vital y una de las principales características que una organización necesita para poder adaptarse a los continuos cambios de negocio. El éxito dependerá de la rapidez con la cual las organizaciones puedan adaptarse a estos cambios y al correcto uso de las herramientas tecnologicas que facilitan su control.

Por lo general, las empresas tienen analistas de negocio, que definen y establecen los ciclos y los procesos de negocio. Su función es mejorar, iterar y optimizar los procesos, equilibrar los requerimientos con los objetivos de la organización, etc. Tradicionalmente los analistas han utilizado herramientas para modelar y representar los procesos. Luego estos procesos son desplegados en alguna tecnología que pueda ejecutarlos y crear una representación técnica basada en un lenguaje de programación.

Resumiendo, el proceso se modela en una herramienta grafica, creando una representación de los procesos de alto nivel, como el modelo no trae un ejecutable directamente, los programadores deben crear componentes que implementan los procesos sobre una tecnología específica y basada en su comprensión del proceso.

Los procesos desarrollados de esta manera son muy susceptibles a errores de comprensión, errores de codificación, debido a la desconexión existente entre el modelo de alto nivel y el proceso ejecutable. En este tipo de soluciones, un cambio implica un impacto significativo, es necesario por ejemplo, reescribir código, cambiar el modelo, etc., además es difícil obtener métricas para medir el estado actual y las condiciones de negocio vigentes. entonces aqui se dice que "Problemas de diseño extremo, soluciones de programacion extremas", asumiendo en este caso una metodologia agil para el desarrollo de software (Scrum y XP).

Problemas con este modelo de implementación.

  1. Los procesos desarrollados de esta manera son muy susceptibles a errores de comprensión y errores de codificación.
  2. Existen grandes brechas entre el modelo y su implementación técnica.
  3. Un cambio implica un impacto significativo en la infraestructura TI de la organización, porque los procesos están cableados en el código.
  4. Las reglas de negocio, están altamente acopladas a los procesos.
  5. Mantenerlos es extremadamente engorroso, difícil y costoso.
  6. Debido a los continuos cambios, los procesos pierden vigencia continuamente y pueden llegar a convertirse en piezas incomprensibles, con un nivel de detalle que aprisiona la agilidad.
  7. No podemos automatizar los cambios de políticas.

Una Solución

Para solventar estos problemas, los gerente de IT utilizan una solución basada en modelos, con una alternativa de implementación mas abierta y estándar: BPM y BPEL.

BPEL es el estándar de la industria que representa y ejecuta procesos del negocio, bpel permite una abstracción lógica del proceso, del modelo de implementación o tecnología. BPEL esta basado en una notación XML que permite representar los procesos de negocio, uno de los ides que implementa muy bien esta tecnologia es Netbeans de la version 5.5 en adelente, y su propio motor de procesos asociado a Glassfish.

Otro estándar, Business Process Modeling Notation (BPMN), es una especificación que proporciona una notación que todos los usuarios y clientes los puedan entender, los analistas bosquejan inicialmente los procesos para que los desarrolladores lo ejecuten en algun motor, como Jboss BPM.

Con BPEL y BPMN, un analista puede utilizar una herramienta para modelar el proceso y construir el proceso usando BPMN. El modelo del proceso BPMN genera automáticamente un entorno para BPEL, donde se establecen metadatos, reglas de negocio, bifurcaciones, flujos de trabajo, participantes, punto de decisión, contextos de pool y lane, etc.

Beneficios

  1. Simplifica la comunicación y colaboración entre los arquitectos, analistas y desarrolladores.
  2. Habilita y disponibiliza el concepto de SOA en la organización.
  3. BPEL proporciona un modelo rico en operaciones como el manejo de excepciones, reglas de negocio, transaccionalidad, logica, etc.
  4. La visión lógica no demuestra los detalles subyacentes de la puesta en práctica.
  5. Cambios no afectan la representación total del proceso.
Ingresaremos luego a este mundo, con ejemplos practicos para su correcta implementacion.

Saludos y Suerte !!

lunes, 27 de octubre de 2008

Scrum y XP (1)

Hola, muchas veces cuando debemos desarrollar o implementar rapidamente un software, tenemos demasiado poco tiempo, sobre todo cuendo el asunto es partir de cero y no tenemos tiempo para análisis, modelamiento perfecto de UML, etc.

Para estos casos se ha puesto de moda Scrum y XP, ambas son tecnicas de desarrollo agil de software.

Los equipos de trabajo deben conocer los principios de Scrum. ¿Cómo se crea y se estima una pila de producto? ¿Cómo se transforma en una pila de Sprint?
¿Cómo se gestiona un gráfico de burn-down y se calcula la velocidad del equipo?

Para responder esto veremos una introducción practica de Scrum.

La ejecución correcta de Scrum se está convirtiendo en un factor cada vez más importante para los equipos que buscan inversión de capital.

¿Por qué es esto tan importante? Si los equipos no conocen su velocidad, el Dueño de Producto no puede crear una hoja de ruta del producto con fechas de lanzamiento creíbles. Sin fechas de lanzamiento fiables, la ompañía podría fracasar y los inversores perder su dinero.

Tanto Scrum como Programación Extrema (XP) requieren que los equipos completen algún tipo de producto potencialmente liberable al final de cada iteración. Estas iteraciones están diseñadas para ser cortas y de duración fija.
Este enfoque de entregar código funcional cada poco tiempo significa que los equipos Scrum y XP no tienen tiempo para teorías. No persiguen dibujar el modelo UML perfecto en una herramienta CASE, escribir el documento de requisitos perfecto o escribir código que se adapte a todos los cambios futuros imaginables. En vez de eso, los equipos Scrum y XP se enfocan en que las cosas se hagan. Estos equipos aceptan que puede que se equivoquen por el camino, pero también son conscientes de que la mejor manera de encontrar dichos errores es dejar de pensar en el software a un nivel teórico de análisis y diseño y sumergirse en él, ensuciarse las manos y comenzar a construir el producto.

Este es un proceso de aprendizaje continuo, así que la historia no acaba aquí.
Estoy convencido de que esta empresa seguirá aprendiendo (si se siguen haciendo las Retrospectivas de Sprint) y adoptando nuevas perspectivas sobre las mejores formas de implementar Scrum en su contexto particular.

Si necesitas averiguar más antes de seguir puedes ver los siguientes link's

• http://agilemanifesto.org/
• http://www.mountaingoatsoftware.com/scrum
• http://www.xprogramming.com/xpmag/whatisxp.htm

Sino, no importa, veremos la forma practica de implementar scrum rapidamente, bueno eso es en realidad, imprimir energia y rapidez al desarrollo de software.

Pila de producto.
La pila de producto es el corazón de Scrum, y simplemente es la priorización de los requisitos que debe tener una aplicación solicitada por el cliente.
A esta lista de requisitos le llamamos historias, o funcionalidades, o lo que sea. Cosas que el cliente quiere, descritas usando la terminología del cliente. Llamamos a esto historias, o a veces simplemente elementos de la Pila.
Esta pila de requisitos puede ser escrita en una planilla excel de manera simple para que el cliente la entienda en su lenguaje natural, dejamos de lado aqui los administradores de tareas como Jira u otros bug-tracker.

Para hacerlo simple y productivo nuestra pila de producto (lista priorizada de requisitos) contiene los siguientes campos:

ID – un identificador único, simplemente un número auto-incremental. Esto nos permite no perder la pista a las historias cuando cambiamos su nombre.
Nombre – una descripción corta de la historia. Por ejemplo, “Ver tu historial de transacciones”. Suficientemente claro como para que el Dueño de Producto comprenda aproximadamente de qué estamos
hablando, y suficientemente clara como para distinguirla de las otras historias. Normalmente, 2 a 10 palabras.
Importancia – el ratio de importancia que el Dueño de Producto da a esta historia. Por ejemplo, 10. O 150. Más alto = más importante. Suelo evitar el término “prioridad” porque típicamente “1” se considera la
“máxima prioridad, lo que es muy incómodo si posteriormente decides que algo es más importante. ¿Qué prioridad le daríamos a ese nuevo elemento? ¿Prioridad 0? ¿Prioridad -1?
Estimación inicial – la valoración inicial del Equipo acerca de cuanto trabajo es necesario para implementar la historia, comparada con otras historias. La unidad son “puntos de historia” y usualmente corresponde a “días-persona ideales”. Lo importante no es que las estimaciones absolutas sean correctas (es decir, que una historia de 2 puntos deba durar 2 días), lo importante es que las estimaciones relativas
sean correctas (es decir, que una historia de 2 puntos debería durar la mitad que una historia de 4 puntos).
Como probarlo – una descripción a alto nivel de como se demostrará esta historia en la Demo al final del Sprint. Se trata, esencialmente, de una simple especificación de un test: “Haz esto, entonces haz lo otro, y
entonces debería ocurrir aquello”. Si practicas TDD (Test-Driven Development, desarrollo orientado a test) esta descripción puede usarse como pseudo-código para vuestro test de aceptación.
• Notas – cualquier otra información, clarificación, referencia a otras
fuentes de información, etc. Normalmente muy breve.

Ejemplo de Pila de Producto:

Sigamos, vemos en la tabla anterior la implementación de una pila de producto simple, falta completar campos, como la estimación, prueba y notas, estos deben ser completados en conjunto con el equipo Scrum (equipo de desarrollo).


En la practica se pueden agregar otros campos, pero a la larga estos son los mas recurrentes tras los Sprint.

Como mantenemos la Pila de Producto a nivel de negocio.
Si el Dueño de Producto tiene una formación técnica, puede que añada historias del tipo “añadir índices a la tabla de eventos”. ¿Por qué quiere algo así? El auténtico objetivo probablemente será algo como “aligerar el formulario de búsqueda de eventos en el backoffice” (con un índice).
Puede ocurrir que los índices no fueran el cuello de botella que hiciera al formulario ir lento. Puede que fuera algo completamente diferente. El equipo está normalmente mejor capacitado para averiguar como resolver algo, así que el Dueño de Producto debería concentrarse en los objetivos de negocio y no en modificarnos la pila luego de los requisitos ya vistos y entregados.

Pronto, va la segunda parte de este doc. de Scrum.

Saludos y Suerte !!

jueves, 9 de octubre de 2008

Firma digital de PDF

Hola, muchas veces para nuestros sistemas debemos resguardar la integridad de los documentos almacenados en nuestros repositorios, ya sean word, pdf u otros.

Esto lo podemos realizar agregando la firma digital a los documentos, y una manera de hacerlo es mediante las apis de Java, las que nos proveen los metodos apropiados para la firma avanzada de documentos PDF.

Avanzada, porque el mismo Acrobar Reader valida la integridad del documento y la firma digital, ademas de agregar la capacidad de usar nuestro propio certificado pfx.

En el siguiente ejemplo veremos como firmar digitalmente un documento PDF.

1.- Debemos contar con algún certificado pfx valido en nuestro sistema.

Si ya contamos con este certificado PKCS12 (. pfx) procedemos con el ejemplo.

primero vamos a nuestro ide eclipse para Java creamos una clase con el siguiente código.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.Certificate;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
import com.lowagie.text.pdf.PdfSignatureAppearance;

public class FirmarPDF {

public static void main (String [] args) throws Exception{
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(new FileInputStream("/home/slack/mycert.pfx"), "quaker77".toCharArray());
String alias = (String) ks.aliases().nextElement();
PrivateKey key = (PrivateKey) ks.getKey(alias, "quaker77".toCharArray());
Certificate[] chain = ks.getCertificateChain(alias);
PdfReader reader = new PdfReader("/home/slack/0X/ccu/documento_inicial_req.pdf");
FileOutputStream fout = new FileOutputStream("/home/slack/compartido/documento_firmado2.pdf");
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0', new File("/tmp"));
PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
sap.setReason("Prueba de firma digital con iText");
sap.setLocation("Chile");
sap.setContact("Empresa Chile");
stp.close();
}

}

Debemos contar con las librerias necesarias que se importan en la clase.

En el código vemos que tenemos un archivo pdf de entrada y otro de salida, pero este ultimo va firmado.

La firma digital de documentos PDF la valida Adobe Acrobat, que es capaz de procesar y validar esta información.

Para verificar visualmente que el documento de salida esta firmado vemos las siguientes caracteristicas en el nuevo documento en acrobat reader.



Bueno, este en un ejemplo practico para firmar pdf con Java.

Ahora faltaría agregar esta implementación a una aplicación web para clientes.

Saludos y Suerte !!

viernes, 3 de octubre de 2008

Instalar pgadmin3 en Linux

Hola, cuando necesitamos administrar un PostgreSql o MySql de manera amigable, muchas veces ocupamos algún administrador grafico, yo he utilizado mucho webmin como administrador de base de datos PostgreSql y MySql, sin embargo para utilizar Webmin necesitas que la maquina donde residen las bases de datos lo tenga instalado y tener habilitado el puerto 10000.

Pero que ocurre cuando esa maquina no cuenta con Webmin. Tenemos 2 opciones, una es solicitar la instalación de Webmin y otra en utilizar en este caso PgAdmin3.

Por defecto las distribuciones Linux no lo traen instalado, pero si esta en los repositorio del source.list, por lo tanto abrimos una consola y lo buscamos con apt de la siguiente forma.

slack@slacktop:~$ apt-cache search pgadmin
pgadmin3 - graphical administration tool for PostgreSQL
pgadmin3-data - graphical administration tool for PostgreSQL - documentation
pgagent - job scheduler for PostgreSQL
phppgadmin - Set of PHP scripts to administrate PostgreSQL over the WWW
postgresql-contrib-8.2 - additional facilities for PostgreSQL
postgresql-contrib-8.3 - additional facilities for PostgreSQL

En el listado de resultado vemos que el primer paquete corresponde a lo que buscamos, por lo tanto procedemos con apt-get a su instalación en nuestro sistema.

slack@slacktop:~$ sudo apt-get install pgadmin3
[sudo] password for slack:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
libwxbase2.8-0 libwxgtk2.8-0 pgadmin3-data
Paquetes recomendados
pgagent
Se instalarán los siguientes paquetes NUEVOS:
libwxbase2.8-0 libwxgtk2.8-0 pgadmin3 pgadmin3-data
0 actualizados, 4 se instalarán, 0 para eliminar y 12 no actualizados.
Necesito descargar 8381kB de archivos.
Se utilizarán 24,0MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]? S


Confirmamos con S la descarga del paquete PgAdmin3 y continua su instalación.

Des:1 http://cl.archive.ubuntu.com hardy/universe libwxbase2.8-0 2.8.7.1-0ubuntu3 [675kB]
Des:2 http://cl.archive.ubuntu.com hardy/universe libwxgtk2.8-0 2.8.7.1-0ubuntu3 [3500kB]
Des:3 http://cl.archive.ubuntu.com hardy/universe pgadmin3-data 1.8.2-0ubuntu1 [1070kB]
Des:4 http://cl.archive.ubuntu.com hardy/universe pgadmin3 1.8.2-0ubuntu1 [3136kB]
Descargados 8381kB en 23s (358kB/s)
Seleccionando el paquete libwxbase2.8-0 previamente no seleccionado.
(Leyendo la base de datos ...
160747 ficheros y directorios instalados actualmente.)
Desempaquetando libwxbase2.8-0 (de .../libwxbase2.8-0_2.8.7.1-0ubuntu3_i386.deb) ...
Seleccionando el paquete libwxgtk2.8-0 previamente no seleccionado.
Desempaquetando libwxgtk2.8-0 (de .../libwxgtk2.8-0_2.8.7.1-0ubuntu3_i386.deb) ...
Seleccionando el paquete pgadmin3-data previamente no seleccionado.
Desempaquetando pgadmin3-data (de .../pgadmin3-data_1.8.2-0ubuntu1_all.deb) ...
Seleccionando el paquete pgadmin3 previamente no seleccionado.
Desempaquetando pgadmin3 (de .../pgadmin3_1.8.2-0ubuntu1_i386.deb) ...
Configurando libwxbase2.8-0 (2.8.7.1-0ubuntu3) ...

Configurando libwxgtk2.8-0 (2.8.7.1-0ubuntu3) ...

Configurando pgadmin3-data (1.8.2-0ubuntu1) ...
Configurando pgadmin3 (1.8.2-0ubuntu1) ...

Processing triggers for libc6 ...
ldconfig deferred processing now taking place
slack@slacktop:~$

El log nos dice que ya esta ok la instalación, ahora lo vamos a ejecutar, lo podemos hacer directamente por consola escribiendo pgadmin3 y enter o podemos encontrar pgadmin en el menú del sistema: Aplicaciones --> Herramientas del Sistema.

para el ejemplo lo abriremos por consola.

slack@slacktop:~$ pgadmin3

Esto abre el siguiente entornos grafico de pgadmin3.




Hacemos click con el mouse en el icono de conexion lo que nos abre la siguiente ventana donde tenemos que ingresar los datos de conexión a las base de datos, para este ejemplo lo estoy apuntando a mi local, sin embargo se puede apuntar a otra ip.



Hacemos click en Aceptar y nos despliega el contenido de nuetro Postgre Local, como muestra la figura.



Podemos apuntar a una ip remota, siempre y cuando el puerto 5432 de Postgre este aceptando conexiones.

Saludos y Suerte !!

martes, 19 de agosto de 2008

Montar un FingerPrint reader USB en VirtualBox

Hola, con los avances tecnologicos y nuevos desarrollos es necesario ocupar las ultimas tecnologías para los sistemas web, las que nos permiten poder desarrollar aplicaciones que se integran con dispositivos de hardware, y que aveces en linux no contamos con los driver.

Bueno en mi caso tengo sobre linux corriendo VirtualBox de Sun, y en el tengo Ventanukos XP (lease Windows XP), tengo ademas en el ventanukos una aplicación que ocupa componentes ActiveX y un lote de archivos dll, aunque no son elegantes y no se les ve mucho futuro debemos utilizarlos para nuestras aplicaciones.

La aplicación cuenta con un formulario web, el cual contiene un componente ActiveX que se conecta con un dispositivo usb, este dispositivo es un FingerPrinter, es decir contiene una pantalla, un lapiz y un lector de huellas dactilares. Debido a esto debo correrlo en ventanukos XP.

Por defecto VirtualBox no reconoce los dispositivos USB, y menos un FingerPrinter.

Por lo tanto me he dado la paja de investigar un poco el VirtualBox para que lo reconozca.

Leyendo, he resuelto el tema de la siguiente forma:

1.- Primero debo habilitar la lectura y permisos de los USB en los archivos de configuración de VirtualBox, para comenzar, vamos a la consola y escribimos lo siguiente:

slack@slacktop:~$ sudo gedit /etc/init.d/mountdevsubfs.sh

con este comando entramos a editar el archivo mountdevsubfs.sh, y descomentamos las siguientes lineas:

#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount --rbind /dev/bus/usb /proc/bus/usb

Quedando de la siguiente forma:

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

Guardamos los cambios y cerramos Gedit.

2.- Luego debemos modificar otro archivo para agregar permisos al dipositivo, lo hacemos ingresando el siguiente comando.

slack@slacktop:~$ sudo gedit /etc/udev/rules.d/40-permissions.rules

Modificamos lo siguiente:

# Block devices
SUBSYSTEM!="block", GOTO="block_end"
ATTRS{removable}!="1", GROUP="disk"
ATTRS{removable}=="1", GROUP="floppy"
SUBSYSTEMS=="usb", GROUP="plugdev"

Quedando de la siguiente forma:

# Block devices
SUBSYSTEM!="block", GOTO="block_end"
ATTRS{removable}!="1", GROUP="disk"
ATTRS{removable}=="1", GROUP="floppy"
SUBSYSTEMS=="usb", MODE="0666" GROUP="plugdev"

Notese que agregamos al dispósitivo USB el MODE="666", con esto le damos permiso al dispositivo para ser ejecutado.

Tambien modificamos el parrafo USB serial converter, como se ve:

# USB serial converters
SUBSYSTEM=="usb_device", GOTO="usb_serial_start"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="usb_serial_start"
GOTO="usb_serial_end"

Dejandolo de la siguiente forma:

# USB serial converters
SUBSYSTEM=="usb_device", MODE="0666"
#SUBSYSTEM=="usb_device", GOTO="usb_serial_start"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="usb_serial_start"
GOTO="usb_serial_end"

Solo comentamos la linea que habia anteriormente y la incluimos modificada.

Cerramos Gedit y vamos al fstab.

3.- A continuación debemos agregar el montaje de los USB al archivo FSTAB, vamos a la consola nuevamente:

slack@slacktop:~$ sudo gedit /etc/fstab

Este comando abre Gedit con la información de los dispositivos y unidades que monta Linux por defecto. agregamos al final la siguiente linea:

#usbfs
usbfs /proc/bus/usb usbfs devgid=1001,devmode=666 0 0

Con esto le decimos que monte el dispositivo USB con modo de permiso 666 de ejecucion.

Y listo.

Ahora solo debemos ejecutar el montado de lo que configuramos, si no queremos reiniciar la maquina podemos ingresar el siguiente comando por consola:

slack@slacktop:~$ sudo mount -a

Ahora fui al VirtualBox, conecte el USB FingerPrinter y lo reconocio al choque

Creo que no debemos tener ningun problema para trabajar correctamente con el VentanukosXP sobre VirtaulBox de Sun y este sobre Linux ah.. q tal

Saludos y Suerte !!

miércoles, 30 de julio de 2008

Instalar Oracle 10g Express Edition

Hola, en algunas aplicaciones cuando el motor de base de datos es oracle y en nuestro desarrollo local no contamos con Oracle, podemos instalar una version free para Linux que Oracle puso a disposición de todos los que quieran usar Oracle para los desarrollos, y ademas con interfaz web integrada.

Vamos instalar oracle 10g Express Edition en Linux Debian, de la siguiente manera:

1.- Debemos añadir a nuestro archivo /etc/apt/source.list el siguiente repositorio:

deb http://oss.oracle.com/debian unstable main non-free

2.- Actualizar los repositorios de nuestro gestor de paquetes apt con el siguinte comando:

slack@slacktop:~$ sudo apt-get update

3.- Ejecutar la instalación:

slack@slacktop:~$ sudo apt-get install oracle-xe-universal
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
libaio
Se instalarán los siguientes paquetes NUEVOS:
libaio oracle-xe-universal
0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 262MB de archivos.
Se utilizarán 451MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]? S

Se va a demorar un poco, Un par de preguntas, como los puertos que se van a ocupar, y password del SYS, y tendriamos Oracle 10g en linux, este es el log:

slack@ubuntu:~$ sudo /etc/init.d/oracle-xe configure
[sudo] password for slack:

Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Press to accept the defaults.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:8082

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:

Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y

Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8082/apex"

Nos muestra la url de acceso al login del Oracle XE.


Saludos y suerte!