Thursday, 29 November 2012

Choix socket PostgreSQL

Lorsque le client Postgresql se trouve sur la même machine que le serveur, les communications entre le client et le serveur s'effectuent soit via la boucle locale, soit le plus souvent à travers un fichier de type spécial appelé socket.
L'emplacement du socket peut se choisir au niveau du fichier postgresql.conf. Supposons que ce fichier contienne la sentence
unix_socket_directory='/run/postgresql'
Vérifions quel est alors le contenu du dossier /run/postgresql:
Nous constatons que le dossier /run/postgresql possède les droits rwxrwsr-x (2775 en octal).
Il s'y trouve un fichier caché de type socket: celui avec la lettre s figurant en tête de la ligne le concernant.
Le choix de l'emplacement du socket tel que formulé dans le fichier postgresql.conf est inopérant pour une connexion vers le serveur postgresql depuis libreoffice base à l'aide du pilote natif sdbc.
Ainsi il se peut que la tentative de connexion échoue avec un message du genre:
could not connect to server: Aucun fichier ou dossier de ce type 
Is the server running locally and accepting 
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Ici le fichier socket est recherché dans /tmp alors qu'il se trouve dans /run/postgresql.
Une solution consite à modifier postgresql.conf de manière à ce que le socket soit effectivement dans /tmp.
Cependant il ne s'agit pas vraiment d'une bonne idée: en effet /tmp jouit de droits particuliers de type rwxrwxrwt (1777 en octal):


La lettre t qui figure en dernière position dans la chaîne des droits indique que le sticky bit est sur on, ce qui signifie que si chacun peut écrire dans le dossier, il ne peut modifier que les fichiers qui lui appartiennent.
Or il arrive que si postgresql.conf demande que le socket se trouve dans /tmp, alors les droits de /tmp soient modifiés de manière inopportune.
Une meilleure solution consiste à utiliser la variable d'environnement PGHOST.
Celle-ci peut avoir deux significations.
La plus évidente est que PGHOST contienne le nom du host, comme ici:


Du fait que le nom du host est précisé, psql se connecte non pas à l'aide du fichier socket, mais via la boucle locale:


Mais si la valeur de PGHOST commence par une barre oblique (/), elle indique alors l'emplacement du socket:


Voilà la solution: il suffit de s'arranger pour que PGHOST existe et contienne la bonne valeur, par exemple en plaçant dans /etc/profile.d un fichier postgresql.sh contenant:
export PGHOST=/run/postgresql

Thursday, 15 November 2012

É quase que impossível "perder" o seu telefone agora.


As opções do avast! Anti-Theft podem ser controladas remotamente, ou via Web ou via SMS enviados de outro telefone. Com os controles via Web, você simplesmente logon e faz com umas poucas clicadas de botões realizar um rastreamento e/ou efetuar comandos no seu telefone. Com controles via SMS, você pode fazer o rastreamento do seu telefone através de comandos específicos via SMS enviados de qualquer outro numero telefônico de que você tenha especificado.

Estrutura de comandos SMS

Todos os comandos SMS devem começar com sua senha do avast!. Por exemplo, se sua senha avast! for 2222, o comando de bloqueio será: 2222 LOCK
Baixe AQUI todas as Orientações sobre essa maravilhosa Ferramenta.

Ladrões não têm a menor chance: TechHamlet


Mantenha o Poder em suas Mãos.    Ladrões não têm a menor chance!!




Monday, 12 November 2012

Linguagem de Programação II - JAVA




Baixe aqui Material Linguagem de Programação JAVA.

Sunday, 11 November 2012

Exercícios Resolvidos de Redes 1

Baixar Arquivos Sobre Redes: Clique Aqui

Exercícios

1)      Defina camada de rede.
à É o segmento de transporte do hospedeiro emissor ao receptor, o lado emissor encapsula segmentos em datagramas.

2)      Quais são as funções mais importantes da camada de rede.  Explique cada uma.
 àRepasse e roteamento. Repasse: mover pacotes da entrada do roteador para a saída apropriada do roteador. Roteamento: determinar rota seguida pelos pacotes da origem ao destino.

3)      Qual a terceira função mais importantes na camada de rede em algumas arquiteturas, segundo Kurose?
à Estabelecimento de conexão: Algumas arquiteturas de rede exigem o estabelecimento de circuitos virtuais antes da transmissão de dados, por exemplo, ATM e Frame relay, x25.

4)      Dê exemplos de:
a) Serviços para data gramas individuais.
 àEntrada garantida e entrada garantida com atraso limitado.

b) Serviços para fluxo de data gramas.
à Entrega de data grama na ordem, largura de banda mínima garantida e restrições sobre mudanças no espaçamento entre pacotes.

5)      Defina a expressão circuitos virtuais.
à Caminho da origem ao destino comporta-se como um circuito telefônico.

6)      Em que consiste um circuito virtual?
àCaminho da origem ao destino.
àNúmeros de VC um número para cada enlace ao longo do caminho.
àEntradas  em tabelas de repasse nos roteadores ao longo do caminho.

7)      Cite abaixo quais são as 2 funções mais importantes de um roteador.
à Executar algoritmos/protocolos de roteamento (rip,ospf,bgp) e repasse de datagramas  de entrada para a saída.

8)      Explique:
a) Comutação por memória.
à A CPU tem o controle direto sobre os pacotes copiados para a  memória do sistema, e sua velocidade é limitada pela largura de banda da memória.

b) Comutação por um barramento.
à É um datagrama de memória por barramento compartilhado que possui a velocidade  da comutação limitada pela largura de banda do barramento.

c) Comutação por uma rede de interconexão.
à É uma comutação que contorna a largura de Banda do barramento, desenvolvido inicialmente para conectar processadores no multiprocessador, fragmentando os datagramas em tamanhos fixos, através do elemento de comutação.

9)      Com relação as portas de saídas do roteador explique o que significa buffering e disciplina de escalonamento.
à Buffering; Exigido quando os datagramas chegam ao elemento de comutação mais rápido do que a taxa de transmissão.
à Disciplina de escalonamento: Escolhe entre os datagramas enfileirados para a transmissão.

10)   Sobre a camada de rede, quais as funções na camada de rede do hospedeiro e roteador?
à Escolha de caminhos (protocolo de roteamento).
à Tabela de rotas.
à Endereçamento, formato de datagramas, tratamento de pacotes (endereço IP)
à Aviso de erros e sinalização de rotas (protocolo ICMP).

11)   Como é o endereçamento no IPV4?
à É um edereço IP de 32 bits representado por 4 números decimais.  É dividido em duas partes: Prefixo (Endereço da rede, administrado globalmente) e Sufixo (Endereços de hosts, administrados localmente).

12)   Explique o conceito de sub-rede.
à Uma sub-rede é uma divisão de uma rede de computadores, onde o dispositivo se conecta a mesma parte da sub-rede de endereço IP.

13)   O que significa CIDR?
à É o roteamento interdomínio sem classe, que tem parte de sub-rede do endereço de tamanho arbitrário.

14)   Como uma máquina obtém um endereço IP?
à É fornecido pelo administrador do sistema em um arquivo .
à Windows -> painel de controle -> rede -> configuração -> TCP/IP -> Propriedades.
à UNIX -> /etc/rc.config.

15)   O que significa DHCP? Explique.
à o DHCP é um protocolo dinâmico de configuração de endereço IP.  Seu objetivo é permitir que o hospedeiro obtenha dinamicamente seu endereço IP do servidor de rede quando se conectar à rede.

16)   Como um ISP recebe um bloco de endereços?
à Através da ICANN, que aloca endereços, administra o DNS  e atribui nomes de domínios e resolve disputas.

17)   O que é NAT? Explique.
à É um protocolo que faz a tradução dos endereços IP e portas TCP da rede local para a internet.

18)   O que significa ICMP?  Qual a sua função?
à É um protocolo usado pelos hospedeiros e roteadores para comunicar informações em nível de rede.  Funções: relatar erro de hospedeiro, rede, porta, protocolo incansável, e eco de solicitação/resposta.


19)   Quais são os principais motivos que levaram a definição do protocolo IPv6?
à Espaço de endereço de 32 bits logo estará completamente alocado.
à Formato de cabeçalho ajuda agilizar processamento e repasse. Cabeçalho de 40 Bits, tamanho fixo e fragmentação não permitida.


20)   Quais as principais diferenças entre o cabeçalho IPv4 e IPv6?
àIPv4 : Os endereços tem 32 bits (4 bytes) de tamanho, registros de endereço no DNS            mapeiam nomes de hosts para endereços IPv4.

à  IPv6 : Os endereços tem 128 bits (16 bytes) de tamanho, registros de endereço no DNS mapeiam nomes de hosts para endereços IPv6, possui tamanho fixo de cabeçalho 40 bytes.


21)   Como será a transição do IPv4 para o IPv6?
à Através de implementação de túnel(tunelamento): IPv6 transportado como carga útil no datagrama IPv4 entre roteadores IPv4.


22)   O que significa algoritmo de roteamento e tabela de roteamento?
à Algoritmo de roteamento: Determina “bons” caminhos (seqüência de roteadores) de menor custo.

à Tabelas de roteamento : Arquivo de dados da RAM usada para armazenar informações  de rota sobre redes conectadas diretamente, indicando onde cada nó móvel está localizado.


23)   Em qual camada de rede trabalha o roteador?
à Camada de Enlace.





Exercícios de Portas Lógicas - Arquitetura de computadores

Baixe aqui a lista de Exercícios: Exercícios
Exercícios com Respostas para conferência: Operações lógicas
Descrição das Portas lógicas: Portas lógicas
Slide de conceitos: Conceitos
Material completo livro Arquitetura - Stallings - 8ª Edição: Livro Stallings 8ª Edição - 18.6MB


Sunday, 4 November 2012

Ubuntu 12.10 et libreoffice base

La version 12.10 d'Ubuntu souffre du même mal que la version précédente: impossible dans libreoffice base d'exécuter un rapport réalisé avec ORB (Oracle Report Builder).
Rien de changé. On tombe sur le même message d'erreur que précédemment:


Mais cette fois la solution présentée dans ce billet conduit tout droit au crash.
Nous allons passer au plan B: ne plus utiliser la version packagée par Ubuntu et la remplacer par celle téléchargeable sur le site de libreoffice
EDIT : voir une autre solution en fin de billet
Donc nous téléchargeons les fichiers:
LibO_3.6.3_Linux_x86-64_install-deb_en-US.tar.gz
LibO_3.6.3_Linux_x86-64_langpack-deb_fr.tar.gz
LibO_3.6.3_Linux_x86-64_helppack-deb_fr.tar.gz
correspondant à notre architecture.
Et puis nous procédons depuis le dossier de téléchargement:
toto@rigel:~/Downloadssudo apt-get remove libreoffice* 
toto@rigel:~/Downloadstar xzvf LibO_3.6.3_Linux_x86-64_install-deb_en-US.tar.gz 
toto@rigel:~/Downloads$ tar xzvf LibO_3.6.3_Linux_x86-64_langpack-deb_fr.tar.gz 
toto@rigel:~/Downloads$ tar xzvf LibO_3.6.3_Linux_x86-64_helppack-deb_fr.tar.gz 
toto@rigel:~/Downloads$ cd LibO_3.6.3.2_Linux_x86-64_install-deb_en-US/DEBS/ 
toto@rigel:~/Downloads$ sudo dpkg -i *.deb 
toto@rigel:~/Downloads$ cd desktop-integration/ 
toto@rigel:~/Downloads$ sudo dpkg -i *.deb 
toto@rigel:~/Downloads$ cd ../../../LibO_3.6.3.2_Linux_x86-64_langpack-deb_fr/DEBS/ 
toto@rigel:~/Downloads$ sudo dpkg -i *.deb 
toto@rigel:~/Downloads$ cd ../../LibO_3.6.3.2_Linux_x86-64_helppack-deb_fr/DEBS 
toto@rigel:~/Downloads$ sudo dpkg -i *.deb
Et voilà!
L'extension ORB est déjà installée avec le paquet
libobasis3.6-extension-report-builder_3.6.3.2-2_amd64.deb
de même que le pilote sdbc pour une connexion à postgresql
libobasis3.6-postgresql-sdbc_3.6.3.2-2_amd64.deb
On ne doit plus s'occuper de rien de ce côté là: cool!
Il ne reste plus qu'à tenter l'exécution du fameux rapport.
Si nous travaillons avec la base de données intégrée à libreoffice, tout est OK.
Essayons maintenant avec une base de données postgresql.
Tout d'abord se connecter.
Aie:

Ça commence bien!
La réponse à la question posée
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
est nécessairement positive puisque avec la version Ubuntu de libreoffice la connexion s'effectuait sans problèmes.
Du moins c'est ce que nous pensions mais avec la version Ubuntu de libreoffice le message en cas de problème aurait été:
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Et donc en fait la réponse est négative.
Pour que le socket qui convient soit utilisé, il suffit de remplacer dans le fichier /etc/postgresql/9.1/main/postgresql.conf
unix_socket_directory = '/var/run/postgresql'  
par
unix_socket_directory = '/tmp'  
et puis de redémarrer le serveur.
De la sorte tout est OK et le rapport s'exécute sans problèmes.
(EDIT: voir une meilleure solution ici.)
Il se peut que l'on ne souhaite pas changer l'emplacement du socket. Dans ce cas,  une façon de contourner le problème consiste à modifier les paramètres de connexion en ajoutant host=rigel à l'URL de la base de données (alors que ce n'est pas nécessaire puisque nous sommes sur la machine où tourne le serveur) de manière à forcer le passage par la boucle locale:


Cette fois nous recevons le message:


C'est normal car nous ne passons plus par le Unix domain socket et d'après le contenu du fichier /etc/postgresql/9.1/main/pg_hba.conf un mot de passe est nécessaire pour une connexion via la boucle locale:

# "local" is for Unix domain socket connections only
local   all             titine                                  peer map=map01
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
Pour avoir l'opportunité de fournir un mot de passe, il suffit de cocher "Mot de passe requis".
Attention, il s'agit d'un mot de passe postgresql et non pas d'un mot de passe système.
Bien évidement, de nouveau tout fonctionne nickel et nous avons le plaisir de voir s'afficher à l'écran un magnifique rapport.

EDIT:
Une autre possibilité consiste à installer le dépôt 'libreoffice' qui permet actuellement d'avoir directement une solution fonctionnelle sans qu'il soit nécessaire de télécharger les paquets depuis le site de libreoffice.
Les commandes à exécuter sont:

toto@rigel:~$ sudo add-apt-repository ppa:libreoffice/ppa
toto@rigel:~$ sudo apt-get update
toto@rigel:~$ sudo apt-get dist-upgrade

Les fichiers dont l'absence rendait impossible la lecture des rapports, à savoir les fichiers

.../program/librptlo.so
.../program/librptuilo.so
.../program/librptxmllo.so

sont fournis avec le paquet libreoffice-report-builder-bin qui devra donc être installé avec le paquet libreoffice-report-builder.