terça-feira, 20 de novembro de 2007

Reinicia o POSTGRESQL

-- Procurando o número do PID do postgresql / POSTMASTER

ps -aux grep postm

-- Com o número do PID, reiniciar o processo.

kill -HUP

segunda-feira, 19 de novembro de 2007

Ajax

Enviando uma requisição ao servidor

Para enviar uma requisição ao servidor utiliza-se o método open() e o método send().

O método open() requer três argumentos.
  • O primeiro argumento define qual método utilizar quando estiver enviando a requisição (GET ou POST).
  • O segundo argumento especifica a URL do script no servidor.
  • O terceiro argumento especifica que a requisição deve ser manipulada assincronamente.

O método send() envia a requisição para o servidor. Se assumir que os arquivos HTML e PHP estão na mesma pasta, o código pode ficar:

xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);

A função AJAX será executada quando o usuário digita algo no campo nome. O arquivo testeAjax.html agora fica parecido com o seguinte código:

<html>
<body>
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Seu navegador não suporta AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","hora.php",true);
xmlHttp.send(null);
}
</script>
<form name="myForm">
Nome: <input type="text"
onkeyup="ajaxFunction();" name="nome" />
Hora: <input type="text" name="time" />
</form>
</body>
</html>

segunda-feira, 12 de novembro de 2007

Primeira Aplicação

Primeiro, será criado um formulário padrão HTML com dois campos: nome e hora. O campo nome será preenchido pelo usuário e o campo hora será preenchido utilizando-se AJAX. O arquivo HTML terá o nome “testeAjax.html”, e seu conteúdo será:

<html>
<body>
<form name="myForm">
Name: <input type="text" name="username" />
Time: <input type="text" name="time" />
</form>
</body>
</html>

Destaca-se que o formulário não possui o botão Submit.

Suporte AJAX do navegador

A chave do AJAX é o objeto XMLHttpRequest.

Navegadores diferentes utilizam métodos diferentes para criar o objeto XMLHttpRequest

Internet Explorer utiliza um ActiveXObject, enquanto que outros navegadores utilizam um objeto JavaScript chamado XMLHttpRequest.

Para criar este objeto e trabalhar com navegadores diferentes, será utilizado o comando “try and catch”.

<html>
<body>
<span >

<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Seu navegador não suporta AJAX!");
return false;
}
}
}
}
>/script>
>form name="myForm">
Nome: <input name="nome">
Time: <input name="time">
>/form>
</body>
</html>



Primeiro cria-se uma variável xmlHttp para manter o objeto XMLHttpRequest. Então tenta-se criar o objeto com XMLHttp=new XMLHttpRequest(). Isto serve para os navegadores Firefox, Opera e Safári. Se falhar tenta-se com xmlHttp=new ActiveXObject("Msxml2.XMLHTTP") que serve para o Internet Explorer 6.0+, se também falhar, tentar xmlHttp=new ActiveXObject("Microsoft.XMLHTTP") que serve para o Internet Explorer 5.5+.

Se nenhum dos três métodos funcionarem, o usuário possui um navegador muito desatualizado deverá ser avisado que não suporta AJAX.

A propriedade onreadystatechange

Depois de uma requisição para o servidor, precisa-se uma função que possa receber o dado que é retornado pelo servidor. A propriedade onreadystatechange armazena a função que processará a resposta do servidor. O código abaixo define uma função vazia e inicializa a propriedade onreadystatechange ao mesmo tempo.


xmlHttp.onreadystatechange=function()
{
// Deve-se escrever um código
}



A propriedade readyState

A propriedade readyState carrega a situação (status) da reposta do servidor (server’s reponse). Cada vez que muda o valor de readyState, a função onreadystatechange será executada.

Tabela de possíveis valores para a propriedade de onreadystatechange.


No exemplo abaixo, apresenta-se um teste (if) na função onreadystatechange para testar se a resposta esta completa, ou seja, que o dado foi recebido.

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
// Recebido dos dados do servidor.
}
}

A propriedade responseText
O dados enviado de volta do servidor pode ser recuperado com a propriedade responseText. No exemplo será colocado a hora no campo de entrada na propriedade responseText.

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}


Ajax - Introdução

AJAX é acrônimo de Asynchronous JavaScript And XML. É um tipo de programação que se tornou popular in 2005 pela Google (com Google Suggest). AJAX não é uma nova linguagem de programação, mas uma nova forma de utilizar os padrões existentes.

Com o AJAX se pode criar aplicações WEB melhores, mais rápidos e mais amigáveis. AJAX é baseado em JavaScript e requisições HTTP.

Com AJAX, o JavaScript se comunica diretamente com o servidor utilizando o objeto XMLHttpRequest do JavaScript. Com este objeto se pode trocar dados com um servidor WEB sem a necessidade de recarregar a página.

AJAX utiliza a transferência de dados assíncrona entre o navegador e o servidor WEB, permitindo que as páginas WEB façam pequenas requisições ao servidor WEB no lugar de uma página inteira. Esta tecnologia independe do servidor WEB.

AJAX é baseado nos seguintes padrões WEB: JavaScript, XML, HTML, CSS.

Em um código JavaScript tradicional, se se desejar receber qualquer informação do banco de dados ou um arquivo do servidor, ou enviar uma informação do usuário para um servidor, ter-se-á criar um formulário HTML e enviar por GET ou POST dados para o servidor. O usuário terá que clicar no botão SUBMIT para enviar e receber as informações, esperar que o servidor para responder e então uma nova página será carregada com os resultados.

Porque o servidor retorna uma nova página cada vez que o usuário submete uma entrada, as aplicações web são lentas e menos amigáveis.

Para uma aplicação tradicional, uma página pode fazer uma requisição para, e receber uma resposta do servidor WEB sem a necessidade de recarregar a página. O usuário ficará na mesma página e não notará que o script requisitou páginas, ou enviou dados para o servidor em background.

Objeto XMLHttpRequest

Utilizando o objeto XMLHttpRequest, o programador web pode atualizar uma página com dados do servidor sem necessidade de recarregar a página.

O Google em http://www.google.com/webhp?complete=1&hl=en fez com que AJAX se tornasse popular. Google Suggest esta utilizando objeto XMLHttpRequiest para criar uma interface web dinâmica, quando o usuário inicia digitando na caixa de pesquisa, um JavaScript envia as letras para o servidor e o servidor retorna uma lista de sugestões.

O objeto XMLHttpRequest é suportado por Internet Explorer 5 ou superior, Safári 1.2, Mozilla 1.0 / Firefox, Opera 8+, and Nestscape 7.

segunda-feira, 5 de novembro de 2007

Usuarios SAMBA

Criar um usuário no samba (SUSE)

/* Para adicionar usuário no LINUX*/
adduser caio.nakashima

/* Para excluir usuário no LINUX*/
userdel caio.nakashima


/* Para definir senha para acesso samba */
pdbedit -a -u caio.nakashima

/* Para excluir acesso samba */
pdbedit -x -u caio.nakashima

PostgreSQL + POSTGIS

Baixar o software do site:http://www.postgresql.org/download/

Descompactar o arquivo utilizando do comando:

tar -jxvf postgresql-x.x.x.tar.bz2

no diretório criado digitar os comandos abaixo:

./configure
make
su
gmake install

adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres

/usr/local/pgsql/bin/initdb -D -A /usr/local/pgsql/data --locale='en_US.LATIN1'
Atualizar no arquivo postgres.conf

port = 5432
lc_messages = 'en_US.LATIN1' # locale for system error message#
stringslc_monetary = 'en_US.LATIN1' # locale for monetary formatting
lc_numeric = 'en_US.LATIN1' # locale for number formatting
lc_time = 'en_US.LATIN1'

/usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data >logfile 2>&1 &/usr/local/pgsql/bin/createdb test/usr/local/pgsql/bin/psql test

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Instalação do POSTGIS
2.1. ExigênciasPostGIS tem as seguintes exigências para construção e uso:

* Uma configuração e construção completos do código fonte PostgreSQL em árvore. PostGIS usa definições de processo de configuração/construção PostgreSQL para uma plataforma particular sua que está em construção. PostgreSQL está disponível em http://www.postgresql.org/.

* O compilador de GNU C (gcc). Alguns outros compiladores de C ANSI podem ser usados para compilar PostGIS, mas nós achamos poucos problemas ao compilar com gcc.
* GNU Make (gmake ou make). Para muitos sistemas, GNU Make é a versão default que faz falta. Para saber a versão utilizar make -v.
Outras versões de make não podem processar o PostGIS Makefile corretamente.

/***************************************************************************/*
(Opcional) Biblioteca de reprojeção Proj4.
A biblioteca Proj4 é usada para prover suporte a reprojeções coordenadas dentro de PostGIS.

Proj4 está disponível. Para carregá-la utilize o site, http://www.remotesensing.org/proj.

Baixar o software de:http://www.remotesensing.org/proj/

A versão utilizada para elaborar este documento foi proj-4.4.9.tar.gz

Descompactar o arquivo com o comando
tar -zxvf proj-4.4.9.tar.gz

No diretório criado executar os seguintes comandos
./configure --prefix=/opt/proj-4.4.9
gmake
su
gmake install

/**************************************************************************/

(Opcional) Biblioteca de geometria GEOS.
A biblioteca GEOS é usada para fornecer testes em geometria (Touches(), Contains(), Intersects()) e operações (Buffer(), GeomUnion(), Difference()) com PostGIS. GEOS está disponível para baixa em http://geos.refractions.net/.

A versão utilizada para elaborar este documento foi proj-4.4.9.tar.gz
Descompactar o arquivo com o comando

tar -jxvf geos-2.2.3.tar.bz2

No diretório criado executar os seguintes comandos
./configure --prefix=/opt/geos-2.2.3
gmake
su
gmake install

/**************************************************************************/
2.2. PostGIS
O módulo de PostGIS é uma extensão ao PostgreSQL servidor de retaguarda. Assim, PostGIS 1.0.0 requer uma cópia completa do fonte PostgreSQL organizado em diretório para compilar. O código fonte PostgreSQL está disponível em http://www.postgresql.org/.

PostGIS 1.0.0 pode ser construído com versões de PostgreSQL 7.1.x, 7.2.x ou 7.3.x. As versões de PostgreSQL anteriores não são suportadas.

1. Antes de você compilar os módulos do servidor de postGIS, você tem que compilar e instalar o pacote PostgreSQL.Nota Se você planeja usar funcionalidade de GEOS você poderia precisar unir PostgreSQL à biblioteca de C++ padrão:

LDFLAGS=-lstdc++
./configure [YOUR OPTIONS HERE]

Este é um trabalho voltado para exceções em C++ interando com ferramentas de desenvolvimento mais antigas. Se você perceber problemas estranhos (inesperadamente fechar uma retaguarda ou algo semelhante) tente este truque. Isso fará com que corra o risco de compilar o PostgreSQL.

2. Faça o download do arquivo fonte PostGIS de http://postgis.refractions.net/postgis-1.0.0.tar.gz. Descomprima o arquivo no diretório "contrib" do fonte PostgreSQL organizando os fontes no diretório.

# cd [postgresql source tree]/contrib
# gzip -d -c postgis-1.0.0.tar.gz tar xvf -

3. Uma vez feita a instalação de PostgreSQL, entrar no diretório de "postgis", e editar o arquivo Makefile.config.
* Se quiser dar suporte a reprojeção de coordenada, você tem que ter a biblioteca de Proj4 instalada, atribuir valor 1 a variável USE_PROJ, e eventualmente ajustar PROJ_DIR para direcionar a sua instalação para o diretório Proj4.
* Se quer usar funcionalidades GEOS, você tem que ter instalada a biblioteca de GEOS, atribuir valor 1 a variável USE_GEOS, e eventualmente ajustar GEOS_DIR para direcionar a sua instalação para o diretório GEOS.

/******************************************************************/
Para o suporte ao PROJ4 e GEOS foram alteradas as seguintes linhasno arquivo Makefile.config

USE_PROJ=1
PROJ_DIR=/opt/proj-4.4.9

USE_GEOS=1
GEOS_DIR=/opt/geos-2.2.1

/******************************************************************/4. Rode o compilador e instale comandos.
./configure --with-pgsql=/usr/local/pgsql/bin/pg_config --with-geos=/opt/geos-

2.2.1/bin/geos-config --with-proj=/opt/proj-4.4.9/

# make
# su
# make install

Todos os arquivos são instalados relativamente no diretório de instalação do PostgreSQL, [prefix].
* Bibliotecas são instaladas [prefix]/lib/contrib.
* Arquivos de suporte importantes como postgis.sql são instalados em[prefix]/share/contrib.
* Carregador e binaries livres são instalados em [prefix]/bin.


5. PostGIS requer para o PL/pgSQL extensão da linguagem procedural. Antes de carregar o arquivo postgis.sql, você tem que habilitar primeiro o PL/pgSQL. Você deveria usar o comando createlang. O Guia de Programador PostgreSQL 7.1 tem detalhes, caso você queira executá-lo manualmente.

# /usr/local/pgsql/bin/createlang plpgsql template1

6. Carregue o objeto PostGIS e defina funções no banco de dados carregando definições de arquivo de postgis.sql.Copiar as bibliotecas do GEOS e PROJ parao postgres

# cp /opt/geos-2.2.3/lib/* /usr/local/pgsql/lib
# cp /opt/proj-4.4.9/lib/* /usr/local/pgsql/lib

No SUSE é preciso copiar as bibliotecas para

# cp /opt/geos-2.2.3/lib/* /usr/lib
# cp /opt/proj-4.4.9/lib/* /usr/lib

# /usr/local/pgsql/bin/psql -d template1 -f /usr/local/pgsql/share/contrib/lwpostgis.sql

Na execução do comando acima pode gerar erro de bibliotecas:Editar como root o arquivo:

/etc/ld.so.conf
Acrescentar o caminhos para as bibliotecas necessárias.

Por exemplo:
/opt/geos-3.0.0/
/opt/proj-2.5.0/

Para carregar o caminho, executar como root:
/sbin/ldconfig

Extensões de servidor de PostGIS agora são carregadas e prontas para uso.

7. Para um completo uso de coordenada de identificadores de definição de sistemas EPSG, você também pode carregar as definições de arquivo spatial_ref_sys.sql e conteúdos de tabela SPATIAL_REF_SYS.

# /usr/local/pgsql/bin/psql -d template1 -f /usr/local/pgsql/share/contrib/spatial_ref_sys.sql
############################################
Alguns comandos interessantes

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -b -v -f f:\backup\mi_2005_2006_public_%date%.backup "MI_2005_2006"

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -v -f f:\backup\mi_2005_2006_mapas_%date%.backup -n mapas "MI_2005_2006"

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -v -f f:\backup\mi_2005_2006_log_%date%.backup -n log "MI_2005_2006"

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -v -f f:\backup\mi_2005_2006_dicionario_%date%.backup -n dicionario "MI_2005_2006"

Rem ALTER DATABASE "MI_2005_2006_NEW" RENAME TO "MI_2005_2006_NEW_";
rem

"C:\Arquivos de programas\PostgreSQL\8.1\bin\psql.exe" -d MI2005 -h 10.68.12.245 -p 5432 -U postgres

rem /usr/local/pgsql/bin/postmaster -D /dados/pgsql/dadosMIcd

rem /usr/local/pgsql/bin/pg_ctl -D /dados/pgsql/dadosMIcd -l logfile start

rem /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >/tmp/logfile 2>&1 &

rem /usr/local/pgsql/bin/postmaster -D /dados/pgsql/dadosMIcd >/tmp/logfileDadosMIcd 2>&1 &rem CREATE DATABASE "MI_2005_2006"

rem WITH OWNER = postgresrem ENCODING = 'LATIN1'rem TABLESPACE = pg_default;

rem CREATE DATABASE "MI_2005_2006_DEV"rem WITH OWNER = postgresrem ENCODING = 'LATIN1'rem TABLESPACE = pg_default;rem CREATE DATABASE "SAM"

rem WITH OWNER = postgresrem ENCODING = 'LATIN1'rem TABLESPACE = pg_default;rem CREATE DATABASE "dicivip"

rem WITH OWNER = postgresrem ENCODING = 'UTF8'rem TABLESPACE = pg_default;

rem /usr/local/pgsql/bin/createlang plpgsql template1rem /usr/local/pgsql/bin/psql -d
template1 -f /usr/local/pgsql/share/contrib/lwpostgis.sqlrem /usr/local/pgsql/bin/psql -d
template1 -f /usr/local/pgsql/share/contrib/spatial_ref_sys.sql

rem ALTER DATABASE "MI_2005_2006_DEV" RENAME TO "MI_2005_2006_dev";
rem ALTER USER postgres WITH PASSWORD 'sagi123';

C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_restore.exe -i -h 10.68.12.244 -p 5432 -U postgres -d dicivip -v "F:\backup\dicivip_10-10-2006.backup" Task update history