miércoles, abril 23, 2008

Instalar la Base de Datos Oracle Express Edition en Debian Etch GNU/Linux

Dice esta Web

http://www.oracle.com/technology/products/database/xe/index.html




Que: Oracle Database 10g Express Edition es Gratis! para desarrollar, desplegar y distribuir.

"Oracle Database 10g Express Edition (Oracle Database XE)" es una base de datos BÁSICA, basada en la "Oracle Database 10g Release 2" se permite de forma gratuita desarrollar, desplegar y distribuir el código básico; es simple de administrar.

Según la Web de Oracle, la Base de Datos Oracle XE se puede ser utilizada por:

* Desarrolladores que trabajan con PHP, Java, .NET, XML, y aplicaciones Open Source
* DBAs que necesiten una base de datos gratis, para iniciar su entrenamiento
* Instituciones educativas y estudiantes que necesitan poner Oracle en su curriculum

Sobre la instalación resume de forma rápida:

Oracle Database XE puede ser instalada en máquinas de distintas prestaciones, con cualquier número de CPUs (una base de datos por máquina), pero (Oracle la ha puesto a disposición de forma gratuita, como ustedes de seguro ya se imaginaban hay peros) pero XE almacenará hasta 4GB de datos de usuario, usará hasta 1GB de memoria, y usa sólo un CPU de la computadora.

Hay buenos manuales de instalación y uso, en la Web que les mencioné arriba. Es interesante mencionar también que según la Web de Oracle esta edición de Oracle XE ha ganado el "LinuxWorld Product Excellence Award for Best Database Solution" (http://www.oracle.com/corporate/press/2006_apr/oraclexe-lw-award-041306.html).

Ok, no mas "wiri wiri", empecemos a instalar:

Nota: hagan suficiente espacio en su partición /usr

En el caso de debian también es necesario descargar el paquete "libaio" para que funcione Oracle XE (en la web de Oracle encontrarán también un enlace para descargar este deb). Después de descargar oracle-xe_10.2.0.1-1.1_i386.deb y libaio_0.3.104-1_i386.deb, procedemos con la instalación:

denis@debdenis2:/media/cdrom1$ ls -lh
total 486M
-r-xr-xr-x 1 root root 5.9K 2005-06-21 18:02 libaio_0.3.104-1_i386.deb
-r-xr-xr-x 1 root root 211M 2006-05-25 02:19 oracle-xe_10.2.0.1-1.1_i386.deb
-r-xr-xr-x 1 root root 25M 2006-05-25 02:18 oracle-xe-client_10.2.0.1-1.2_i386.deb
-r-xr-xr-x 1 root root 251M 2006-05-25 02:20 oracle-xe-universal_10.2.0.1-1.1_i386.deb



Proceder con la instalación de libaio

denis@debdenis2:/media/cdrom1$ su
Password:
debdenis2:/media/cdrom1# dpkg -i libaio_0.3.104-1_i386.deb
Seleccionando el paquete libaio previamente no seleccionado.
(Leyendo la base de datos ...
34485 ficheros y directorios instalados actualmente.)
Desempaquetando libaio (de libaio_0.3.104-1_i386.deb) ...
Configurando libaio (0.3.104-1) ...



Instalar oracle-xe

debdenis2:/media/cdrom1# dpkg -i oracle-xe_10.2.0.1-1.1_i386.deb
(Leyendo la base de datos ...
22908 ficheros y directorios instalados actualmente.)
Preparando para reemplazar oracle-xe 10.2.0.1-1.1 (usando oracle-xe_10.2.0.1-1.1_i386.deb) ...
Desempaquetando el reemplazo de oracle-xe ...
Configurando oracle-xe (10.2.0.1-1.1) ...
Executing Post-install steps...

You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.



Ultimo paso: configurar oracle-xe respondiendo unas sencillas preguntas


debdenis2:/media/cdrom1# /etc/init.d/oracle-xe configure

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 Enter to accept the defaults.
Ctrl-C will abort.

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

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:8080/apex"


Como habrán notado la configuración es suficientemente intuitiva y no necesita de mucha explicación, en mi caso el puerto 8080 ya lo tenía ocupado por lo cual seleccioné otro.

Listo!




Oracle XE también está disponible para estas distribuciones de Linux a 32-bit: Mandriva Linux 2006 Power Pack+, SUSE Linux Enterprise Server 9 y SUSE Linux 10 de Novell, Red Hat Enterprise Linux 4, Fedora y Ubuntu, ah! también sacaron una versión para Windows.

lunes, marzo 31, 2008

Problema para Instalar Debian Etch en un PC DELL Optiplex 320 con Disco Duro SATA

English Version

Mi amigo Cesar, estaba intentando instalar Debian Etch en su computadora nueva, un PC DELL Optiplex 320, pero el instalador de Debian le decía:

"No se detectó ninguna unidad de disco. Puede seleccionar el controlador de la lista si conoce el nombre del que necesita la unidad de disco."

El disco duro de la PC es SATA, yo ya había escuchado antes que algunas versiones viejitas de Linux daban problema al intentar detectar estos discos duros, pero no se me ocurrió que Debian Etch (el actual Debian estable) también daría dicho problema.

Como no teníamos idea de que hacer, publiqué mi duda en varias listas de usuarios de Debian GNU/Linux a las cuales estoy suscrito, redacté mi duda de la siguiente manera:

"Hola

Tengo problema para instalar debian etch 4 r0, en un PC DELL con disco duro SATA, el instalador no reconoce el disco duro, ¿que puedo hacer?.

¿Alguien ha tenido una experiencia parecida?

Gracias."

La respuesta que solucionó nuestro problema fue de:

Marcelo - marcelo.magallon at gmail.com

"Optiplex 320.

Pareciera ser que varias personas han reportado problemas con esa máquina. La solución parece ser utilizar la opción pci=nomsi

Cuando aparece la pantalla de instalación, en lugar de presionar enter escribes esto:

install pci=nomsi

Ahora, cuando llegas a la pantalla que te dice que va a instalar "GRUB" en el master boot record (MBR), te devuelves (seleccionas "back" o "atrás") y seleccionas la opción que dice que quieres utilizar "LILO". Esto porque GRUB parece tener problemas en esta máquina en particular."

Otras buenas respuestas fueron:


Israel - neflyte49 at gmail.com

Simple: andate al BIOS y ponelo en modo PATA+SATA o modo LEGACY.

Luis Roberto Castro Silva - rcswrc at gmail.com

He visto que a algunas computadoras hay que cambiarle en el BIOS la forma de ver los discos duros pues se implemento el AHCI para Windows Vista, de manera que hay que cambiarlo de AHCI a SATA.

Walter Pérez Aráuz - walternrg4u at gmail.com

Quizás te pueda servir:

http://wiki.osuosl.org/display/LNX/Debian+on+Dell+Servers?showComments=false

Saludos!

Rodrigo Castro - rodrigo.b.castro at gmail.com

Yo tuve unos problemas similares con unas máquinas Dell no las tengo cerca como para decirte paso a paso como lo resolví.

Lo que hice fue irme a la configuración del BIOS, en la sección del HDD SATA y le das que utilicé OLD SATA CONTROLLER.

Curiosamente con Ubuntu ni con Mandriva no me daba ese problema.

Saludos,

Zenón Monge - zmonge at gmail.com

No sé si el instalador de DEBIAN contiene algún kernel con soporte para SCSI, que es como Linux reconoce los discos SATA.

Acá http://www.debian.org/releases/stable/i386/ch05s01.html.en esta la forma de revisar las opciones de arranque y allí debería estar listada la opción para arrancar con soporte a dispositivos SCSI.

--
Saludos,

Zenón Monge


Eric de la Goublaye de Menorval - menorval at gmail.com

¿Porqué no pruebas con la última versión de DEBIAN? --> Debian GNU/Linux 4.0r3

http://www.debian.org/releases/


Y por supuesto no faltaron las respuestas cómicas:


Richard Mena - rmendoza85 at gmail.com

Instala SUSE hombre!
Ya trae soporte para discos SATA jejeje...


Llegando al final del hilo de la discusión decía:

Rodrigo Castro - rodrigo.b.castro at gmail.com

Denis envió la pregunta a múltiples listas, parece que ya en una le respondieron en una de ellas y arregló el problema:

> Gracias a todos, con la instrucción
> install pci=nomsi (en LILO)
>funcionó a la perfección! Gracias!

Denis Torres - denisjtorresg at gmail.com

En efecto Rodrigo, esa instrucción es la que me funcionó, pero es bueno aprender las otras experiencias que han adquirido los demás compañeros de la lista, gracias a todos!

No me cabe duda que la comunidad de DEBIAN (en cualquier parte del mundo) es de las más activas y experimentadas, por eso no me cambio a otra distro!

En efecto estoy inscrito en varias listas, me gusta aprender de la experiencia compartida de los demás!

Saludos desde Nicaragua!

Conclusión personal:

Con este artículo, más que explicar como "Instalar Debian Etch en un PC DELL Optiplex 320 con Disco Duro SATA", intento demostrar que el hecho de participar en las listas GUL, es ampliamente beneficioso en cuanto que toda una comunidad de experiencias se unen, para dar un completo soporte a todos los que tenemos dudas o problemas.

Gracias a todos los amigos de:

* Grupo de usuarios de Debian de Nicaragua:
** debian-ni@googlegroups.com
* Grupo de usuarios de Debian de Costa Rica:
** debian-user-cr@cr.debian.net
* Grupo de usuarios de Debian de El Salvador:
** debian-sv@lists.debian.org.sv
* Grupo de usuarios de Linux de Nicaragua:
** gul-nic@linux.org.ni
* Red Costarricense de Software Libre:
** csl-tec@softwarelibrecr.org
* Grupo de usuarios de Linux de Costa Rica:
** gulcr@listas.linux.or.cr

martes, marzo 04, 2008

Validar números de cédulas de Nicaragua con JavaScript

A continuación comparto un pequeño código JavaScript para validar si una cadena de texto es un número de cédula válido en Nicaragua.

Siéntanse en la libertad de usarlo, modificarlo, copiarlo o compartirlo. Se ha liberado como L-GPL3.

http://sites.google.com/site/denisjtorresg/validar_cedula_js.zip

Ver versión para Java.

viernes, febrero 22, 2008

The last lunar eclipse in this decade

Versión en Español

Last Wednesday February 20, 2008, a lot of Nicaraguans got an amazing "sky show", when Sun, Moon and the planet where We walk on every day, the Earth got together in a perfect dance.

Early in the afternoon in Granda, Nicaragua (my point of view), I didn't see the Moon by cause of a cloudy sky, about 7:30 PM it started to rain, so I decided to install in my computer this program: Stellarium, because I didn't want to lose the eclipse by cause of the bad weather.

Stellarium is a free (libre) software, you can download it from its official home page: http://www.stellarium.org/, it works on Windows, Linux and Mac OS X. If you have played any 3D game, you will learn easy how to use it.

If you didn't see the eclipse, don't worry, at same time that Stellarium can send you around the world, it can work like a "time machine", that means you can "go back in time" and see the eclipse step by step, in virtual form.

Fortunately in Granada, near to 8:20 PM, the sky cleared and the rain stopped, and I could see in the real world the last lunar eclipse in this decade!.

By the way, I realized through this great software, Stellarium, that the shining star near to the Moon was not a star, but it really was Saturn planet, I learned it thanks to Stellarium, you can see about it on next image.















Please excuse my english, english is not my first language, but I'm learning.
Linux Tour Nicaragua 2008 Begins

Versión en Español

Linux Tour is an initiative from the community of GNU/Linux users in Nicaragua, to promote the usage of free (libre) software and open source in our country.

This next 22 friday at 3:00 PM, will start the Linux Tour 2008 in the main auditorium of the Universidad de Ciencias Comerciales (UCC).

If you want to know more about it, you can visit the official site: http://www.linuxtour.org




Please excuse my english, english is not my first language.
Inicia el Linux Tour 2008 - Nicaragua

English Versión

El Linux Tour es una iniciativa de la comunidad de usuarios GNU/Linux de Nicaragua destinada a promover el uso de alternativas libres y de código abierto en nuestro país.

El próximo viernes 22 de febrero a las 3:00 PM, dará inicio el Linux Tour 2008 en el auditorio mayor de la Universidad de Ciencias Comerciales (UCC).

Para mayor información visitar el sitio oficial: http://www.linuxtour.org

jueves, febrero 21, 2008

El último eclipse lunar de esta década

English Version

El día de ayer, Miércoles 20 de Febrero del año 2008, muchos Nicaragüenses disfrutamos el maravilloso espectáculo realizado en el teatro celestial, donde las "estrellas" nos fascinaron, en una perfecta danza ejecutada entre el Sol, la Luna, y el planeta que pisamos a diario: la Tierra. Según las noticias era el último eclipse lunar de esta década.

Al inicio, en Granada Nicaragua (mi punto de observación), un cielo medio nublado, no dejaba contemplar completamente la luna, luego como a eso de las 7:30 PM de forma repentina los cielos dejaron caer una lluvia que tardó aproximadamente 20 minutos, por lo cual se me ocurrió instalar este programa en mi computadora: Stellarium, para no perderme por el mal clima el eclipse que estaba pronto a iniciar.

Stellarium es sofwtare libre, pueden descargarlo desde su sitio oficial en: http://www.stellarium.org/, hay versiones para Windows, Linux, y Mac OS X. Si han jugado cualquier juego 3D, no se les va a hacer complicado empezar a utilizarlo.

Si se perdieron del eclipse, no se preocupen Stellarium no sólo puede llevarlos a ver el cielo desde distintos lugares del mundo, sino también permite viajar en el tiempo (fecha y hora), con lo cual podrían "volver al pasado" y apreciar, de forma virtual, el eclipse paso a paso.

En Granada, como a eso de las 8:20 PM, por suerte las nubes se fueron, la lluvia no siguió, y puede apreciar en vivo y a todo color (en el mundo real) del último eclipse lunar de esta década!.

Por cierto ayer me dí cuenta mediante este excelente programa Stellarium, que la "estrella" brillante que estaba un poco abajo de la luna no era una estrella, sino que era el planeta Saturno, está información también la pude obtener gracias a Stellarium, a como se aprecia en la imagen a continuación.

viernes, febrero 15, 2008

Run JavaScript code, step by step using Firebug

Versión en Español

Before I know about Firebug, to debug javascript code was very complicated for me, I had to add a lot of 'alert' sentences in each point that I wanted to check, but later I found Firebug.

Firebug show us each javascript error code, give us a brief description about each error and the best part is that let us run step by step the javscript code, at same time we can watch each variable value, create break points, and follow the secuence of code.

If you want to start using Firebug, you should download:

Firefox
Firebug

Fast How To:

1- Open Firebug



2- Activate "Script" tab, then select one file to debug, from "Inspect" list.



3- Put break points on the javascript source



4- Trigger off the event to start the javascript code execution, then you can use the watch window


Please excuse my english, english is not my first language.

jueves, febrero 14, 2008

Ejecutar código JavaScript paso a paso con Firebug

English Version

Antes de conocer Firebug, corregir un error en un código javascript me era complicado, tenía que agregar muchas sentencias 'alert' en distintos lugares del código, para descubrir donde estaba el error que buscaba, pero después encontré Firebug y todo cambio.

Firebug encuentra y enumera los errores de código javascript, brinda una descripción de cada error y lo mejor de todo es que permite ejecutemos paso a paso el código, inspeccionar los valores de las variables, crear 'break points', y seguir la secuencia del código javascript paso a paso.

Herramientas Necesarias:

Descargar Firefox
Descargar Firebug

Pasos Rápidos:

1- Abrir Firebug



2- Activar la ficha "Script" y seleccionar el archivo correspondiente en el selector "Inspect"



3- Ubicar los break points en el código javascript



4- Disparar el evento que ejecute el código y usar los controles de ejecución y el inspector de variables

miércoles, febrero 13, 2008

Validar números de cédulas de Nicaragua con Java

Validar números de cédulas de Nicaragua con Java

A continuación comparto un pequeño código Java para validar si una cadena de texto es un número de cédula válido en Nicaragua.

Siéntanse en la libertad de usarlo, modificarlo, copiarlo o compartirlo. Se ha liberado como L-GPL3 y software de dominio público.

Esta es la versión del 10 de agosto del 2013. Con el aporte de Filgrados Correos.

http://sites.google.com/site/denisjtorresg/cedula.zip

Ver versión para JavaScript.


package denisjtorresg.info;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JOptionPane;

/**
 * Validador de Número de Cédula Nicaraguense
* Este programa es software libre: usted lo puede redistribuir y/o modificar * bajo los términos de la GPL version 3 y/o software de dominio público.
* * blog.denisjtorresg.info * * Con colaboración de: * - Filgrados Correos. *
* * @autor: denisjtorresg@gmail.com * @version: 10/08/2013 * * */ public class ValidarCedula { private final String LETRAS = "ABCDEFGHJKLMNPQRSTUVWXY"; private String cedula = null; /** * Para Pruebas * @param args */ public static void main(String[] args){ String tempo = null; boolean gui = false; ValidarCedula cedula = new ValidarCedula(); if(args.length==0){ cedula.setCedula(JOptionPane.showInputDialog( "Indique la cédula a validar" )); gui = true; } else cedula.setCedula(args[0]); tempo = "Cédula a Validar: " + cedula.getCedula() + "\n"; tempo+= "Prefijo a Validar: " + cedula.getPrefijoCedula()+ "\n"; tempo+= "Fecha a Validar: " + cedula.getFechaCedula()+ "\n"; tempo+= "Sufijo a Validar: " + cedula.getSufijoCedula()+ "\n"; tempo+= "Letra a Validar: " + cedula.getLetraCedula()+ "\n"; tempo+= "¿Es Cédula Válida?: " + (cedula.isCedulaValida()?"SI":"NO")+ "\n"; tempo+= "¿Es Prefijo Válido?: " + (cedula.isPrefijoValido()?"SI":"NO")+ "\n"; tempo+= "¿Es Fecha Válida?: " + (cedula.isFechaValida()?"SI":"NO")+ "\n"; tempo+= "¿Es Sufijo Válido?: " + (cedula.isSufijoValido()?"SI":"NO")+ "\n"; tempo+= "¿Es Letra Válida?: " + (cedula.isLetraValida()?"SI":"NO")+ "\n"; tempo+= "La letra esperada es: " + cedula.calcularLetra() + "\n"; if(gui) JOptionPane.showMessageDialog(null,tempo); else System.out.println(tempo); } /** * Retorna true si la cédula es válida * false en caso contrario * * @return */ public boolean isCedulaValida(){ if(!isPrefijoValido()) return false; if(!isFechaValida()) return false; if(!isSufijoValido()) return false; if(!isLetraValida()) return false; return true; } /** * Retorna true si el prefijo de la cédula es válida * false en caso contrario * * @return */ public boolean isPrefijoValido(){ String prefijo = this.getPrefijoCedula(); if(prefijo==null) return false; Pattern p = Pattern.compile("^[0-9]{3}$"); Matcher m = p.matcher(prefijo); if (!m.find()) return false; return true; } /** * Retorna true si la fecha de la cédula es válida * false en caso contrario * * @return */ public boolean isFechaValida(){ String fecha = this.getFechaCedula(); if(fecha == null) return false; Pattern p = Pattern.compile("^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[012])([0-9]{2})$"); Matcher m = p.matcher(fecha); if (!m.find()) return false; // verificar si la fecha existe en el calendario try { DateFormat df = new SimpleDateFormat("ddMMyy"); if(!fecha.equals(df.format(df.parse(fecha)))){ return false; } } catch (ParseException ex) { return false; } return true; } /** * Retorna true si el sufijo de la cédula es válida * false en caso contrario * * @return */ public boolean isSufijoValido(){ String sufijo = this.getSufijoCedula(); if(sufijo == null) return false; Pattern p = Pattern.compile("^[0-9]{4}[A-Y]$"); Matcher m = p.matcher(sufijo); if (!m.find()) return false; return true; } /** * Retorna true si la letra de la cédula es válida * false en caso contrario * * @return */ public boolean isLetraValida(){ String letraValida = null; String letra = this.getLetraCedula(); if(letra == null) return false; letraValida = String.valueOf(this.calcularLetra()); return letraValida.equals(letra); } /** * Retorna un entero que representa la posición en la cadena LETRAS * de la letra final de una cédula * * @return */ public int getPosicionLetra(){ int posicionLetra = 0; String cedulaSinLetra = this.getCedulaSinLetra(); long numeroSinLetra = 0; if(cedulaSinLetra == null) return -1; try{ numeroSinLetra = Long.parseLong(cedulaSinLetra); }catch(NumberFormatException e){ return -1; } posicionLetra = (int)(numeroSinLetra - Math.floor((double)numeroSinLetra/23.0) * 23); return posicionLetra; } /** * * Calcular la letra al final de la cédula nicaraguense. *
* Basado en el trabajo de: Arnoldo Suarez Bonilla - arsubo@yahoo.es *
* http://espanol.groups.yahoo.com/group/ptic-nic/message/873 * Mie, 6 de Feb, 2008 2:39 pm *
* Es correcto, los ultimos 4 numeros de la cédula son un consecutivo de las personas que nacen en la misma fecha y municipio. * La letra se calcula con el siguiente algoritmo (yo se los envío en SQL). *
*
     * declare  @cedula      varchar(20),
     *          @val         numeric(13, 0),
     *          @letra       char(1),
     *          @Letras      varchar(20)
     *          
     *          select @Letras = 'ABCDEFGHJKLMNPQRSTUVWXY'
     *          select @cedula = '0012510750012' --PARTE NUMERICA DE LA CEDULA SIN GUIONES
     *          --CALCULO DE LA LETRA DE LA CEDULA   
     *          select @val = convert(numeric(13, 0), @cedula) - floor(convert(numeric(13, 0), @cedula) / 23) * 23
     *          select @letra = SUBSTRING(@Letras, @val + 1, 1)
     *          select @letra
     * 
* @return Letra válida de cédula dada */ public char calcularLetra(){ int posicionLetra = getPosicionLetra(); if(posicionLetra <0 posicionletra="">= LETRAS.length()) return '?'; return LETRAS.charAt(posicionLetra); } /** * Fiajr el Número de Cédula * * @param cedula Número de Cédula con o sin guiones */ public void setCedula(String cedula) { cedula = cedula.trim().replaceAll("-",""); if(cedula == null || cedula.length() != 14) this.cedula = null; else this.cedula = cedula.trim().replaceAll("-","").toUpperCase(); } /** * Retorna el Número de Cédula * @return */ public String getCedula() { return cedula; } /** * Retorna el prefijo de la cédula * @return */ public String getPrefijoCedula(){ if(cedula!=null) return cedula.substring(0,3); else return null; } /** * Retorna la fecha en la cédula * @return */ public String getFechaCedula(){ if(cedula!=null) return cedula.substring(3,9); else return null; } /** * Retorna el sufijo en la cédula * @return */ public String getSufijoCedula(){ if(cedula!=null) return cedula.substring(9,14); else return null; } /** * Retorna la letra de la cédula * @return */ public String getLetraCedula(){ if(cedula!=null) return cedula.substring(13,14); else return null; } /** * Retorna la cédula sin la letra de validación * @return */ public String getCedulaSinLetra(){ if(cedula!=null) return cedula.substring(0,13); else return null; } }

jueves, junio 07, 2007