miércoles, 29 de diciembre de 2010

Funcion que devuelve solo los numeros de una Cadena

CREATE OR REPLACE FUNCTION solo_numeros(xcadena varchar)
RETURNS character varying AS
$BODY$declare
xcadena alias for $1;
record1 record;
xresult varchar;
begin

--
xresult = '';
FOR record1 IN execute 'select orden, (SELECT substring(substring(' || quote_literal(xcadena) || ',orden,1) FROM ' || quote_literal('[0-9]') || ')) as letra from generate_series(1,length(' || quote_literal(xcadena) || '),1) orden where not (SELECT substring(substring(' || quote_literal(xcadena) || ',orden,1) FROM ' || quote_literal('[0-9]') || ')) is null' loop
xresult = xresult || record1.letra;
end loop;

return xresult;

end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;

select solo_numeros('prueba1345r67--8t')

Continúa...

jueves, 23 de diciembre de 2010

Postgres 8.4 en Ubuntu Hardy

Por esas cosas de la vida tuve que instalar Postgres 8.4 en un Ubuntu Hardy, lo que hice fue bajar el Binario desde la Web:

http://www.enterprisedb.com/products/pgdownload.do

El archivo que ontuve fue:

postgresql-8.4.6-1-linux.bin

Luego de copiarlo en el equipo con Ubuntu, se ejecuta

./postgresql-8.4.6-1-linux.bin

----------------------------------------------------------------------------
Bienvenido a la instalacion de PostgreSQL.

----------------------------------------------------------------------------
Por favor especifique el directorio donde PostgreSQL sera instalado

Directorio de instalacion [/opt/PostgreSQL/8.4]: /usr/lib/postgresql/8.4
----------------------------------------------------------------------------
Por favor, seleccionar un directorio dentro del cual se almacenaran sus datos.

Directorio de Datos [/usr/share/postgresql/8.4.6/data]: /etc/postgresql/8.4.6

----------------------------------------------------------------------------
Por favor proporcione una contraseña para el super-usuario de la base de datos (postgres).

Contraseña :
Reingresar la contraseña :
----------------------------------------------------------------------------
Por favor seleccione un numero de puerto en el que el servidor debera escuchar.

Puerto [5433]: 5433
----------------------------------------------------------------------------
Opciones Avanzadas

Seleccione la configuracion regional a ser usada por el nuevo cluster de base de datos.

Configuracion Regional
Por favor seleccione una opcion [1] :



¿Instalar pl/pgsql en la base de datos template1? [Y/n]:


----------------------------------------------------------------------------
El programa esta listo para iniciar la instalacin de PostgreSQL en su ordenador.

¿Desea continuar? [Y/n]:

----------------------------------------------------------------------------
Por favor espere mientras se instala PostgreSQL en su ordenador.

Instalando
0% ______________ 50% ______________ 100%
#######################################

----------------------------------------------------------------------------
El programa termino la instalacion de PostgreSQL en su ordenador.

Continúa...

martes, 12 de octubre de 2010

Error luego de Instalar IE 8

Error en pantalla:
Windows no puede iniciar sesion porque no se puede cargar el perfil. Compruebe que esta conectado a la red, o que su red esta funcionando correctamente. Si este problema persiste, pongase en contacto con el administrador de red.

Datos adicionales:
- Pc con Windows XP y SP3
- Servidor de Dominio con Linux
- En algunos casos ingresa a un perfil temporal luego del error y en otro casos retorna a la ventana de Usuario y Contraseña.
- Puede estar o no conectado a red, se hizo pruebas desconectando el equipo de la red y el error persitia.

Solucion encontrada:

1.- Ingresar al Regedit
2.- Ir a esta posicion HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
3.- Agregar un nuevo valor DWORD el cual debera de llamarse PoolUsageMaximum, modificarlo y colocarlo como Decimal con el valor 60
4.- Modificar el valor PagedPoolSize, colocarlo como Hexadecimal y asignarle el valor de FFFFFFFF
5.- Grabar y reiniciar.

No olvidar sacarle un Backup al Regedit por si algo saliera mal.

Nota Importante: aqui solo se informa la solucion al problema que tuve, no es la solucion a todos los problemas similares.

Continúa...

viernes, 10 de septiembre de 2010

Postgres : Funcion con Array

CREATE OR REPLACE FUNCTION general.pasa_array(varchar)
RETURNS character varying AS
$BODY$declare
matriz INTEGER[];
xresult varchar;
xcont integer;
xelementos integer;
xcadena varchar;
begin
xcont = 0;
xelementos=0;
xcadena=$1;
xresult='';
loop
matriz[xcont]=cast(substring(xcadena,1, case when position(',' in xcadena)=0 then char_length(xcadena) else position(',' in xcadena)-1 end)as integer);
RAISE NOTICE 'matriz: %', matriz[xcont];
xcadena=substring(xcadena,case when position(',' in xcadena)=0 then char_length(xcadena) else position(',' in xcadena) end+1, char_length(xcadena));
RAISE NOTICE 'Cadena: %', xcadena;
xelementos=xelementos+1;
xcont = xcont + 1;
if char_length(xcadena)=0 then
exit;
end if;
end loop;

xcont = 0;
RAISE NOTICE 'matriz: %', matriz[xcont];
--xresult = matriz[1];
loop
RAISE NOTICE 'matriz 2: %', matriz[xcont];
xresult = xresult || chr(matriz[xcont]);
RAISE NOTICE 'xresult --> %', xresult;
xcont = xcont + 1;
if matriz[xcont] is null then
exit; -- exit loop
end if;
end loop;


return xresult;

end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;

select general.pasa_array('65,66')

select general.pasa_array('89,97,32,113,117,101,109,97,115,116,101,32,98,114,111,116,104,101,114')

Continúa...

jueves, 2 de septiembre de 2010

La Donación de mis órganos por Camilo Jose Cela (Premio Nobel de Literatura del año 1989)

Que se los den a cualquiera.
Si hay un paciente que espera
por lo que yo ofrezco aquí
espero que se haga así
para salvar una vida.
Si ya no puedo respirar,
que otro respire por mí.

Donaré mí corazón
para algún pecho cansado
que quiera ser restaurado
y entrar de nuevo en acción.

Hago firme donación
y que se cumpla confío
antes de sentirlo frío,
roto, podrido y maltrecho
que lata desde otro pecho
si ya no late en el mío.

La pinga la donaré
y que se la den a un caído
y levante poseído
el vigor que disfruté.


Pero pido que después
se la pongan a un jinete,
de esos que les gusta brete.
Eso sería gran cosa:
yo descansando en fosa
y mi pinga dando fuerte.

Entre otras donaciones
me niego a donar la boca.
Pues hay algo que me choca
por poderosas razones.
Sé de quien en ocasiones
habla mucha bobería;
mama lo que no debía
y prefiero que se pierda
antes que algún comemierda
mame con la boca mía.

El culo no lo donaré
pues siempre existe un confuso
que pueda darle mal uso
al culo que yo doné.
Muchos años lo cuidé
lavándomelo a menudo.
Para que un cirujano chulo
en dicha transplantación
se lo ponga a un maricón
y muerto me den por el culo.

Continúa...

martes, 6 de abril de 2010

OpenOffice.org : Quitar lineas de cuadricula

Bueno costo un poquito de trabajo encontrarlo pero se dio, lo bueno de todo esto es que resulta y queda para futuras ocasiones.
Lo que hayq ue hacer es lo siguiente:

1.- Marcar la zona a la que se desea quitar la cuadricula.
2.- Dar Clic derecho al fondo marcado.
3.- Elegir la opcion "Formatear Celdas".
3.- Ir al la pestaña Borde.
4.- en la Seccion que dice "Dispopsicion de Lineas" / "Predeterminado", Seleccionar el cuarto (4to) cuadro que dice "Borde exterior y todas las lineas interiores".
5.- Cambiar el color por el Blanco.
6.- Presionar el boton de "Aceptar".

Espero que les sirva.

Continúa...

viernes, 26 de marzo de 2010

ZXV10 W300 : Nateo

Costo un poco de trabajo pero se logro ubicar la forma de hacerlo.

Esperaria encontrar el Nateo de puerto en una opcion que diga NAT o algo similar, pero esto se puede hacer en Advance Setting / Virtual Server / Services.

Espero que a alguien le sirva.

Continúa...

martes, 23 de marzo de 2010

Motociclistas ahora deberán usar, además de cascos, chalecos con número de placa

Bueno otra genial medida de parte del Gobierno, imagino que el alto costo del SOAT para motos es para que hayan menos accidente y el bajo costo de las Combis y Micros sea para incentivar los accidentes.

Aun tengo algunas dudas:

- Si los choferes de Combi son un peligro que chalecos deberían de utilizar rojo?

- Como diferenciaran a los policías de a pie que a los que van en patrullero, chalecos plomos?

- Los policías sin uniforme deberán de llevar algun chaleco?, recuerden que pueden no pagar en lo micros.

- Que chalecos deberán de utilizar los ex-gobernantes, recuerdo que algunos han cometido delitos, chalecos verdes (por los dólares)?

- Los peatones deberán de utilizar algún tipo de chaleco, hay varios delitos como robo en micros, asalto a mano armada, pandillaje y demás, que color de chaleco les pondrán?


No molesta utilizar algún distintivo pero si resulta pesado que decidan como vestirte, quizás los analistas que presentaron la ley revisaron la cantidad de crímenes en motos, serán mas que aquellos que roban carros y asaltan bancos, raptan, marcan a los que hacen retiros a bancos?

Realmente reducirá los crímenes?, cuantos crímenes en motos se realizan de forma diaria o semanal?, quien lleva las estadísticas para esta toma de decisión? donde las han publicado?

Ya que están volteando la vista hacia las motos harán que los costos del SOAT disminuyan?

Cuál será la próxima sabia ley de nuestros gobernantes y legisladores??.

Continúa...

lunes, 22 de marzo de 2010

Word y Excel 2007 graben en formato 97-2003 (DOC y XLS)

Bueno si estas cansado de estar diciendo a los usuarios que tienen Office 2007 que graben sus Documentos de Excel y Word en el formato de Office 97 - 2003, vale aclarar que grabe los archivos de Word como DOC y no como ODCX, y los de Excel como XLS y no como XLSX.

Sigue los siguientes pasos:

1.- Abrir Word / Excel.

2.- Darle clic al icono del Office, parte superior izquierda.

3.- En la parte inferior derecha del menu se muestra un boton que dice "Opciones de Word" u "Opciones de Excel", segun sea el caso, presionar dicho boton.

4.- Se abrira una ventana donde se puede ver la opcion "Guardar qarchivos en formato", al costado hay un combo (menu de opciones) y elegiremos "Documento de Word 97-2003 (*.doc)" o "Documento de Excel 97-2003 (*.xls)"

Con esto bastara para que todos los nuevos documentos se guarden en formato 97-2003.

Continúa...

viernes, 19 de marzo de 2010

Postgres : calculo de 48 horas antes de una fecha (me sirvio para las Tx a Aduanas)

Aqui un pequeño ejemplo que me sirvio para calcular el tiempo que falta para que sean 48 horas (2 dias) antes de una fecha especifica.

La necesidad parte de que Aduanas permite el envio de informacion hasta 48 horas de la llegada de una nave, entonces como ssaber cuanto falta para esta hora limite?

Bueno asumiremos que la Nave llega a las 6 de la tarde (18:00 horas) y de ahi parten los calculos.


select
-- Fecha y hora de llegada
cast(f_eta || ' 18:00:00' as timestamp) as f_h_llegada,
-- Fecha y hora limite en que se debe de hacer el envio.
(cast(f_eta || ' 18:00:00' as timestamp) + '-48 hour') as fecha_envio,
-- tiempo faltante para que se cumplan las 48 horas antes de llegada la nave.
(cast(f_eta || ' 18:00:00' as timestamp) + '-48 hour') - now() as tiempo_limite_48_horas,
-- aqui determinamos si faltan dias o minutos para la fecha y hora limite case when now() > cast(f_eta || ' 18:00:00' as timestamp) + '-48 hour' then 'Te pasaste' else case when (now() + '24 hour') > cast(f_eta || ' 18:00:00' as timestamp) + '-48 hour' then 'solo minutos' else 'Aun a dias' end end as zz,

now(), f_eta
from itinerarios
where f_eta >= now()::date - 7
order by f_eta

Nota: Hay que tener en cuenta lo siguiente:

select now() + '12 hour';
select now() - '12 hour';

Este ultimo te da error, pero si pruebas lo siguiente el resultado es el que se desea:

select now() + '-12 hour';

Continúa...

jueves, 18 de febrero de 2010

1ra Ley de Soporte informatico

Si un usuario te llama nunca es por que todo funciona correctamente.

Hace poco recibi una llamada de un usuario en que decia:

Usuario: Hola Marce todo esta bien en la Maquina.

Marce piensa: Si todo esta bien que raro que llames.

Marce dice: Ok, gracias por llamar.

Usuario: Excepto que los JPG no se ven.

Marce piensa: Ya parecia raro que llamen para reportar que todo esta bien.

Si señores es verdad, nunca van a llamar a decir que todo esta bien, van a llamar para decir que algo falla (a veces de la nada, aun que hayan apagado intempestivamente la maquina).

Continúa...