Archivo

Archivo para la Categoría "Software Libre"

10 Proyectos ERP Open Source

Diciembre 16, 2009 5 comentarios

Lo que existe de sobra en el mundo Open Source son las aplicaciones ERP, seguramente no todos presenten los requerimientos de un tipo de negocio en particular, pero tienen la ventaja de que estos puedan ser adaptados a sus necesidades. Aqui una lista de alguno de ellos:

Vtiger CRM:

Compiere ERP + CRM Business Solution:

Openbravo ERP:


ADempiere ERP Business Suite:

OpenTaps open source ERP+CRM:

TUTOS:

PostBooks ERP, accounting, CRM by xTuple:

OrangeHRM – Human Resource Management:

WebERP:

OpenCRX – Enterprise Class CRM:

Diseño de Mapas Mentales con XMind

Diciembre 16, 2009 1 Comentario

XMind es un proyecto open source para diseñar diagramas de flujos, mapas conceptuales, mapas mentales, etc, además está disponible para varios sistemas operativos, incluyendo linux y algunas distribuciones en particular como debian y ubuntu.

Puede consultar más acerca de XMind en su web oficial, como también puede descargar el programa desde el mismo sitio.

XMind está licenciado bajo  Eclipse Public License v1.0 (EPL), que es respaldado por Eclipse , y  GNU Lesser General Public License v3 (LGPL)

Descargar: Aplicación XMind:

Descargar Código Fuente: XMind @ Google Code

Sun Microsystems – Virtual Conference 2009

Noviembre 19, 2009 Deja un comentario

Me he enterado por medio de un  correo de invitación para la primera conferencia virtual en vivo organizado por Sun MIcrosystems en Latinoamérica con el objetivo de presentar novedades en cuanto a Soluciones de TI del Futuro. Es una buena oportunidad para conocer de cerca aunque virtualmente a personas y empresas interesadas en las soluciones de Sun.

Fecha: Miércoles 25.Noviembre.2009
México D.F. – 9:00 am
Bogotá, Colombia – 10:00 am
Buenos Aires, Argentina – 12:00 pm
Caracas, Venezuela – 10:30 am
Santiago, Chile – 12:00 pm
Lugar: Internet
Registro: www.sunlatam.com/virtualconference

La localidad está muy bien organizada, han implementado un centro de chat privado, estará disponible todo el material de las ponencias, existe un módulo para buscar personas, está disponible toda la agenda, y mucho más, parece ser que este evento promete.

La Agenda
Ponencia Hora
Visión Tecnológica Sun Microsystems 9:00 am
Sun y Oracle presentan: Exadata v2 – La primer Maquina de Base de Datos OLTP. 9:15 am
Soluciones de Virtualización para Centros de Datos Eficientes 10:00 am
Descanso 11:00 am
La Nueva Empresa: Cloud Computing & Open Source 11:20 am
Open Storage: Infraestructura de Almacenamiento a Bajo Costo 12:20 pm
Categorías:Alternativas Libres

Imágenes APNG v.s. GIF

Noviembre 16, 2009 9 comentarios

¿Quién nunca ha usado un GIF?, pues éste formato que suele ser construido a base de diversas capas de imágenes para posteriormente ser alternadas y simular movimiento puede ser también creado en un formato llamado APNG (animated png),

Los APNG tratan de no reducir la calidad de imágen, aunque suele ser  más lento que los GIF.

Logo Firefox GIF Logo Firefox APNG

GIF(61.7 KB)              APNG (599 KB)

Ésta es una comparación que tomé de grapitix.com , pues cabe rescatar que la diferencia en cuanto al tamaño es grande.

Auí están algunas de las  características mencionadas en:animatedpng:

  • Archivos PNG animados, que mantienen la compatibilidad con versiones anteriores no animada con archivos PNG.
  • Soporte para la transparencia 8-bits y 24 bits de imágenes.
  • Menor tamaño de la biblioteca

Linux: Drivers para Impresoras HP

Noviembre 12, 2009 Deja un comentario

Buscando los driver para una impresosa HP para Linuz/Debian, encontré en la página de HP un paquete de instalación de drivers. Según las especificaciones, HPLIP soporta 1.949 modelos de impresoras HP.

  • SUSE Linux (10.3, 11.0, 11, 11.1)
  • Fedora (9, 9.0, 10, 10.0, 11.0, 11)
  • Ubuntu (8.04, 8.04.1, 8.04.2, 8.10, 9.04, 9.10)
  • Debian (4.0, 4.0r0, 4.0r1, 5.0, 5.0.1, 5.0.2, lenny, lenny/sid, stable, testing)

driver para impresoras hp

HPLIP es un binario de instalación automática. Aunque suene extraño, la instalación se debe realizar en modo no-superusuario, eso si, en  el momento de la instalación habrá una petición de confirmación del password del root.

$ chmod +x hplip-3.9.10.run
$ ./hplip-3.9.10.run

A continuación solo habrá que seguir algunas instrucciones en la consola.

No estoy seguro si funciona para todas las impresoras HP, pero podrían probarlo.

Categorías:Drivers, Linux, Software Libre

Linux: Consultar dependencias con Debtree

Noviembre 11, 2009 2 comentarios

A menudo solía tener problemas de dependencias con las librerias de linux, incluso, cuando no contaba con un ordenador con conexión a internet  era muy agobiante llevar a cabo las instalaciones de paquetes que descargaba desde alguna cabina de internet, peor aún, cuando no sabía con exactitud las dependencias de ciertos paquetes.

Hoy existe un paquete llamado debtree que nos facilita conocer las dependencias, y además es posible obtenerlo de manera gráfica, sobre todo puede ser útil para aquellos que no tienen muchos conocimientos relacionado con herramientas para trazar dependencias en linux.

El paquete puede ser descargado desde: packages.debian.org

Instalé la versión para squeeze (testing)sin ningún problema en lenny.

Antes que nada, deben asegurarse de tener instalados: perl, libapt-pkg-perl, ucf, dctrl-tools

$aptitude install perl libapt-pkg-perl ucf dctrl-tools

Ahora instalar debtree:

$dpkg -i debtree_1.0.2_all.deb

También es necesario instalar algo complementario que nos permitirá capturar el esquema de dependencias en una imagen:

$aptitude install graphviz

Ejemplo para armar el esquema de dependencias de bash:

$debtree bash  > bash.dot
$dot -T png -o bash.png bash.dot

Esto me generá un archivo bash.png en el directorio donde fue ejecutado:

dependencias de bash

Pueden consultar mas info en: alioth.debian.org

PostgreSQL: Sentencias DML

Noviembre 5, 2009 1 Comentario

El lenguaje de Manipulación de Datos (Data Manipulation Language – DML) sirve para llevar a cabo las transacciones en las base de datos, entiéndase por transacciones los procesos de insersión, actualización, eliminación, selección.

Podemos clasificar a estas sentencias como: INSERT, UPDATE, DELETE, SELECT.

Usaremos la base de datos DBAdmision estructurado en el post de Sentencias DDL para realizar las operaciones antes mencionadas.

En este ejemplo insertaremos, actualizaremos y eliminaremos datos de Admision.Modalidad , de la base de datos generada en el post de Sentencias DDL.

--1) LISTAR DATOS DE Admision.Modalidad
SELECT IDModalidad, Modalidad FROM Admision.Modalidad;
--2) INSERTAR DATOS EN Admision.Modalidad
INSERT INTO Admision.Modalidad(Modalidad)
VALUES('Exámen Ordinario'); --El campo IDModalidad es secuencial
SELECT * FROM Admision.Modalidad; --Comprobar Inserción
--3) ACTUALIZAR DATOS EN Admision.Modalidad
UPDATE Admision.Modalidad SET Modalidad='Ordinario'
WHERE IDModalidad='1';
SELECT * FROM Admision.Modalidad; --Comprobar Actualización
--4) ELIMINAR DATOS EN Admision.Modalidad
DELETE FROM Admision.Modalidad
WHERE IDModalidad='1';
SELECT * FROM Admision.Modalidad; --Comprobar Eliminación
Descargar Script: PostgreSQL Sentencias DML.sql

Aquí les dejo el Script DML completo que insertará los datos correspondientes en cada tabla.

TOPIC: INSERT,UPDATE,DELETE,SELECT

RELACIONADOS:

PostgreSQL: Sentencias DDL (1)

Noviembre 3, 2009 3 comentarios

El Lenguaje de Definición de Datos  (Data Definition LanguageDDL) , sirve para modificar la estructura de los objetos en una base de datos.

Estas sentencias básicamente son: CREATE, ALTER, DROP y TRUNCATE.

A continuación iniciaremos con la creación de una base de datos.

“…La base de datos que diseñaremos se me entregó en la universidad en un curso con SQLServer, ahora me da gusto poder realizar lo mismo pero en PostGreSQL”.

--1) CREACIÓN DE BASE DE DATOS (DATABASE):
CREATE DATABASE DBAdmision TEMPLATE template0;
--2) CREACIÓN DE ESQUEMAS (SCHEMAS) :
CREATE SCHEMA Persona;
CREATE SCHEMA Admision;
--3) CREACIÓN DE SECUENCIAS (SEQUENCE):
CREATE SEQUENCE Persona.seq_idcontacto START 1; --empieza desde 1
CREATE SEQUENCE Admision.seq_idmodalidad START 1; --empieza desde 1
--4) CREACIÓN DE TABLAS (TABLES):
create table Persona.Contacto
(
IDContacto int default nextval('Persona.seq_idcontacto'),
Nombres varchar(30) not null,
Paterno varchar(30) not null,
Materno varchar(30) not null,
Genero char(1) default('0') not null,
DNI varchar(10) null,
FechaNac date null,
FechaCreacion date not null default now()
)
;;
create table Persona.Postulante
(
IDPostulante char(10) not null ,
IDContacto int not null,
IDCarrera char(3) not null,
IDPerAcad char(6) not null,
IDModalidad int not null,
Puntaje int not null default(0),
AsistioExamen char(1) not null default('0'),
Ingreso char(1) not null default('0')
)
;;
Create Table Admision.PerAcad
(
IDPerAcad char(6) not null ,
Periodo char(4),
Ano char(1)
)
;;
create table Admision.Carrera
(
IDCarrera char(3) not null,
Nombre varchar(150) not null
)
;;
create table Admision.Modalidad
(
IDModalidad int default nextval('Admision.seq_idmodalidad'),
Modalidad varchar(100) not null
)
;;
--5) CREACIÓN DE RESTRICCIONES (CHECK):
ALTER TABLE Persona.Contacto
ADD CONSTRAINT ck_Genero
CHECK (Genero in ('0','1'))
;;
ALTER TABLE Persona.Postulante
ADD CONSTRAINT ck_asistioexamen
CHECK (asistioexamen in ('0','1'))
;;
ALTER TABLE Persona.Postulante
ADD CONSTRAINT ck_ingreso
CHECK (ingreso in ('0','1'))
;;
ALTER TABLE Persona.Postulante
add CONSTRAINT ck_puntaje
CHECK (
(asistioexamen = '1' and puntaje >=0)
or
(asistioexamen = '0' and puntaje =0)
)
;;
--6) CREACIÓN DE RESTRICCIONES (UNIQUE):
ALTER TABLE Admision.Carrera
ADD CONSTRAINT uq_nombrecarrera
UNIQUE(Nombre)
;;
ALTER TABLE Persona.Contacto
ADD CONSTRAINT uq_ContactoDNI
UNIQUE(DNI)
;;
ALTER TABLE Admision.Modalidad
ADD CONSTRAINT uq_Modalidad
UNIQUE(Modalidad)
;;
--7) CREACIÓN DE CLAVES PRIMARIAS (PRIMARY KEYS):
ALTER TABLE Admision.PerAcad
ADD CONSTRAINT pk_IDPerAcad
PRIMARY KEY(IDPerAcad)
;;
ALTER TABLE Admision.Carrera
ADD CONSTRAINT pk_IDCarrera
PRIMARY KEY(IDCarrera)
;;
ALTER TABLE Persona.Contacto
ADD CONSTRAINT pk_IDContacto
PRIMARY KEY(IDContacto)
;;
ALTER TABLE Persona.Postulante
ADD CONSTRAINT pk_IDPostulante
PRIMARY KEY(IDPostulante)
;;
ALTER TABLE Admision.Modalidad
ADD CONSTRAINT pk_IDModalidad
PRIMARY KEY(IDModalidad)
;;
--8) CREACIÓN DE CLAVES FORÁNEAS (FOREIGN KEYS):
ALTER TABLE Persona.Postulante
ADD CONSTRAINT fk_IDCarrera
FOREIGN KEY(idcarrera)
references Admision.Carrera(IDCarrera)
;;
ALTER TABLE Persona.Postulante
ADD CONSTRAINT fk_IDPerAcad
FOREIGN KEY(IDPerAcad)
references Admision.PerAcad(IDPerAcad)
;;
ALTER TABLE Persona.Postulante
ADD CONSTRAINT fk_IDModalidad
FOREIGN KEY(IDModalidad)
references Admision.Modalidad(IDModalidad)
;;
ALTER TABLE Persona.Postulante
ADD CONSTRAINT fk_IDContacto
FOREIGN KEY(IDContacto)
references Persona.Contacto(IDContacto)
;;
Descargar Script: PostgreSQL Sentencias DDL.sql

CONCLUSIONES:

–1) CREACIÓN DE BASE DE DATOS (DATABASE):

Con la línea CREATE DATABASE DBAdmision TEMPLATE template0; , se crea una tabla a partir de una plantilla que trae postgres llamada template0, el cual nos crea la base de datos totalmente vacía. También existe la plantilla de nombre template1 y también está limpia.

–2) CREACIÓN DE ESQUEMAS (SCHEMAS) :

Los esquemas son importantes para agrupar objetos  según especificaciones, y al mantener organizado la base de datos permite un mejor desempeño al momento de la administración.

Si no se le asigna un esquema al objeto, postgres lo asignará implicitamente  al esquema “public“. Para definir que un objeto pertenezca a un esquema se pone el nombre del esquema seguido por un ponto <.> y el nombre del objeto, que puede ser una tabla, una secuencia, etc…

–3) CREACIÓN DE SECUENCIAS (SEQUENCE):

Podemos obviar el paso 3, si definimos el tipo de datos de sequencia ‘SERIAL’, en los campos establecidos en la creación de tablas en el paso 4, deberíar las lineas en cuestión de la siguiente forma:

IDContacto int default nextval(‘Persona.seq_idcontacto’),

cambiar por:

IDContacto SERIAL,

también

IDModalidad int default nextval(‘Admision.seq_idmodalidad’),

cambiar por:

IDModalidad SERIAL,

Con estos cambios, no será necesario realizar el paso 3, pero en realidad postgres si realiza implicitamente la creación de sequencias.

–4) CREACIÓN DE TABLAS (TABLES):

Con “FechaCreacion date not null default now(),” asignaremos la fecha actual por defecto al campo FechaCreacion por medio de la función now().

–5) CREACIÓN DE RESTRICCIONES (CHECK):

Los valores dentro de CHECK , por ejemplo “CHECK (Genero in (‘0′,’1′))”, son los únicos que serán permitidos insertar en el campo establecido, en este caso se le asigna esa restricción al campo Genero.

–6) CREACIÓN DE RESTRICCIONES (UNIQUE):

Las restricciones UNIQUE, por ejemplo “UNIQUE(Modalidad)” , aseguran que en los datos en la misma columna, en este caso en el campo Modalidad, no sean repetidas, ya que no puede haber registradas 2 modalidades con el mismo nombre. Otro ejemplo se da en las tablas usuario, donde no permiten asignar el mismo login o nick a a más de una persona.

–7) CREACIÓN DE CLAVES PRIMARIAS (PRIMARY KEYS):

Las claves primarias, aparte de prevenir la duplicidad de datos, y servir como nexo para relacionarse con otras tablas, tiene otro fin también importante, que es agilizar el proceso de busqueda, no por el hecho de ser primary key, sino que al momento de la creación de una clave primaria se crea implícitamente un indice (index), del cual hablaré detalladamente en otro post.

–8) CREACIÓN DE CLAVES FORÁNEAS (FOREIGN KEYS):

Las claves foráneas son campos que servirán de nexo para la relación entre 2 tablas, la clave primaria de otra tabla se relacionará con la clave foránea de ésta.

TOPIC: CREATE, TABLE, SCHEMA, SEQUENCE, ALTER, CHECK, ADD CONSTRAINT, UNIQUE, PRIMARY KEY, FOREIGN KEY, TEMPLATE

RELACIONADOS:

PostgreSQL: Fuentes de Instalación

Noviembre 1, 2009 Deja un comentario

Intento facilitar información práctica de postgres desde un nivel relativamente básico e ir subiendo de level a medida que pase el tiempo.

Usaremos la versión del motor más reciente hasta hoy. Particularmente suelo descargar de la web de EnterpriseDB o desde PostGreSQL.

Les dejo los links de descarga aquí:

Descargar: PostGreSQL o PostGreSQL

Descargar: PostGres Plus Standard Server

Descargar: PostGres Plus Advanced  Server

Sería bueno que lean las características y diferencias entre todos estos.

Para empezar deberán descargar e instalar PostGreSQL, y sería mejor si instalan PostGres Plus Advanced  Server.

En mi caso, tengo instalado PostGres Plus Advanced  Server8.3R2 en el puerto  5432 y  PostGres Plus Standard Server8.4 el el puerto 5433

También puede instalar la version que vienen en los repositorios de su distro linux:

Gentoo:

emerge -av postgresql

RedHat :

yum install postgresql

Debian/Ubuntu:

apt-get install postgresql postgresql-client
PRINCIPAL: PostgreSQL: Base de Datos

PostgreSQL

PostgreSQL: Base de Datos

Julio 31, 2009 1 Comentario

Un tiempo estuve involucrado con PostgreSQL , me gustó mucho, creo que se ha convertido en uno de mis motores de base de datos preferidos, de hecho hay muchas cosas aún que me faltan por conocer acerca de este, de todos modos os anímo a que lo experimenten si no lo han hecho aún.

postgresql

El logo lo dice todo, la robustéz que posee hace sentirse seguró, y hasta donde he experimentado ha tenido un rendimiento muy pero muy bueno.

Lo encontrarás en versiones para diferentes plataformas, como: FreeBSD · Linux · Mac OS X · Solaris · Windows,  y además está licenciado bajo BSD, el cual permite que las aplicaciones que desarrolles haciendo uso de Postgres podrias hacerlo con fines comerciales si ningún problema.

Hay diversos gestores para manipularlo, uno de ellos por ejemplo Postgres Plus de EnterpriseDB, inclusive su advanced server, manejan por separado las funciones y los procedimientos almacenados, y algo super interesante es que està diseñado para soportar multilenguajes procedurales, es decir, tus procedimientos almacenados los puedes realizar en PL/Java, PL/Ruby, PL/psm, PL/scheme, plPHP, PL/pgSQL, PL/Tcl, PL/Perl, PL/Python, alguno de estos ya los trae por defecto.

En esta entrada realizaré demostraciones con PostGreSQL, y este post será actualizado a medida que añada nuevos topics.

Topics sobre PostGreSQL:

01- PostgreSQL: Base de Datos

02- PostgreSQL: Fuentes de Instalación

03- PostgreSQL: Especificación de Ficheros

04- PostgreSQL: Configuración del Idioma (locales)

05- PostgreSQL: Consultas Enumeradas

06- PostgreSQL: Sentencias DDL (1)

07- PostgreSQL: Sentencias DDL (2)

08- PostgreSQL: Sentencias DML

09- PostgreSQL: Funciones, Procedimientos y Vistas

10- PostgreSQL: Fechas y Horas

11- PostgreSQL: Window Functions (Funciones Ventana)

12- PostgreSQL: Particionamiento de Tablas

13- PostgreSQL: Creación de Tablespaces

14- PostgreSQL: Sentencias TCL

15- PostgreSQL: Sentencias DCL

16- PostgreSQL: Automatización de Backups

17- PostgreSQL: Sentencias XML