lunes, 27 de febrero de 2017

Modificacion de archivos forma interactiva

// Leee y modifica un archivo jpg // Interfaz interactiva // sketch_bytes_3_imagen_lista2 // Ing. francisco Villavicencio public PImage img; public PImage imgsalida; public byte b[]; void setup() { size (1800,1000); selectInput("Select a file to process:", "fileSelected"); } void draw() { } void fileSelected(File selection) { if (selection == null) { println("Window was closed or the user hit cancel."); } else { b = loadBytes(selection.getAbsolutePath()); println("Archivo inicial " + selection.getAbsolutePath() + " " + b.length); bytes (); } } void bytes () { // Open a file and read its binary data // byte b[] = loadBytes("uno.jpg"); // Print each value, from 0 to 255 for (int i = 0; i < 20; i++) { int index = int(random(b.length)); b[index] = byte (80); } salida (); } void salida (){ // Writes the bytes to a file String a = "dos2.jpg"; saveBytes(a, b); println ("Archivo final " + a + " " + b.length); } import processing.video.*; public PImage imgsalida; public byte b[]; // Leee y modifica un archivo video // sketch_bytes_6_video_1 // Interfaz interactiva // Ing. francisco Villavicencio void setup() { size(720, 402); selectInput("Select a file to process:", "fileSelected"); } void draw() { } void fileSelected(File selection) { if (selection == null) { println("Window was closed or the user hit cancel."); } else { b = loadBytes(selection.getAbsolutePath()); println("Archivo inicial " + selection.getAbsolutePath() + " " + b.length); bytes (); } } void bytes () { // Open a file and read its binary data for (int i = 0; i < 200; i++) { int index = int(random(b.length)); b[index] = byte (100); } salida (); } void salida () { // Writes the bytes to a file String a = "2.MOV"; saveBytes(a, b); println ("Archivo final " + a + " " + b.length); }

Modificaores de archivos jpg y mov.

Adjunto consta un archivo con los programas en processing que modifican archivos jpg (gráficos) y mov (video). Se requiere una interfaz interactiva que permita elegir el archivo de una lista desplegable. // Leee y modifica un archivo jpg // sketch_image // Ing. francisco Villavicencio PImage img; PImage imgsalida; byte b[]; byte[] nums; int p, q; // valores que pueden ser aleatoreos void setup() { size (1800,1000); img = loadImage("uno.jpg"); b = loadBytes("uno.jpg"); bytes (b); imgsalida = loadImage ("dos2.jpg"); } void draw() { image(img, 0, 0, width, height); // bytes (b); image(imgsalida, 300, 300, width, height); } void bytes (byte b[]) { // Open a file and read its binary data // byte b[] = loadBytes("uno.jpg"); // Print each value, from 0 to 255 for (int i = 0; i < 20; i++) { int index = int(random(b.length)); b[index] = byte (80); } salida (b); println ("longitud " + b.length); } void salida (byte b[]){ // Writes the bytes to a file String a = "dos2.jpg"; saveBytes(a, b); } // Leee y modifica un archivo jpg // sketch_video // Ing. francisco Villavicencio Movie theMov; void setup() { size(720, 402); frameRate(30); theMov = new Movie(this, "1.MOV"); theMov.frameRate(30); /* only use 1 of the following options */ // theMov.play(); //plays the movie once //theMov.loop(); //plays the movie over and over b = loadBytes("1.MOV"); // theMov = new Movie(this, "2.MOV"); bytes (b); } void draw() { image(theMov, 0, 0, width, height); } void bytes (byte b[]) { // Open a file and read its binary data // byte b[] = loadBytes("uno.jpg"); for (int i = 0; i < 200; i++) { int index = int(random(b.length)); b[index] = byte (100); } salida (b); println ("longitud " + b.length); } void salida (byte b[]) { // Writes the bytes to a file String a = "2.MOV"; saveBytes(a, b); }

sábado, 1 de marzo de 2014

Conexion con postgres – java – netbeans Antes de ejecutar el programa se debe incluir la librería PostgresSQLJDBCDriver. package javapostgres; /** * * @author Francisco Villavicencio fvillavi@yahoo.com, www.fvillavi.blogspot.com */ import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; public class JavaPostgres { public static Connection Postgres(){ Connection pgConn = null; try { Class.forName("org.postgresql.Driver"); // usuario: postgres, password: xxxxxxxx pgConn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres","xxxxxxxx"); } catch(ClassNotFoundException e) { System.out.print("Class Not Found : " + e.getMessage()); } catch (SQLException exp) { System.out.print("SQL Exception: " + exp.getMessage()); } return pgConn; } public static void main(String[] args) { Connection con = Postgres (); try { System.out.println(con.getCatalog().toString()); } catch (SQLException e){ System.out.println("SQL Exception: " + e.getMessage()); } } }

domingo, 5 de febrero de 2012

Instalacion de Oracle 11gR2 en Fedora 16

INSTALACION DE ORACLE 11gR2 EN LINUX FEDORA (16)

Paso 1.- Descargue la versión de Oracle adecuada para su máquina (32 o 64 bits)

Paso 2.- Descomprima el software.

unzip linux.x32_11gR2_database_1of2.zip
unzip linux.x32_11gR2_database_2of2.zip

Obtendrá un directorio con el nombre 'database', allí se encuentran los instaladores ya descomprimidos.

Los siguientes pasos deberá realizarlos como root.

Paso 3.- Verifique el archivo /etc/hosts. Debe contener una línea con



Por ejemplo:

vi /etc/hosts

127.0.0.1 localhost Sucursal_Quito

Paso 4.- Verifique el contenido del archivo "/etc/sysctl.conf". Añada o corrija los parámetros que no concuerdan.

Puede verificar con

/sbin/sysctl -a | grep

Si es del caso

vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586

Si efectuó algún cambio, corra el utilitario

/sbin/sysctl -p
para que se actualicen los valores.
Paso 5.- Aañada las sigjuientes lineas al archivo "/etc/security/limits.conf"

vi /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

Paso 6.- Añada la siguiente línea al archivo "/etc/pam.d/login" si aun no consta.

vi /etc/pam.d/login

session required pam_limits.so

Paso 7.- Desabilite el Firewall y el SElinux.

Puede optar por modificar la entrada el archivo "/etc/selinux/config"

vi /etc/selinux/config

SELINUX=disabled

Paso 8.- Instale los siguientes paquetes, si aun no lo están

yum install binutils-2.*
yum install compat-libstdc++-*
yum install elfutils-libelf*
yum install elfutils-libelf-devel*
yum install elfutils-libelf-devel-static*
yum install gcc-4*
yum install glibc-2*
yum install glibc-common-2.5
yum install glibc-devel-2.5
yum install glibc-headers-2.5
yum install kernel-headers-*
yum install libaio-0*
yum install libaio-devel-0*
yum install libgcc-*
yum install libgomp-*
yum install libstdc++*
yum install libstdc++-devel-4*
yum install make-3.*
yum install sysstat-*
yum install unixODBC-2.*
yum install unixODBC-devel-2.*
Descargue el paquete pdksh-5.2.14-1.i386.rpm e instale
yum install pdksh-5.2.14-1.i386.rpm
Paso 9.- Cree los nuevos usuarios y grupos

groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin

useradd -g oinstall -G dba,oper,asmadmin oracle
passwd oracle

Paso 10.- Cree los siguientes directorios donde será instalado el software

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

Paso 11.- Ejecute la instrucción

xhost +

donde el nombre que consta en el paso 3.-

xhost +Sucursal_Quito

Paso 12.- Haga una copia de respaldo del archivo "/etc/redhat-release"

cp /etc/redhat-release /etc/redhat-release_old

Edite el archivo "/etc/redhat-release" y reemplace el contenido por el nuevo nombre

/etc/redhat-release

redhat release 5

Paso 13.- Loguéese como usuario oracle y añada las siguientes líneas al archivo ".bash_profile"
Acualice los valores que sean necesarios

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
# ORACLE_HOSTNAME es el nombre de la máquina que está en el paso 3.-
ORACLE_HOSTNAME=Sucursal_Quito; export ORACLE_HOSTNAME
# ORACLE_UNQNAME será el nombre de la base da datos o SID
ORACLE_UNQNAME=QUITO; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
# Igual que ORACLE_UNQNAME o SID
ORACLE_SID=QUITO; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

Desconéctese como usuario oracle y conéctese nuevamente (Para que tenga efecto el .bash_profile)

Paso 14.- como usuaario oracle vaya al directorio donde se encuentra la carpeta "database" y corra el programa

./runInstaller

Siga las instrucciones que se den. Ignore cualquier software faltante.

POST INSTALACION.

Paso 1.- (Opcional) Si desea puede restaurar el valor inicial del archivo "/etc/redhat-release"
a partir del archivo de respaldo /etc/redhat-release_old

Paso 2.- Edite el archivo "/etc/oratab" y campie el switch de arranque por 'Y'.

Quito:/u01/app/oracle/product/11.2.0/dbhome_1:Y

Ha finalizado la instalación. Es bueno rearrancar el Fedora para que que los cambios tengan efecto.


Felicidades.

sábado, 26 de febrero de 2011

Syllabus de Inteligencia de negocios

FACULTAD DE INGENIERIA DE SISTEMAS
Profesor: Ing. Francisco Villavicencio

INTELIGENCIA DE NEGOCIOS

Prerequisitos: Bases de datos distribuidas


Objetivos del curso:
De conocimientos: Construir un modelo de datos de un datawarehouse utilizando herramientas de análisis en línea y de mineo de datospara extraer información gerencial de DWH.
De destrezas: Aplicar técnicas para toma de decisiones gerenciales
De valores y actitudes: Fomentar la solidaridad, la responsabilidad, la ética profesional

Contenidos:

Capítulo 1: FUNDAMENTOS DE INTELIGENCIA DE NEGOCIOS
1.1 Definiciones
1.2 Ciclo de vida de inteligencia de negocios
1.3 Herramientas BI
Capítulo 2: CONCEPTOS DE DATAWAREHOUSING
2.1 Introducción a las basees de datos multidimenionales
2.2 Evolución, beneficios y problemas de los datawarehouses
2.3 Arquitectura de un datawarehouse
2.4 Data marts
Capítulo 3: DISEÑO DE UN DATAWAREHOUSE
3.1 Modelamiento dimensional. Modelos de copo de nieve, estrella e híbrido.
3.2 Metodología para el diseño de un DWH
3.3 Valoración de la dimensionalidad de un DWH
3.4 Casos de estudio
Capítulo 4: HERRAMIENTAS ANALITICAS EN LINEA
4.1 Procesamiento analítico en línea
4.2 Representación de datos multidimensionales
4.3 Herramientas Olap: Molap, Rolap, Holap, Dolap
4.4 Extensiones Olap para SQL estándar
Capítulo 5: MINEO DE DATOS
5.1 Conceptos de mineo de datos
5.2 Técnicas empleadas en mineo de datos
5.3 herramientas de Mineo de datos

Metodología: Clases teóricas acompañadas de prácticas de laboratorio

Sistema de calificaciones:

Primer bimestre:

Pruebas de clase, trabajos 60 %
Examen bimestral 40 %

Segundo bimestre

Pruebas de clase, trabajos 30 %
Proyecto 30 %
Examen bimestral 40 %

Bibliografía:

Texto guía: Thomas M. Connoly, Database systems, 4th Ed., Addison Wesley, 2005.

Los alumnos deberán tener a mano copias de los capítulos 31, 32, 33, 34.

Soporte:
Mathias Jerke, fundamentals of Datawarehouses
Ralf Kimball, The Datawarehouse toolkid
Documenetación de Internet.

Nota: Lo alumnos deberan imprimir este documento y llevarlo a la primera sesión de clases junto con una copia del Texto Guía (El original está disponible en la Biblioteca de la Facultad).

Syllabus de Bases de datos distribuidas

Lea e imprima el contenido del Syllabus de su materia. Lleve el impreso a la primera sesión.

ASIGNATURA: Bases de datos distribuidas

1. DATOS GENERALES

Horas/Semana: 4, Horas/Semestre: 64, Créditos: 4

CODIGO: SIG534-ISI734

PRERREQUISITOS: Bases de datos (ISI644).

2. DESCRIPCION GENRAL DEL CURSO.

Conceptos generales de distribución:
Arquitectura de los sistemas de bases de datos distribuidas.
Diseño de una base de datos distribuida.
Control semántico de datos
Procesamiento de consultas.
Procesamiento de transacciones.
Confiabilidad en un DDBMS.

3. OBJETIVO: El alumno conocerá los conceptos relacionados con los sistemas de bases de datos distribuidas y será capaz de aplicarlos en la implementación de casos reales.

4. ESQUEMA CAPITULAR.

Conceptos generales de distribución:
- Procesamiento distribuido de datos
- Sistema distribuido de base de datos (DDBMS)
- Retos de los DDBMS
- Areas conflictivas.
Arquitectura de los sistemas de bases de datos distribuidos.
- Estándares en los DBMS
- Modelos arquitectónicos de DDBMS
- Alternativas para directorios de un DDBMS
Diseño de una base de datos distribuida.
- Alternativas de diseño
- Formas de distribución
- Ubicación de fragmentos
Control semántico de datos
- Administración de vistas
- Seguridad de los datos
- Control de integridad
Procesamiento de consultas.
- Objetivos del procesamiento de consultas
- Características de los procesadores de consultas
- Descomposición de consultas
- Reducción de expresiones
Procesamiento de transacciones.
- Propiedades de una transacción
- Tipos de transacciones
- Algoritmos de control de concurrencia.
Confiabilidad en un DDBMS.
- Medidas de confiabilidad
- Fallas y tolerancia

5. METODOLOGIA.

Clases teóricas complementadas con laboratorios individuales para la implementación de casos de bases de datos distribuidas.
Se utilizarán dos servidores de bases de datos ubicados en una red, accesibles desde clientes externos.
La actividad de clase incluye el diseño de Bdd y resolución de problemas.

6. EVALUACION:

Primer bimestre:
Examen bimestral 40 %
Pruebas, deberes, consultas 60 %

Segundo bimestre:
Examen bimestral 40 %
Pruebas 30 %
Proyecto final 30 %


7. FUENTES DE INFORMACION.

Texto guía: Principles of distributed database systems, M. Tamer Ozsu – Patrick Valduriez, Prentice Hall, Tercera edición 2011.

Los alumnos deben tener a mano los capítulos 1, 2, 4, 5, 6, 7, 10 y 12.

ORACLE. Replication. 1997.
ORACLE. Distributed database systems

Observación: El texto se encuentra en la Copiadora de Sistemas (5to piso).

sábado, 18 de septiembre de 2010

Migrar de FOXPRO a Postgres

Hola amigos:

Tengo una solución para migrar datos desde FoxPro25 a Postgres. l tengo implenetada en Visual Studio 10.
La lógica es muy simple y se lo realiza a través de ODBC en ambos lados.

Nada delotro mundo, se puede programar igualmente en C, C++, en PHP o en cualquier lenguaje que disponda de un ODBC adecuado.

He migrado unos 200.000 registros en pocos minutos, desde Fox en Windows hasta Postgres en Linux Fedora o Linux Ubuntu server.