viernes, 17 de julio de 2009

Adicionando el Contrib dbLink a Postgres

Desde hace un tiempo estaba buscando como hace esto, no encontre informacion en español, quizas no busque bien, bueno en fin aqui copio lo que hice. Nota importante estoy utilizando Debian

1.- Instalar el Contrib

apt-get install postgresql-contrib-8.1

Nota: Recordar que dice 8.1 por que esta es la version de PostgreSql instalada.


2.- ejecutar la instruccion:

psql -U postgres template1 < /usr/share/postgresql/8.1/contrib/dblink.sql

Nota: template1 es solo el ejemplo de Base de Datos, en lugar de esta deberas de colocar la que deseas o tienes que agregar el dbLink.

Continúa...

viernes, 5 de junio de 2009

Trabajo en Equipo (muy interesante)

Interpretación: Hoy en día está de moda escuchar la frase “trabajo en equipo” para hacer referencia al trabajo en cooperación con otros, llevado a cabo de manera coordinada y armónica, aprovechando las habilidades de quienes lo integran, buscando el máximo potencial individual a favor de los objetivos del grupo mediante la sinergia, que significa que los logros de un equipo siempre serán superiores a la suma de los logros individuales. Para Peter Senge, autor del libro “La Quinta Disciplina”, donde profundiza el tema desarrollo organizacional, el trabajo en equipo es una de las cinco disciplinas que deben ejercitar las organizaciones inteligentes u organizaciones abiertas al aprendizaje.

Pero, cuáles son los beneficios y las condiciones que tienen que darse para garantizar un buen trabajo en equipo?

Los beneficios son:
a) Ambiente agradable conformado por personas responsables y eficientes;
b) Está comprobado que el trabajo en equipo tiende a que se alcancen metas más altas.
b) Disminución de la carga de trabajo, ya que varias personas lo realizan;
b) Obtención de mejores resultados, dada la opinión y esfuerzo de varios; y
c) Desarrollo del respeto, confianza, liderazgo y buena comunicación entre sus miembros.

Las condiciones para un óptimo trabajo en equipo son:

a) Conocimiento: de la existencia de reglas y roles designados;
b) Conjunto: nunca hablar en primera persona, pues los logros y fracasos son de todos;
c) Valoración: de las ideas, sugerencias y aportes;
d) Pensar en conjunto: dejar de lado intereses individuales o afán de figuración personal.

Muchos confunden el significado de trabajo en equipo al creer que éste debe recaer en el más inteligente o responsable, siendo que finalmente es solo una o pocas personas quienes lo llevan a cabo, aprovechándose los demás del empeño y dedicación de éstos, lo cual linda con la ética por afectar los principios de honestidad, veracidad, idoneidad, diligencia, así como los deberes éticos de dedicación y calidad de servicio.

Para su implementación se requiere que las responsabilidades sean compartidas entre sus miembros y que las actividades desarrolladas se realicen en forma coordinada; por último se necesita que los programas se planifiquen en equipo y apunten a un objetivo común.

Continúa...

jueves, 23 de abril de 2009

Thunderbird: Complemento 0.1.06 (Borrar correos duplicados)

Muchas veces un nombre no lo dice todo, otras veces un numero es suficiente, pero el nombre (numero) que tienen este complemento para Thunderbird casi no dice nada pero hace mucho, aqui una breve descripcion de lo mucho que hace este complemento.

Debido a que en muchas empresas estan utilizando cuentas de correos grupales (comercial@midominio.com, ventas@midominio.com, etc.) es que tuve la necesidad de buscar una herramienta que permita borrar los correos repetidos, buscando un poco encontr un link bastante interesante, si desean leerlo click aqui.

La instalacion de los complementos de Thunderbird son bastante sencillos:

1.- Hay que bajarlo desde aqui.
2.- Copiarlo en la carpeta de su eleccion o al Escritorio.
3.- En el thunderbird abrir Complementos desde el Menu de Herramientas.
4.- Presionar el boton de Instalar, seleccionar el archivo XPI que bajaste y presiona click en Aceptar.
5.- Presionar el boton Instalar ahora.
6.- Te solicitara reinicar el Thunderbird, luego de eso estara listo para utilizar.

Para borrar los correos repetidos deberas de presionar click derecho sobre la carpeta que deseas revisar y del menu desplegable deberas de seleccionar "borrar mensajes duplicados"

Una vez hecho esto te presentara una pantalla similar a la siguiente:

Los correos repetidos estaran marcados en la columna flag como "Del", para eliminarlos se debe de presionar el boton "Delete Selected", hasta donde estoy probnando me parece una herramienta muy buena.

Continúa...

miércoles, 12 de noviembre de 2008

Postgres: Cantidad de Transacciones por dia.

Para determinar la cantidad de transacciones diarias deberas de ejecutar al siguiente instruccion:

select datname, xact_commit, xact_rollback from pg_stat_database;

Por Ej. el resultado puede ser el que adjunta en la imagen.


Para hacer el calculo tomemos como ejemplo bd_5 y realicemos lo siguiente:
1514158 -
219 = 1513939

Donde
1513939 son la cantidad de transacciones desde que se instalo o comenzo a utilizarse la Base de Datos, ahora para determinar cuantas se ejecutaron durante un dia debera de ejecutarse al dia siguiente (misma hora de preferencia) la misma instruccion y comparar los resultados.

Continúa...

sábado, 11 de octubre de 2008

Editor VIM : Algunos SET Importantes

Aqui algunos Seteos del Editor VIM, pueden ser de mucha ayuda.

set nocompatible Añadiendo en nuestro fichero vimrc la opción ”set nocompatible”, hacemos que VIM permita utilizar funciones extras que no están disponibles en el VI clásico y tradicional. Seria importante que la tengan definida en el .vimrc. Utilizar ”set compatible” u omitir esta opción hará que algunas de las mejores funcionalidades de VIM no estén disponibles, para preservar la compatibilidad con VI.

set autoindent Esta función (también puede utilizarse ”set ai”), hace que cuando pulsemos enter en un fichero de texto, la nueva línea que insertamos sea indentada automáticamente (es decir, se inserten espacios al principio de la misma y el cursor se posicione en una determinada posición). Esto puede servir, por ejemplo, para programar: si estamos escribiendo un bloque de código indentado a 3 espacios (por ejemplo), al pulsar enter no empezaremos en el primer carácter sino que automáticamente se nos situará el cursor en la columna 3. Literalmente, lo que hace VIM es que cuando pulsamos Enter, indenta la nueva línea a la misma profundidad que la anterior.

set noai Esta función hace lo contrario de ”set autoindent”, es decir, cuando pulsemos Enter iremos directamente al primer carácter de la siguiente línea. Esta función resulta muy útil cuando estamos editando código indentado y queremos, por ejemplo, pegar texto o código desde una selección de texto externa (copiar y pegar desde un navegador, otro editor, etc.). Como el texto que pegamos ya está indentado, no necesitamos que Vim lo indente añadiendo espacios. Si lo pegáramos tal cual, veríamos como la indentación original sumada a la identación automática de Vim haría que no se respetara el indentado real del texto. Para evitar esto, podemos pulsar ESC (pasar a modo comando), y teclear ”:set noai”, y pegar el texto externo (que se pegará bien). Después podemos volver al modo de identación con ESC y ”:set ai”.

set backup Si está activada esta opción, cada vez que grabemos el fichero se almacenará una copia de la ”versión” anterior como fichero~ (con el carácter ’~’ detrás).

set nobackup Esto sirve para lo contrario que ”set backup”, es decir, para deshabilitar la generación de ficheros de backup.

set ruler Con ”set ruler”, VIM muestra la posición X,Y actual del cursor en la barra de estado.
set wrap Activa el ”cortado” de líneas largas en pantalla: si tenemos activada esta opción y una línea es más larga (de ancho) que lo que podemos ver en nuestra ventana del editor, VIM la partirá (visualmente). Si no la tenemos activada, simplemente sólo podremos ver desde el inicio de la línea hasta lo que nos permita la ventana del editor o la terminal (pero no partirá la línea).
set nowrap Las líneas que no caben en pantalla no serán visualmente partidas (lo contrario de set wrap).

set incsearch Habilita la búsqueda incremental: esto implica que cuando hacemos búsquedas con el comando ”/”, Vim no esperará a que pulsemos ENTER para comenzar la búsqueda. VIM irá buscando las palabras conforme vayamos tecleando sus diferentes letras.

set hlsearch Habilita el coloreado de las palabras encontradas en las búsquedas, en un color diferente del color del texto.

set tabstop y set sw Estas 2 opciones permiten definir el tamaño (en espacios) de los tabuladores (por defecto suelen ser 8). Un ejemplo de uso sería ”set tabstop=3” y ”set sw=3”.

set expandtap Convertir todos los tabuladores en espacios: ideal para los que, como yo, detestan los tabuladores y prefiráis los espacios para tabular. Junto a las 2 opciones anteriores, cuando pulséis ”TAB” no se introducirá un carácter tabulador sino el número de espacios prefijados.

set noerrobells Evitar que Vim ”pite” en caso de error.

syntax on Como ya hemos visto, activa el coloreado de sintaxis (si VIM entiende el formato del fichero que editamos). La orden que lo desactiva sería ”syntax off”.

Para ver un excelente Manual clic aqui.

Continúa...

viernes, 10 de octubre de 2008

Como Crear o Quemar una Imagen ISO

Normalmente siempre es un problema Quemar las Imagenes ISO, necesitas algun software de pago y medio complicado de utilizar, un poco por necesidad y por casualidad encontre un Software bastante intuitivo y sencillo de utilizar, ademas de la simpleza con la que se instala.

Si deseas bajarlo da clic aqui.;

Hay versiones para Windows XP, 2003 y Vista; lo he utilizado en este ultimo y resulta muy sencillo.

No se olviden es Free para uso personal.

Luego de instalar su uso es sencillo:

1.- Clic derecho sobre el archivo ISO.

2.- Seleccionar "Copiar imagen a CD".

3.- quemar la ISO.

Continúa...

lunes, 6 de octubre de 2008

Error en el Return Next

Error al Ejecutar Funcion en plpgsql, como aso curioso me ocurrio este error:

ERROR: se llama una funcion que retorna un conjunto en un contexto que no puede aceptarlo
CONTEXT: PL/pgSQL function "get_record_cadenas" line 7 at return next

Lamentablemente no encontre la solucion facilmente, aqui un ejemplo de una funcion, el error y la solucion:


CREATE OR REPLACE FUNCTION maestros.get_record_cadenas(campod bpchar, tabla bpchar, campof bpchar, cadena bpchar)
RETURNS SETOF record AS
$BODY$
declare
record1 record;
begin
--*
FOR record1 IN execute 'select ' || $1 || ' from ' || $2 || ' where position(' || $3 || ' in ' || quote_literal($4) || ') > 0' LOOP
return next record1;
end loop;
return;
end
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Al llamar a la funcion de esta forma:

select maestros.get_record_cadenas('usu_nombre', 'maestros.usuarios', 'usu_codigo', '003--*--GERENCIA')

Me arrojaba el error arriba indicado en rojo.

La solucion resulta bastante simple:

select * from maestros.get_record_cadenas('nombres', 'clientes', 'codigo', 'valor1*valor2*valor3') as (usuario varchar);

Continúa...