Extrair som e imagens de um arquivo PPT (Power Point)

Bom, como todo mundo que hoje em dia usa e-mail, eu recebo pelo menos um 300 milhões de ppts por dia com correntes, mensagens bla bla bla bla ….

Até tenho uma regra na minha caixa postal pra esses arquivos. Porém um arquivo enviado por uma amiga me chamou a atenção, o nome era chamativo resolvi abrir.

A musica era linda e eu queria por toda lei copiar a musica do arquivo mas não fazia a menor idéia de como fazer isso ….

Foi então que “gogglando” descobri. Resultado: A musica já esta no meu celular hehehehe

Segue abaixo o procedimento de como fazer….

1 – Crie um diretório e salve a apresentação lá dentro.

2 – Abra a apresentação no Power Point

3 – Clique em arquivo / salvar como

4 – Clique em “salvar como tipo”, e escolha “página da Web*htm. *.html” e salve no diretório criado

5 – No diretório onde o html foi salvo foi criado uma pasta com o nome da apresentação, abra ela.

6 – Nesse diretório você encontrará todos os objetos extraídos do PPT, como musicas e imagens.

Só lembrando que a musica extraída é um arquivo WAV, para converte-la para MP3 abra no Media Player e salve como escolhendo a opção MP3

E voilá !!!

Espero que tenha ajudado como me ajudou

Abraços

Kenia Milene

Poema a Um Pai Adotivo

Quando eu era criança, ( um ano atrás hahahahaha ) tínhamos algumas manias legais, coisas que já não existem mais nos dias de hoje ..

Quem tiver um pouco mais de 20 anos vai se lembrar do carderno de perguntas que circulava pela escola e na rua. Era a maneira de sabermos um pouco mais sobre aquele menino ou aquela menina que estávamos afim, onde a pergunta mais cabeluda do caderno era : ”Quantos meninos você já beijou?” ou ainda “Se você tivesse que escolher alguém para beijar quem seria???”. Hoje com o Orkut toda essa magia foi perdida.

Além do caderno de perguntas, também tinha a pasta de papel de cartas…… qual menina que não tinha uma hein ???? eu tinha logo 2 uma só de papeis de carta importados que ficava mais do que escondida hahahahahahahaha.

Sem falar no caderno de poesias… ai ai .. nossos tempos de poeta quando sofríamos por amor pelo menino da quinta série hahahaha ou mesmo por inspiração !!!

Caracas ….. e os bailinhos na garagem??? Hahahaha cada final de semana era na garagem de um, onde o buffet se resumia a tang e salgadinho. E era tudo muito divertido sem maldade.

Mas esse post do Túnel do Tempo na verdade é porque me lembro que na minha pasta de poesias havia um poema que na minha opinião era o mais lindo e emocionante chamado “Poema a um pai adotivo”, que com o tempo foi perdido …

Hoje lembrando essa época lembrei-me do poema e graças ao santo google eu achei ele novamente. Porque não posta-lo não é verdade???

Pai, quando você morrer
Eu não vou chorar.
Pra compensar todo o pranto que você me obrigou a derramar.

Pai, quando você morrer.
Eu não quero lembrar sua existência
Pra compensar toda a vida que você esqueceu que eu tinha.
Pai, quando você morrer, eu vou pôr roupa branca.
Pra compensar toda paz que você me impediu de ter.
Pai, quando você morrer, eu não vou à missa.
Pra compensar os pecados que eu paguei mesmo inocente.
Pai, quando você morrer, eu quero gritar bem alto.
Pra compensar toda mágoa, que você me fez sofrer calado.
Pai, quando você morrer, eu vou levantar os olhos.
Pra compensar todas as vezes que eu chorei cabisbaixo.
Pai, quando você morrer, eu vou tomar um porre.
Pra compensar todas as vezes que você me aporrinhou.
Pai, quando você morrer, eu vou cuspir todo o ódio.
Pra compensar o instante em que você me cuspiu de sua vida.
Pai, quando você morrer, eu vou te olhar de frente.
Pra compensar todas as vezes que você me deu as costas.
Mas Pai…
Enquanto você for vivo
Eu vou escrever um livro
Pra dizer que não sou culpado.
Pois quem me dera ao invés de adotivo,
Viciado, marginal e revoltado.
Eu fosse só, tão somente.
Um menor abandonado.

O Poema é muito bonito e emocionante …

Saudade daqueles tempos !!!!

Kenia Milene

Procedimento de Instalação do Oracle 9i (9.2.0.7.0) no Red Hat Linux Enterprise AS4

Pois é minha gente …. já estamos no 11G mas temos muitas bases de produção em 9i, e o que fazemos em um caso de crash do servidor onde temos que reinstalar sistema operacional, banco .. TUDO !!!!!!
Como diria o poeta Carlos Drummond de Andrade:

“ E agora, José?

A festa acabou,

a luz apagou,

o povo sumiu,

a noite esfriou,

e agora, José?

e agora, Você? …”

Agora amiguinho senta la na frente do servidor e mão na massa !!!!

Bom .. o Marcos Camargo – DBA Oracle me enviou um procedimento de instalação do Oracle 9i no Red Hat Enterprise (Case dele) que acho bacana publicar, afinal …. pode ser útil !!!!

01. Instalar o RedHat AS4 no servidor

Configuração de Hardware:

– ITAUTEC 1140S
– P4 2.8 (Ghz 200 x 14.0)
– RAM 512 MB
– BIOS 925 x/XENEO w705311cv1.7b

Verificar qual o tipo de Sistema Operacional

# uname –a
# rpm -qa –queryformat “%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n” | sort

02. Instalar os Componentes de SO Requeridos

Verificar a “Nota 303859.1 – Requirements for Installing Oracle 9iR2 on RHEL 4”

2.1. Minimum Software Requirement

Componentes de SO requeridos

– compat-db-4.1.25-9
– compat-gcc-32-3.2.3-47.3

– compat-gcc-32-c++-3.2.3-47.3

– compat-oracle-rhel4-1.0-3

– compat-libcwait-2.0-1
– compat-libgcc-296-2.96-132.7.2

– compat-libstdc++-296-2.96-132.7.2

– compat-libstdc++-33-3.2.3-47.3
– gcc-3.4.3-9.EL4
– gcc-c++-3.4.3-9.EL4

– gnome-libs-1.4.1.2.90-44
– gnome-libs-devel-1.4.1.2.90-44
– libaio-devel-0.3.102-1

– libaio-0.3.102-1

– make-3.80-5

– openmotif21-2.1.30-11

– xorg-x11-deprecated-libs-devel-6.8.1-23.EL
– xorg-x11-deprecated-libs-6.8.1-23.EL

Baixar o “Patch 4198954 – COMPATIBILITY PACKAGES FOR ORACLE ON RHEL 4”

– Descompactar e executar:

# unzip p4198954_40_LINUX.zip
# rpm -ihv compat-oracle-rhel4-1.0-5.i386.rpm
# rpm -ihv compat-libcwait-2.1-1.i386.rpm

Depois de instalar o Patch 4198954, alguns erros podem ocorrer no Shutdown e Startup do servidor.

2.2. Environment

Variável de configuração requerida

# export LD_ASSUME_KERNEL=2.4.19(.bash_profile do oracle)

Verificar os parâmetros dos semáforos
# cat /etc/sysctl.conf

Alterar as configurações do kernel em /etc/sysctl.conf

#nome do host completo !!
kernel.hostname = yourhost.yourdomain.com

#nome correto do domínio !!
kernel.domainname = yourdomain

fs.file-max = 327679

Semáforos requeridos do kernel:

# echo 100 > semmni
# echo 256 > semmns
# echo 100 > semopm
# echo 100 > semmsl
# echo 100 > shmmni
# echo 2097152 > shmall
# echo 2147483648 > shmmax

Para ativar as novas configurações

# sysctl -p

O comando deve mostrar o nome do host completo

# hostname
hostname.domainname

Os seguintes ajustes do ambiente são requeridos para o usuário do Unix que executa a instalação (por exemplo oracle)

# umask
0022

# echo $LD_ASSUME_KERNEL
2.4.19

Se algum pacote de Java estiver instalado no sistema, desconfigure todas as variáveis de ambiente de Java (por exemplo JAVA_HOME).

O usuário do Unix que executa a instalação (por exemplo oracle) não deve mandar o Oracle instalar as variáveis relacionadas ajustadas pelo defeito. Por exemplo, ajustando ORACLE_HOME, o PATH, LD_LIBRARY_PATH para incluir binários do Oracle em .profile , .bash_profile , .log na lima e /etc/profile.d devem completamente ser evitados.

Mover a biblioteca e alterar o path

# mv /usr/lib/libcwait.so /lib/libcwait.so

# cat /etc/ld.so.preload
/usr/lib/libcwait.so (*** Alterar esta linha para /lib/libcwait.so )

# vi /etc/ld.so.preload

Depois da alteração, o arquivo deverá mostrar:

# cat /etc/ld.so.preload
/lib/libcwait.so

Adicionar os parametros de semáforos

# cd /proc/sys/kernel

echo 100 32000 100 100 > sem
echo 2147483648 > shmmax
echo 4096 > shmmni
echo 2097152 > shmall
echo 65536 > /proc/sys/fs/file-max

ulimit -n 65536

echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

ulimit -u 16384

Executar o comando para ativar estas novas configurações

# sysctl -p

03. Criar diretórios

# mkdir /ora9i

04. Copiar as mídias para o diretório

# cp /media/cdrom/ship_9204_linux_disk1.cpio.gz /ora9i/
# cp /media/cdrom/ship_9204_linux_disk2.cpio.gz /ora9i/
# cp /media/cdrom/ship_9204_linux_disk3.cpio.gz /ora9i/

05. Criar os usuários e grupos necessários para instalação e administração do Banco

# groupadd dba
# groupadd oinstall
# groupadd oper
# useradd -c DBA -g oinstall -G dba oracle

Isto irá criar o user “oracle” com o grupo primário “oinstall” e secundário “dba”

06. Criar os diretórios do Oracle para instalação

# mkdir /u01 /u02
# chown oracle.dba /u01 /u02
# chmod 755 /u01 /u02

07. Criar uma senha para o usuário “oracle”

# passwd oracle

New UNIX password:
Retype new UNIX password:

08. Criar as variáveis de ambiente para o user oracle

# su – oracle

$ pwd
/home/oracle

$ ls –la

Editar .bash_profile e incluir as seguintes abaixo

$ vi .bash_profile
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/9.2.0.7.0

*** muda conforme o banco a ser criado ***
ORACLE_SID=prd

PATH=$PATH:$ORACLE_HOME/bin
LD_ASSUME_KERNEL=2.4.19
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/bin:$ORACLE_HOME/network/lib

export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID
export LD_LIBRARY_PATH LD_ASSUME_KERNEL

09. Alterar o owner/grupo Recursivamente dos diretórios

# chown -R oracle.oinstall /ora9i
# chown -R oracle.oinstall /Download_Oracle9i

10. As Mídias

Descompactar as mídias em /ora9i como usuário oracle

$ gunzip ship_9204_linux_disk1.cpio.gz
$ gunzip ship_9204_linux_disk2.cpio.gz
$ gunzip ship_9204_linux_disk3.cpio.gz

queimar as mídias

$ cpio -idmv < ship_9204_linux_disk1.cpio
$ cpio -idmv < ship_9204_linux_disk2.cpio
$ cpio -idmv < ship_9204_linux_disk3.cpio

11. Executar a instalação com Oracle Universal Installer

** DESATIVE A TECLA NUM LOCK, SENÃO A INSTALAÇÃO FICA TRAVADA !!! ***
Essa foi uma indicação do suporte da Oracle !!!

** Por problemas causados pelo o dicionário de dados Oracle, o export/import não funciona corretamente. Deve-se instalar, atualizar e depois criar os bancos desejados. ***

$ cd /ora9i/Disk1
$ ll

$ ./runInstaller

Quando for solicitado, abrir outra janela e logar com root.

$ su – root
login:

Como root:

# cd /u01/app/oracle/product/9.2.0.7.0
# ./root.sh

12. Aplicar o patchset 9.2.0.7

$ mkdir /ora9i/patch_set_9207

Copiar do CD01 o arquivo p4163445_9207_LINUX.zip

$ cd /ora9i/patch_set_9207
$ unzip p4163445_9207_LINUX.zip
$ cd disk1

Selecionar o OraHome

$ ./runInstaller

Executar numa janela em separado

$ root.sh

13. Dicas úteis

* character set.: WE8ISO8859P1

* diretório_base: /u01/app/oracle/product/9.2.0.7.0

* grupo unix….: oinstall

* database file.: /u01/app/oracle/oradata

* ativar console:

$ cd $ORACLE_HOME/bin
$ oemapp console

* Verificar a configuração do listener.ora

* para ativar/desativar via dbstart/dbshut

* Comentar no sqlnet.ora

### SQLNET.AUTHENTICATION_SERVICES= (NTS) ### SR.6242748.993 – 08/04/2007 ###

É é isso ai pessoal ..

Marcos, Obrigado por contribuir com o Blog, e as duvidas que o pessoal postar fique a vontade pra responder !!!!

Kenia Milene

Alterar Hora no A1200 (Horario de Verao)

Pois é minha gente … mais um ano já está chegando ao fim, e temos que alterar nossos relógios para o maldito horário de verão … Como eu odeio ele !!!!

Mas enfim …. para quem tem o Motorola A1200 como eu, segue a dica de como alterar a hora:

No painel de menus, clique em hora mundial, então vai aparecer os horários de vários países.

Clique na opção Brasília e adiante o relógio em 1 hora ..

Olha !!! Na minha humilde opinião acho que a hora deveria ser fornecido pela operadora .. assim não teríamos que fazer esse tipo de alteração e nem nos preocupar se esta adiantado ou atrasado.

Há algum tempo atrás a VIVO fornecia esse tipo de serviço, agora já não sei mais, mesmo porque uso TIM.

Abraço a todos

Kenia Milene

Exportar e importar dados do SQL Server com linha de comando (BCP)

 Bom amigos … todos conhecem o SQL Server e todas as suas ferramentas gráficas não é mesmo ????

 Pois existe uma maneira rápida, fácil e pratica de exportar (dump) e importar (restore) de uma base de dados SQL Server sem usar essas pesadas ferramentas.

O BCP (Bulk Copy Program) nos da à possibilidade de exportação e importação de dados através de uma simples linha de comando.

Para facilitar a vida é mais pratico criar arquivos bat que segue abaixo:

 

Exportanto

 

Bcp_exp.bat

 

Set Server=IP

Set DbUser=sa

Set DbPwd=SENHA

 

Bcp BD..TABELA OUT CAMINHO\tabela.bcp –o CAMINHO\tabela.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

Bcp BD..TABELA2 OUT CAMINHO\tabela2.bcp –o CAMINHO\tabela2.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

 

pause

 

Muito importante lembrar que existem problemas de versão, ou seja, exportação e importação entre Sql Server 2000 e 2005. Sendo assim para que não existam problemas, usamos o parâmetro –c

 

Importando

 

Bcp_imp.bat

 

Set Server=IP

Set DbUser=sa

Set DbPwd=SENHA

 

Bcp BD..TABELA IN CAMINHO\tabela.bcp –o CAMINHO\tabela.log_imp –S%Server% -U%DbUser% -P%DbPwd% -c

Bcp BD..TABELA2 IN CAMINHO\tabela2.bcp –o CAMINHO\tabela2.log_imp –S%Server% -U%DbUser% -P%DbPwd% -c

 

pause

 

PS: Substitua os valores em azul negrito pelos seus dados

E era isso ….

Boa Sorte !!!

 

Kenia Milene

Cada Volta é um Recomeço ….. !!!!

   É isso ai minha gente !!!

   Depois de “alguns dias” de geladeira aqui estou eu novamente …

   Muitas coisas aconteceram nesses “alguns dias” que me fizeram entender que nem sempre o que julgamos ser bom .. realmente é bom .. e o que julgamos ser ruim é realmente ruim. Posso dizer isso por experiência própria.

   Hoje após esse período de aprendizagem vi que o “Cara La De Cima” tinha algo muito bacana reservado pra mim … mas que para que eu pudesse entender a magnitude disso tudo eu tinha que passar por algumas provas.

   Bom caros amigos, hoje com a casa quase totalmente em ordem e vivendo novas experiência posso dizer que sou uma pessoa completa e pronta para novos desafios ..

   Abraços a todos

 

   Kenia Milene

Marley & Eu !!!!

Pois é … fazia um tempo que eu não lia um livro.

Há algumas semanas atrás tive que fazer uma viagem a Marabá no Sul do Pará pela empresa. Como o lugar é um tanto quanto longe … e já tinha consciência de que ia passar umas boas horas cozinhando no aeroporto e dentro da aeronave, sendo assim, nada melhor do que um livro!!!!

Bem….. olhando na livraria do aeroporto um livro me chamou atenção … chamava Marley & Eu … com uma foto de um labrador muito simpático na capa. Comprei !!!!

Gente … eu devorei o livro e não conseguia mais parar de ler .. é muito muito muito bom, engraçado, emocionante.

Todo mundo que já teve, tem ou pensa em ter um cachorro deve ler esse livro. A historia nada mais é do que um casal recém casado que pretende ter filhos mas acaba comprando um cachorro para ter a certeza de que eles tem o dom cuidar de algum ser vivo hehehehe.

As coisas que esse cachorro apronta durante a historia são hilárias … momentos divertidos, momentos emocionantes … O livro é capaz de te fazer dar boas gargalhadas e ao mesmo tempo soltar algumas lagrimas de emoção.

É um ótimo livro e recomendo a todos os amantes de animais e boas histórias. Parabéns ao autor John Grogan e claro … ao Marley !!!!

Abraços

Kenia Milene

Instalando e Implementando DBI-LINK no PostgreSQL

Existem ocasiões onde temos 2 servidores distintos e precisamos de um merge dessas informações, como obter o retorno de um select se tenho dados em 2 servidores separados ???????

Seus problemas acabaram!!!! … Nesse caso temos 2 soluções DBLINK e DBI-LINK, sendo que se os 2 servidores forem postgres, use dblink mas se um for postgres e outro for Oracle, Mysql ou seja la qual banco … usamos o dbi-link.

Vendo o site da pgcon 2008 Internacional achei uma palestra muito bacana do David Fetter sobre o DBI-LINK 3.0 resolvi testar esse bicho … e querem saber ??? é muito bacana !!!!!!.

Antes de começar só vamoslembrar que quando usamos esse tipo de recurso temos que levar em conta que ficamos “refens” da rede, seja interna ou externa, uma vez que as informações estão em servidores distintos

Instalando o postgres

Baixando pacotes

# aptitude install ssh
# aptitude install gcc
# aptitude install make
# aptitude install libreadline-dev
# aptitude install zlib1gdev
# aptitude install zlibc
# aptitude install zlib1g-dev
# aptitude install libio-zlib-perl
# aptitude install perl
# aptitude install libyaml-perl
# aptitude install libconfig-yaml-perl
# aptitude install libyaml-syck-perl
# aptitude install libtest-yaml-meta-perl
# aptitude install libtest-yaml-valid-perl

Compilando
$ tar -xvzf postgresql-8.3.1.tar.gz

$ mv postgresql-8.3.1 postgresql-8.3
$ cd postgresql-8.3
$ cd src/include/
$ vi pg_config_manual.h

#define BLCKSZ 8192 — Usado em BI por isso o bloco de gravação é maior
#define BLCKSZ 4096 —
Usado em Transacionais por isso o bloco de gravação é menor

$ cd ../../
$ ./configure –prefix=/home/postgres/postgresql-8.3 –with-python –with-perl
$ make $$ make install

Criando o cluster

O diretório pg83 deve ser criado para alocar o novo cluster

$ mkdir -p /postgres/pg83/dados/
$ /home/postgres/postgresql-8.3/bin/initdb -D /postgres/pg83/dados/ –encoding=latin1

Subindo o banco

$ cd /postgres/pg83/dados/
$ /home/postgres/postgresql-8.3/bin/pg_ctl -D . start

Baixando os pacotes para para DBI-LINK

Para esse procedimento são necessários 2 pacotes: DBI-LINK e o DBD-Pg

Instalando os pacotes

Esse recurso para ser instalado necessita de alguns pré requisitos, ou seja, alguns pacotes instalados:

DBI-LINK

build, test, and install Perl 5 (at least 5.6.1)

BDB-PG

build, test, and install Perl 5 (at least 5.6.1)
build, test, and install the DBI module (at least 1.52)

build, test, and install PostgreSQL (at least 7.4)
build, test, and install Test::Simple (at least 0.47)

Descompacte os pacotes e execute o Makefile.pl para que a instalação seja feita:

$ tar – xvjf dbi-link-2.0.0.tar.bz2
$ cd dbi-link-2.0.0
$ perl Makefile.PL
Writing Makefile for dbi-link

$ tar -xvzf DBD-Pg-2.7.2.tar.gz

O Makefile padrão usa algumas variáveis que devem ser definidas antes da instalação:
POSTGRES_HOME
– Instalação do PostgreSQL
POSTGRES_LIB
– bilbiotecas do PostgreSQL
POSTGRES_INCLUDE
– Diretório de include do PostgreSQL

Para fazer o export das variáveis:

$ export POSTGRES_LIB=”/home/postgres/postgresql-8.3/lib/”
$ export POSTGRES_HOME=”/home/postgres/postgresql-8.3/”
$ export POSTGRES_INCLUDE=”/home/postgres/postgresql-8.3/include/”

Os primeiros passos da instalação devem ser feitos com o usuário comum postgres:

$ cd DBD-Pg-2.7.2
$ perl Makefile.PL
Configuring DBD::Pg 2.7.2
PostgreSQL version: 80301 (default port: 5432)
POSTGRES_HOME: /home/postgres/postgresql-8.3/
POSTGRES_INCLUDE: /home/postgres/postgresql-8.3/include/
POSTGRES_LIB: /home/postgres/postgresql-8.3/lib/
OS: linux
Checking if your kit is complete…
Looks good
Using DBI 1.604 (for perl 5.010000 on i486-linux-gnu-thread-multi) installed in /usr/lib/perl5/auto/DBI/
Writing Makefile for DBD::Pg

$ make

O make install criará alguns diretórios em locais de sistema que não é permitido a usuário comum, sendo assim execute-o com o usuário root

# make install

Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib/perl/5.10.0/auto/DBD/Pg/Pg.so
Installing /usr/local/lib/perl/5.10.0/auto/DBD/Pg/Pg.bs
Installing /usr/local/lib/perl/5.10.0/Bundle/DBD/Pg.pm
Installing /usr/local/lib/perl/5.10.0/DBD/Pg.pm
Installing /usr/local/man/man3/Bundle::DBD::Pg.3pm
Installing /usr/local/man/man3/DBD::Pg.3pmWriting /usr/local/lib/perl/5.10.0/auto/DBD/Pg/.packlist
Appending installation info to /usr/local/lib/perl/5.10.0/perllocal.pod

Adicionando um DBI-LINK

Antes de tudo é necessário criar a linguagem plperl no banco em questão, pois o dbi-link foi desenvolvido em PL/PERL.

$ createlang plperlu portgres

Agora rode o script que criará toda estrutura dbi-link

$ psql -p 5432 < /home/postgres/dbi-link-2.0.0/dbi_link.sql

Note que no banco foi criado o schema dbi_link, com 3 tabela, 26 funções e 1 trigger

Adicionando uma conexão Remota

MYSQL

Criando nova conexão

SELECT dbi_link.make_accessor_functions(
‘dbi:mysql:database=teste;host=localhost’,Driver:banco:host
‘root’, — usuário
”, — senha
‘— AutoCommit: 1 RaiseError: 1 ‘,
— atributos do banco remoto
NULL,
— ambiente de conexão
NULL,
— schema remoto
NULL
, — catalogo remoto
‘teste’
— schema local

Usando a conexão

SELECT * FROM teste.tabela;

Transferindo dados de um banco para outro

É possivel transferir dados direto de um banco para outro, porém com algumas restrições (que serão resolvidas futuramente, segundo o desenvolvedor). Todos os dados retornados do banco externo são formato text, sendo assim ou a tabela destino tem os campos text ou trate as informações antes de fazer a inserção.

CREATE SCHEMA testepg
AUTHORIZATION postgres;
GRANT ALL ON SCHEMA testepg TO postgres;

CREATE TABLE testepg.tabela
(
campo1 character varying,
campo2 character varying,
campo3 character varying,
campo4 date,
campo5 character varying,
campo6 text
CONSTRAINT tabela_pk PRIMARY KEY (campo1)
)
WITH (OIDS=FALSE);
ALTER TABLE testepg.tabela OWNER TO postgres;

INSERT INTO testepg.tabela
(SELECT campo1:: character varying,
campo1:: character varying,
campo2:: character varying,
campo3:: date,
campo4:: character varying,
campo5:: text
FROM teste.tabela
WHERE campo1 = ‘XXX’);

Bom .. por hoje é só pessoal !!!!!!
PS: vou fazer mais algumas brincadeiras com o DBI-LINK e posto aqui.
PS2: Conversei com o David e vou traduzir o pacote dele !!!

Kenia Milene

Particionamento de Tabelas no PostgreSQL

Quando temos uma tabela muito grande, ou seja com milhões de linhas a melhor opção é particiona-la para uma melhor performance do banco. Para isso, é necessário algumas regras na tabela principal e criar as tabelas auxiliares:

Veja abaixo.

1 – Crie a tabela principal

CREATE TABLE salario(
funcionario numeric(10) NOT NULL,

centro_custo character varying(10) NOT NULL,
valor_resultado numeric(13,2),
data_evento date,
evento numeric(3),
conta numeric(10),cargo numeric(5)
)
WITH (OIDS=TRUE);

2 – Crie as tabelas particionadas para inserção dos dados, sendo que as mesmas devem herdar as caracteristicas da tabela principal, para isso usamos o () INHERITS

–JANEIRO

CREATE TABLE salario_jan () INHERITS (salario);

–FEVEREIRO

CREATE TABLE salario_fev () INHERITS (salario);

……………………..

–DEZEMBRO

CREATE TABLE salario_dez () INHERITS (salario);

3 – Crie a regra que no caso de uma tabela de pagamentos de funcionarios, Nesse caso, o campo referencia é a data de pagamento tendo base o mês. Sendo assim crie uma rule para cada mês, onde a cada insert feito na tabela mãe … os dados são filtrados e inseridos em cada tabela filha correspondende ao mês.

— JANEIRO

CREATE OR REPLACE RULE insert_jan AS
ON INSERT TO salario

WHERE date_part (‘month’::text, new.data_evento)=1

DO INSTEAD INSERT INTO salario_jan (funcionario, centro_custo, valor_resultado, data_evento, evento, conta, cargo)
VALUES (new.funcionario, new.centro_custo, new.valor_resultado, new.data_evento, new.evento, new.conta, new.cargo);

— FEVEREIRO

CREATE OR REPLACE RULE insert_fev AS
ON INSERT TO salario
WHERE date_part(‘month’::text, new.data_evento)=2
DO INSTEAD INSERT INTO salario_fev (funcionario, centro_custo, valor_resultado, data_evento, evento, conta, cargo)
VALUES (new.funcionario, new.centro_custo, new.valor_resultado, new.data_evento, new.evento, new.conta, new.cargo);

……………………………

— DEZEMBRO

CREATE OR REPLACE RULE insert_dez AS
ON INSERT TO salario
WHERE date_part(‘month’::text, new.data_evento)=12
DO INSTEAD INSERT INTO salario_dez (funcionario, centro_custo, valor_resultado, data_evento, evento, conta, cargo)
VALUES (new.funcionario, new.centro_custo, new.valor_resultado, new.data_evento, new.evento, new.conta, new.cargo);

Explicando …

A função data_part, vai extrair uma determinada parte da data a ser imposta pela regra.

No caso desse particionamento a referencia é o mês. Sendo assim no momento do insert, será verificado o mês em questão e redirecionado para tabela particionada correspondente.

É importante dizer que se um registro não atender a uma determinada regra, ele será inserido na tabela principal.

E que a tabela principal se comportará como uma tabela MERGE, sendo assim ela mostrará todos os registros !!

4 – Criando os Indices ..

Para a busca ser mais rápida é interessante a criação de indice nas tabelas particionadas.

— JANEIRO

CREATE INDEX salario_jan_idx
ON salario_jan
USING btree
(data_evento);

— FEVEREIRO

CREATE INDEX salario_fev_idx
ON salario_fev
USING btree
(data_evento);

………………………..

— DEZEMBRO

CREATE INDEX salario_dez_idx
ON salario_dez
USING btree
(data_evento);


4 – Criando as views …..

As views vão auxiliar na vizualização dos dados particionados por mês, sendo assim, algumas views são interessantes ….

View para cada mês CORRENTE.

CREATE OR REPLACE VIEW vw_salario_jan AS
SELECT a.funcionario, a.centro_custo, a.valor_resultado, a.data_evento, a.evento, a.conta, a.cargo
FROM salario_jan a
WHERE date_part(‘month’::text, data_evento) = 1
AND date_part(‘year’::text, data_evento) = now()
ORDER BY a.data_evento;

CREATE OR REPLACE VIEW vw_salario_fev AS
SELECT a.funcionario, a.centro_custo, a.valor_resultado, a.data_evento, a.evento, a.conta, a.cargo
FROM salario_fev a
WHERE date_part(‘month’::text, data_evento) = 2
AND date_part(‘year’::text, data_evento) = now()
ORDER BY a.data_evento;

—————–

CREATE OR REPLACE VIEW vw_salario_dez AS
SELECT a.funcionario, a.centro_custo, a.valor_resultado, a.data_evento, a.evento, a.conta, a.cargo
FROM salario_dez a
WHERE date_part(‘month’::text, data_evento) = 12
AND date_part(‘year’::text, data_evento) = now()
ORDER BY a.data_evento;

View de anos anteriores.

Para vizualização dos anos anteriores as seguintes views

CREATE OR REPLACE VIEW vw_salario_2006 AS
SELECT a.funcionario, a.centro_custo, a.valor_resultado, a.data_evento, a.evento, a.conta, a.cargo
FROM salario a
WHERE date_part(‘year’::text, a.data_evento) = 2006
ORDER BY a.data_evento;


CREATE OR REPLACE VIEW vw_salario_2007 AS
SELECT a.funcionario, a.centro_custo, a.valor_resultado, a.data_evento, a.evento, a.conta, a.cargo
FROM salario a
WHERE date_part(‘year’::text, a.data_evento) = 2007
ORDER BY a.data_evento;

CREATE OR REPLACE VIEW vw_salario_2008 AS
SELECT a.funcionario, a.centro_custo, a.valor_resultado, a.data_evento, a.evento, a.conta, a.cargo
FROM salario a
WHERE date_part(‘year’::text, a.data_evento) = 2008
ORDER BY a.data_evento;

View dos ultimos 6 meses apartir do 1o dia util

CREATE OR REPLACE VIEW vw_6meses_anteriores AS
SELECT a.funcionario, a.centro_custo, a.valor_resultado, a.data_evento, a.evento, a.conta,a.cargo
FROM salario a
WHERE a.data_evento >= (current_date – (date_part( ‘day’ , current_date)::integer -1)) – interval ‘6 months’
ORDER BY a.data_evento;

Bom … apartir dai .. é possivel a criação de varias views para ver os dados …
Espero que seja util para vcs como foi pra mim !!!!

Kenia Milene

Instalando e Desinstalando Aplicativos e Pacotes no Motorola A1200

Já fazia um tempão que eu queria um smartphone … então encontrei o Motorola a1200 que é bem mais barato que os outros e atende a todas as necessidades … como os outros hehehehe.
Porém é possível instalar alguns aplicativo e pacotes no 1200 que por sinal já vem com uma vantagem: O SISTEMA OPERACIONAL É LINUX, dispensa comentários. Pois bem …. é possível instalar aplicativos java ou pacotes prontos de extensão pkg. Confesso que apanhei um pouco para conseguir entender onde ele instalava e registrava os programas para poder instalar e desinstalar se necessário.
Bom .. o meu veio com um cartão de 512MB, mas como eu já tinha o de 1gb do outro celular .. passei pra ele. Como todo celular “moderninho” o cartão de memória é reconhecido automaticamente como um pendrive, sendo assim faremos todo o procedimento por ele !!

Instalação de aplicativos JAVA

1 – Para instalar aplicativos java, primeiramente conecte o cabo USB no telefone e no PC.
2 – Crie um diretório na nova unidade (que é o cartão de Memória reconhecido automaticamente) chamado aplicativos.
3 – Copie os arquivos de extensão jar para esse diretório. Ex: programa.jar
4 – Desmonte o ponto de montagem (no windows remova o dispositivo móvel)
5 – Desconecte o cabo do celular, desligue e ligue novamente.
6 – No menu principal clique na opção gerenciamento de arquivos … e clique no cartão de Memória
7 – Selecione a pasta aplicativos e clique em cima do programa.jar que deseja instalar.
8 – Aparecerá uma janela perguntando onde deseja instalar .. se no FLASH (cartão de Memória) ou no MMC (Telefone) e qual a categoria desse programa.
9 – Selecione as opções desejadas e clique em OK
10 – Pode ser que apareça a mensagem de aplicação não confiável (Nesse momento fica a seu critério, eu instalei mesmo assim e esta funcionando perfeitamente)
11 – Aparecerá a tela de instalação completa.
12 – Desligue e ligue o celular
13 – Vá ao menu principal e veja o programa instalado (Provavelmente la no final !!)

Segue abaixo os links de alguns programas que testei e estão funcionando perfeitamente:

Word – Processador de textos que abre arquivos .doc
Excel – Planilha eletrônica que abre arquivos xls
Calculadora Cientifica
Remote Desktop – Acesso remoto a computadores windows
Morange – Client para MSN, YAHOO, GTALK
Opera Mini-4.0.8462 – Browser com recursos de screen rotate, ou seja, rodar as paginas com o celular deitado
Mobile Google Map – Um recurso do google para visualização de locais via satélite

Instalação de aplicativos PKG

Bom para instalar pacotes o procedimento é um pouco diferente, pois é necessário o uso de um software como MPKG ou SmartAssist. Sendo assim o primeiro passo é a instalação desses softwares. O procedimento correto é copiar o diretório da aplicação para o diretório .system/QTDownLoad e inserir a registro no arquivo .system/java/CardRegistry (o que não é tão simples).
Então para facilitar o pessoal tem disponibilizado o .system, sendo assim é só substituir. Estou disponibilizando o meu .system com apenas a instalação do MPKG e SmartAssist, assim fica uma instalação limpa e ai fica a seu critérios quais outros programas irá instalar. Vamos la então …. :

1 – Para instalar aplicativos PKG, primeiramente conecte o cabo USB no telefone e no PC.
2 – Crie um diretório na nova unidade (que é o cartão de Memória reconhecido automaticamente) chamado aplicativos, caso não exista.
3 – Copie or arquivos de extensão pkg para esse diretório. Ex: programa.pkg
4 – Desmonte o ponto de montagem (no windows remova o dispositivo móvel)
5 – Desconecte o cabo do celular, desligue e ligue novamente.
6 – No menu principal clique na opção gerenciamento de arquivos … e clique no cartão de Memória
7 – Selecione a pasta aplicativos e clique em cima do programa.jar que deseja instalar.
8 – nesse momento ele abrirá o smartassist ou o mpkg e fará a instalação automaticamente.
9 – Desligue e ligue o celular
10 – Vá ao menu principal e veja o programa instalado (Provavelmente la no final !!)

Bem como eu havia dito tive um pouco de dificuldade e ela foi com o .system … os programas mesmo estando no diretório não aparecia … no menu .. ai vi que os programas não estavam registrados no CardRegistry.

Segue abaixo o link dos programas que testei e funcionou direitinho
Konsole – é um shell para execução de scripts e comandos linux
sshd – Serviço para acesso remoto para que você possa acessar seu celular através do SSH

Para desinstalar um aplicativo, remova o diretório da aplicação do .system/QTDownLoad e remova também a entrada no arquivo .system/java/CardRegistry

E era isso ..
Boa Sorte pra vocês e bom proveito do a1200.. Eu estou curtindo !!!!

PS:: Próximo desafio … SERA QUE RODA POSTGRESQL ???? hehehehe

Kenia Milene