<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom">
  <channel>
    <title>JBake</title>
    <link>http://blog.gilbertoca.com</link>
    <atom:link href="http://blog.gilbertoca.com/feeds/posts/default.xml" rel="self" type="application/rss+xml" />
    <description>JBake Bootstrap Template</description>
    <language>en-gb</language>
    <pubDate>seg., 19 ago. 2024 14:33:28 -0300</pubDate>
    <lastBuildDate>seg., 19 ago. 2024 14:33:28 -0300</lastBuildDate>

    <item>
      <title>Visualizando arquivos de log no NetBeans</title>
      <link>http://blog.gilbertoca.com/2014/12/visualizando-arquivos-de-log-no-netbeans.html</link>
      <pubDate>sex., 5 dez. 2014 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2014/12/visualizando-arquivos-de-log-no-netbeans.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Disponível na Internet. &lt;a href=&quot;https://blogs.oracle.com/NetBeansSupport/entry/netbeans_ide_log_file&quot;&gt;Viewing log files in NetBeans IDE&lt;/a&gt;
Arquivo capturado em 05 de dezembro de 2014&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Os diferentes arquivos de log que o usuário do NetBeans necessita verificar em caso de problema, e como visualizá-los através do próprio IDE:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;O arquivo de log do NetBeans: Para visualizar o conteúdo deste arquivo acesse Menu Principal &amp;#8594; Exibir &amp;#8594; Log do IDE (ou diretamente $netbeans_userdir/var/log/messages.log). O conteúdo aparece na janela de saída com o título log do IDE&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Os arquivos de log de Servidor: Para visualizar os arquivos de log de Servidor, mude para janela Serviços, expanda o nó Servidores, clique com o botão direito do mouse sobre o nó da instância, e selecione &amp;#8216;Exibir Log do Servidor&amp;#8217;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Por exemplo, para o servidor de aplicações GlassFish Server Open Source que vem na instalação do NetBeans, na janela Serviços, expanda o nó Servidores &amp;#8594; GlassFish V4 e clique com o botão direito do mouse, e selecione &amp;#8216;Exibir Log do Servidor&amp;#8217;. O conteúdo aparece na janela de saída sob aba de título glassFish V4.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Observe que para um Servidor Tomcat registrado, clicar com o botão direito do mouse e selecionar &amp;#8216;Visualizar saída do servidor&amp;#8217;, exibirá o arquivo de log do servidor definido no arquivo de configuração server.xml. Este menu fica disponpível quando o servidor estiver em execução.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Cursor do notebook muda de lugar sozinho a todo instante na digitação</title>
      <link>http://blog.gilbertoca.com/2014/07/cursor-do-notebook-muda-de-lugar-sozinho-a-todo-instante-na-digitacao.html</link>
      <pubDate>sex., 25 jul. 2014 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2014/07/cursor-do-notebook-muda-de-lugar-sozinho-a-todo-instante-na-digitacao.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Há duas semanas (férias) em casa, venho percebendo um comportamento irritante no laptop de trabalho de minha esposa: cursor pula fora da linha e se coloca em outra posição,
desordenando as palavras ou frase quando estamos digitando um texto. É impossível escrever no Word, Navegador ou Skype pois o cursor não tem estabilidade.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Uma ligeira pesquisa pelo Google você encontra outras pessoas na mesma situação. Pelo que entendi, lendo sobre o assunto em alguns fóruns,
o problema está inicialmente no próprio usuário - o quê, em mim, vc questiona? &lt;strong&gt;Pois é, acidentalmente, quando digitamos fazemos leves toques no touchpad.&lt;/strong&gt;
&lt;a href=&quot;http://answers.microsoft.com/pt-br/windows/forum/windows_7-performance/o-cursor-pula-fora-da-linha-e-se-coloca-em-outra/5712b49e-dc47-4655-8113-743cdf00a41c?page:1&quot;&gt;O cursor pula fora da linha e se coloca em outra posição, desordenando as palavras ou frase. É impossível escrever no Word, Outlook ou Windows live pois o cursor não tem estabilidade&lt;/a&gt;,
reclamam que mesmo desabilitando o touchpad o comportamento continua.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Enfim, existe um problema! Bom, o que fazer? O que fiz, pois não possuo laptop, foi compra um mouse usb para aliviar minha inabilidade com touchpad. Feito isso,
descobri que o problema persistia mesmo procurando não tocar no touchpad. Agora vem a dica!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Verifique se o driver do touchpad está adequadamente instalado(precisa ser o do próprio fabricante). No meu caso, um Itautec Infaway 7550, aparece um ícone desse componente na barra de tarefas.
A partir daí você pode acessar suas propriedades e marcar a opção “Desativar quando um mouse USB externo for conectado”.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_1116&quot; style=&quot;width: 461px&quot; class=&quot;wp-caption alignleft&quot;&gt;
  &lt;a href=&quot;touchpad_propriedades.png&quot;&gt;&lt;img src=&quot;touchpad_propriedades.png&quot; alt=&quot;ItautecInfaway7550 touchpad propriedades&quot; width=&quot;451&quot; height=&quot;466&quot; class=&quot;size-full wp-image-1116&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    ItautecInfaway7550 touchpad propriedades
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Mas se você estiver melhor habituado com o touchpad, desabilite-o quando estiver digitando algum texto. Use o método acima ou identifique as teclas de atalho para essa tarefa.
No laptop de minha esposa é só apertar a tecla Fn e o desenho do touchpad que fica na tecla F1 do teclado - tem laptops com um botão acima do touch para para desativá-lo.
Sei que é irritante ficar habilitando e desabilitando esse componente a todo momento, mas não vi solução consistente ainda.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Oracle JDK8 no openSUSE</title>
      <link>http://blog.gilbertoca.com/2014/07/oracle-jdk8-no-opensuse.html</link>
      <pubDate>qua., 2 jul. 2014 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2014/07/oracle-jdk8-no-opensuse.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Esta forma de instalação é mais resumida que a do &amp;lt;a href=&quot;/2013/02/instale-oracle-jdk7-no-opensuse.html&quot; title=&quot;Instale Oracle JDK7 no openSUSE[post antigo&amp;lt;/a&amp;gt; e utiliza o formato comprimido (tar.gz).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Realize o download a partir deste local: &amp;lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html&quot; title=&quot;Java SE Development Kit 8 Downloads[Java SE Development Kit 8 Downloads&amp;lt;/a&amp;gt;, em um diretório de sua escolha - escolhi: Downloads.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Depois como super usuário (root) pelo &amp;lt;a href=&quot;http://kde.org/applications/system/konsole/&quot; title=&quot;Kconsole[Kconsole&amp;lt;/a&amp;gt; faça uso da seguinte sequência:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt; cd /usr/java
 tar xvf ~/Downloads/jdk-8u5-linux-x64.tar.gz
 chown -R root:root jdk1.8.0_05
 rm latest
 ln -s /usr/java/jdk1.8.0_05 /usr/java/latest
 cd latest/bin
 for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 1; done
 cd ..
 cd latest/jre/bin
 for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 1; done
 cd ..
 cd ..
 update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/latest/jre/lib/amd64/libnpjp2.so 1
 update-alternatives --config java
 update-alternatives --config javac
 update-alternatives --config javaplugin&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Ideologia do gênero neutro?? Não podem mudar os adultos...</title>
      <link>http://blog.gilbertoca.com/2014/06/ideologia-do-genero-neutro.html</link>
      <pubDate>qui., 12 jun. 2014 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2014/06/ideologia-do-genero-neutro.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Ideologia do gênero neutro?? Não podem mudar os adultos. Querem mudar nossas crianças! Não sabe o que significa, então assista.&lt;/p&gt;
&lt;/div&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/E2y6QeJbKcY?list=PLgG6b4TPOPJ8fxKUrNysnQmTvVy-yka8u&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Dra. Damares Alves, Advogada, Pastora e Assessora Parlamentar foi entrevistada pela Rede Super de Televisão.
Ela fez um alerta às lideranças cristãs sobre Projetos de Lei que estão sendo debatidos e aprovados, os quais ferem princípios cristãos.
Confira o vídeo composto de 4 partes.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fonte: Rede Super de Televisão, 30/05/2014&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Por que Modelagem de Domínio?</title>
      <link>http://blog.gilbertoca.com/2014/04/por-que-modelagem-de-dominio.html</link>
      <pubDate>sex., 11 abr. 2014 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2014/04/por-que-modelagem-de-dominio.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Disponível na Internet. Rebecca Wirfs-Brock &lt;a href=&quot;https://wirfs-brock.com/blog/2013/02/27/why-domain-modeling/&quot;&gt;Why Domain Modeling?&lt;/a&gt;
Arquivo capturado em 27 de fevereiro de 2013&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align:justify&quot;&gt;
  Uma barreira ao considerar arquiteturas ricas em modelo de domínio é a ideia errônea do valor ou propósito de um modelo de domínio. Para alguns, criar um modelo de domínio parere retroceder à aqueles dias iniciais onde projeto e modelagem eram percebidas como atividades discretas, longas e muitas vezes improdutivas.
&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;
  Quando a tecnologia objeto era jovem, vários autores fizeram uma forte distinção entre análise orientada a objeto, projeto orientado a objeto e programação. Ostensivamente, durante análise orientada a objeto você analisou uma tarefa com intuito de automatizá-la e desenvolveu um modelo conceitual (de objeto) daquele domínio. Você produziu um conjunto de descrições de tarefa e um modelo de objetos que incluiu representações de conceitos do domínio e mostrou como estes objetos interagiram para concluir algum trabalho. Mas você não conseguiu implementar diretamente estes objetos. Durante o projeto orientado a objeto você refinou esse modelo da análise de forma a considerar a implementação e restrições tecnológicas. Somente então, ao terminar o projeto, escreveria seu programa. A implicação era que qualquer modelo que você produzisse durante a análise ou projeto necessitaria ampla manipulação e refinamento antes de poder escrever seu programa.
&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;
  Mas mesmo naqueles dias iniciais, muitos de nós borrou as linhas entre análise, projeto e programação orientada a objeto. Na prática, como trabalhávamos era frequentemente bem diferente do sugerido pela literatura popular daquele tempo. Podíamos analisar o problema, rapidamente esboçar algumas ideias de projeto e então implementá-las. Podíamos usar cartões CRC para modelar nossos objetos (os quais descartaríamos). Não havia lacunas distintas entre análise do problema e projeto e implementação da solução. Algumas vezes diferentes pessoas faziam análise enquanto outras o projeto e programação; mas muitas vezes um desenvolvedor faria todas essas atividades. Algumas vezes, criávamos representações permanentes de alguns modelos (além de nosso código). Isso dependia da situação e da necessidade.
&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;
  Esses dias, raramente vejo alguém produzir análise de objeto ou modelos de projeto. Na verdade, projeto e modelagem tornaram-se algo sem sabor (ou de má reputação). Um bom projeto de objeto é considerado muito difícil por programadores “médios”, e não há tempo fora da codificação para pensar sobre o domínio e propor alguns modelos.
&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;
  Os modelos de objeto mais comuns que vejo, são criados para um dos seguintes propósitos: pequenos modelos conceituais construídos para ganhar entendimento de uma funcionalidade significante; ou esboços de projeto informal com o intuito de fornecer uma visão rápida para recém-chegados ou pessoas que não leem código que necessitam “saber mais” do software. A falta de modelagem (a menos que você considere código e testes modelos – Eu não!) é predominante se ou não a equipe segue práticas ágeis. Os modelos mais comuns que vejo são modelos ER detalhados que são mais especificações de implementação do que modelos. Eles não deixam nenhum detalhe dificultando a busca de partes importantes.
&lt;/p&gt;

&lt;p style=&quot;text-align:justify&quot;&gt;
  Entender e descrever um domínio e criar qualquer modelo dele de algum forma, fica fora de muitas atividades de desenvolvimento.&lt;br /&gt; Mas se seu software é complexo, sofre mudanças repentinas, estratégico e você não está fazendo nenhuma modelagem de domínio, você pode estar perdendo alguma coisa realmente importante. Se seu software é complexo o bastante, você pode notavelmente se beneficiar da modelagem de domínio e certamente realizar algumas atividades do Projeto Dirigido por Domínio(Domain-Driven Design).&lt;br /&gt; Por exemplo, a “Estratégia de Projeto” do Projeto Dirigido por Domínio é um esforço consciente para criar um entendimento comum entre visionários do negócio, especialistas do domínio e desenvolvedores. Discussões de domínio iniciais de alto nível leva ao entendimento do que é central ao problema(o núcleo do domínio) e ao relacionamento entre todas as partes(subdomínios) que se interagem. Ganhar tal consenso te ajuda a manter o foco em melhores práticas de projeto e estruturar (ou restruturar) seu software habilitando-o a crescer e evoluir sustentavelmente.&lt;br /&gt; Mas não para por aí. Se você compra a ideia de modelagem de domínio, você também se compromete a desenvolver um profundo compartilhamento do entendimento do domínio do problema ao lado do seu código. Sua missão não é somente entregar operações funcionais, mas incorporar conhecimento do domínio em sua solução. Seu código terá objetos que representam conceitos do domínio. Você será mais minucioso ao nomear classes e métodos, assim refletindo exatamente a linguagem do domínio. Você terá discussões progressivas com especialistas de domínio e em conjunto discutir e refinar seu entendimento do domínio. Ao longo do caminho você pode rascunhar e revisar modelos de domínio. Se esforçará para identificar, preservar, fortalecer e tornar explícito as conexões entre o problema do negócio e seu código. Quando refatorar seu projeto ao ganhar mais entendimento, você não esquecerá de refletir o domínio em seu código. Seu modelo de domínio vive e evolui junto com o código.&lt;br /&gt; Como consequência, não há aquela grande desconexão entre o que você codifica e o que o negócio diz. E essa pode ser uma poderosa força para uma colaboração mais próxima entre desenvolvedores e especialistas do domínio.
&lt;/p&gt;
	</description>
    </item>
    <item>
      <title>Os Segredos dos Casais Inteligentes (Gustavo Cerbasi)</title>
      <link>http://blog.gilbertoca.com/2013/12/os-segredos-dos-casais-inteligentes-gustavo-cerbasi.html</link>
      <pubDate>sex., 6 dez. 2013 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2013/12/os-segredos-dos-casais-inteligentes-gustavo-cerbasi.html</guid>
      	<description>
	&lt;div class=&quot;videoblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/pU_U2NQ2nH4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Nesta entrevista entre Seiiti Arata (Arata Academy) e Gustavo Cerbasi (Mais Dinheiro), aborda-se temas importantes para a vida financeira a dois,
como a construção de riqueza, o bom diálogo entre o casal em assuntos relacionados a dinheiro, as infidelidades financeiras e também o
divórcio e a importância em atentar para o regime de separação de bens. Você pode fazer o download desta entrevista na área de membros de
&lt;a href=&quot;https://aclassealta.com&quot;&gt;nosso site&lt;/a&gt; e conferir mais detalhes no novo livro Os Segredos dos Casais Inteligentes (Editora Sextante)&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Maioridade Penal: por Ariovaldo Ramos</title>
      <link>http://blog.gilbertoca.com/2013/11/maioridade-penal-por-ariovaldo-ramos.html</link>
      <pubDate>qua., 27 nov. 2013 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2013/11/maioridade-penal-por-ariovaldo-ramos.html</guid>
      	<description>
	&lt;div class=&quot;videoblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://player.vimeo.com/video/64759494&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://ariovaldoramosblog.blogspot.com.br/p/perfil.html&quot;&gt;Por Ariovaldo Ramos&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Precisamos ter discernimento e clareza nesse assunto.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Vida Melhor: Gustavo Cerbasi (Casais Inteligentes Enriquecem Juntos)</title>
      <link>http://blog.gilbertoca.com/2013/10/vida-melhor-gustavo-cerbasi-casais-inteligentes-enriquecem-juntos.html</link>
      <pubDate>ter., 29 out. 2013 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2013/10/vida-melhor-gustavo-cerbasi-casais-inteligentes-enriquecem-juntos.html</guid>
      	<description>
	&lt;div class=&quot;videoblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/4nf_xx8kEEc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Sábias palavras.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Clássicos Nacionais - Pollyanna</title>
      <link>http://blog.gilbertoca.com/2013/10/classicos-nacionais-pollyanna.html</link>
      <pubDate>sex., 25 out. 2013 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2013/10/classicos-nacionais-pollyanna.html</guid>
      	<description>
	&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;a class=&quot;image&quot; href=&quot;https://editoraibep.com.br/livros-buscar-detalhe/?id=84&quot;&gt;&lt;img src=&quot;pollyanna-classicos-nacionais.jpg&quot; alt=&quot;pollyanna-classicos-nacionais&quot; width=&quot;400&quot; height=&quot;553&quot;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;quoteblock&quot;&gt;
&lt;blockquote&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Aos 11 anos, Pollyanna fica órfã e vai morar com a tia. Passa por muitos momentos difíceis, mas sempre encontra um motivo para ficar feliz.
Curiosa e atrevida, essa menina transforma os lugares por onde passa e as pessoas que conhece, com seu incrível “Jogo do Contente”,
descobrindo sempre alguma coisa para se alegrar e levando bom humor onde só havia amarguras, desencadeando em todo o mundo uma impressionante onda de esperança,
de boa vontade e de entusiasmo, tornando-se símbolo da bondade e do otimismo.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;attribution&quot;&gt;
&amp;#8212; Eleanor H. Porter&lt;br&gt;
&lt;cite&gt;Pollyanna - Clássicos Nacionais&lt;/cite&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>O que pensavam os filósofos a respeito de Deus?</title>
      <link>http://blog.gilbertoca.com/2013/08/o-que-pensavam-os-filosofos-a-respeito-de-deus.html</link>
      <pubDate>qui., 29 ago. 2013 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2013/08/o-que-pensavam-os-filosofos-a-respeito-de-deus.html</guid>
      	<description>
	&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;a class=&quot;image&quot; href=&quot;https://www.augustocury.com.br/#/livros&quot;&gt;&lt;img src=&quot;o-futuro-da-humanidade.png&quot; alt=&quot;O Futuro da Humanidade&quot; width=&quot;400&quot; height=&quot;600&quot;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;quoteblock&quot;&gt;
&lt;blockquote&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Vendo que o jovem Marco Polo refletia sobre os mistérios da existência, Falcão adicionou:&lt;br&gt;
- Você pode duvidar de que Deus existe, mas Deus não duvida de que você existe. É nisso que creio.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Marco Polo ficou inquieto. Esfregou as duas mãos no rosto. Suspirou, colocou a mão no queixo,&lt;br&gt;
apoiou o cotovelo sobre a coxa como um pensador e perguntou:&lt;br&gt;
- O que pensavam os filósofos a respeito de Deus?&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;attribution&quot;&gt;
&amp;#8212; Augusto Jorge Cury&lt;br&gt;
&lt;cite&gt;&lt;a href=&quot;https://www.augustocury.com.br/#/o+autor&quot;&gt;O Futuro da Humanidade pág. 52 e 53&lt;/a&gt;&lt;/cite&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Livre-se do duplo click</title>
      <link>http://blog.gilbertoca.com/2013/05/livre-se-do-duplo-click.html</link>
      <pubDate>qua., 22 mai. 2013 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2013/05/livre-se-do-duplo-click.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Primeiro screen-cast&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Como assistir:&lt;/strong&gt; botão direito do mouse sobre a imagem, escolha PLAY ou EXECUTAR.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Melhor visualização:&lt;/strong&gt; escolha FULL SCREEN ou TELA INTEIRA&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;videoblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;video src=&quot;livre-se-do-duble-click.ogg&quot; width=&quot;640&quot; height=&quot;360&quot; controls&gt;
Your browser does not support the video tag.
&lt;/video&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Freeseer/freeseer&quot;&gt;freeseer&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.maartenbaert.be/simplescreenrecorder/&quot;&gt;simplescreenrecorder&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html&quot;&gt;vokoscreenNG&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Instale Oracle JDK7 no openSUSE</title>
      <link>http://blog.gilbertoca.com/2013/02/instale-oracle-jdk7-no-opensuse.html</link>
      <pubDate>qui., 21 fev. 2013 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2013/02/instale-oracle-jdk7-no-opensuse.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Realize o download a partir deste local: &lt;a href=&quot;https://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html&quot;&gt;Java SE Development Kit 7 Downloads&lt;/a&gt;,
em um diretório de sua escolha - escolhi: /Softwares_usados/Tools/java/jdk/ .&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Depois como super usuário (root) utilize &lt;a href=&quot;https://doc.openSUSE.org/documentation/html/openSUSE/openSUSE-startup/cha.sw_cl.html&quot;&gt;a Ferramente de Gerencimanto de Software - Zypper -&lt;/a&gt;
para instalar o pacote (arquivo RPM):&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;gilberto.andrade@A37710:~$ su - Senha
A37710:~ # cd /dados/D/Softwares_usados/Tools/java/jdk/
A37710:/dados/D/Softwares_usados/Tools/java/jdk # ll
total 439208
-rw-r----- 1 gilberto.andrade users 8405307 Feb 11 20:14 javafx-2_2_7-apidocs.zip
-rw-r--r-- 1 gilberto.andrade users 54426218 Oct 11 15:12 javafx_scenebuilder-1_1-beta-linux-x64.tar.gz
-rw-r--r-- 1 gilberto.andrade users 216263278 Jun 13 2012 javatutorials.zip
-rw-r----- 1 gilberto.andrade users 60768483 Feb 11 18:10 jdk-7u15-apidocs.zip
-rw-r----- 1 gilberto.andrade users 109860709 Feb 16 04:08 jdk-7u15-linux-x64.rpm
A37710:/dados/D/Softwares_usados/Tools/java/jdk # zypper install jdk-7u15-linux-x64.rpm&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Vamos &quot;avisar&quot; o mecanismo do sistema que é responsável por estes serviços - &lt;a href=&quot;/2012/03/alterne-entre-versoes-java-facilmente-update-alternatives-parte-2.html&quot;&gt;update-alternatives&lt;/a&gt;
que existe uma nova versão do jdk instalada. O diretório (melhor dizendo, link) &lt;strong&gt;/usr/java/latest&lt;/strong&gt; representa a versão mais recente instalada e irá apontar para última e mais nova versão:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;A37710:/usr/java # ll
total 12
lrwxrwxrwx 1 root root   16 Feb 15 16:09 default -&amp;gt; /usr/java/latest
drwxr-xr-x 4 root root 4096 Feb 15 15:13 jdk1.7.0_07
drwxr-xr-x 3 root root 4096 Feb 21 14:36 jdk1.7.0_13
drwxr-xr-x 8 root root 4096 Feb 21 14:36 jdk1.7.0_15
lrwxrwxrwx 1 root root   21 Feb 21 14:36 latest -&amp;gt; /usr/java/jdk1.7.0_15&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A partir do diretório &lt;strong&gt;latest/bin&lt;/strong&gt; e &lt;strong&gt;latest/jre/bin&lt;/strong&gt; realize as seguintes modificações:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;A37710:/usr/java # cd latest/bin/
A37710:/usr/java/latest/bin # for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done
A37710:/usr/java/latest/bin # cd ..
A37710:/usr/java/latest # cd jre/bin/
A37710:/usr/java/latest/jre/bin # for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done
A37710:/usr/java/latest/jre/bin #&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Por fim, atualizaremos o &lt;strong&gt;plugin java - javaplugin.so -&lt;/strong&gt; para os navegadores instalados no sistema:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/latest/jre/lib/amd64/libnpjp2.so 20000&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Olhe com atenção pois utilizamos como referência para atualizar o update-alternatives o caminho base &lt;strong&gt;/usr/java/latest&lt;/strong&gt;.
&lt;strong&gt;Por quê? Você sabe explicar?&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>openSUSE - Repositórios adicionais</title>
      <link>http://blog.gilbertoca.com/2012/10/opensuse-repositorios-adicionais.html</link>
      <pubDate>ter., 9 out. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/10/opensuse-repositorios-adicionais.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Vira e mexe (entre uma instalação e outra, ou um upgrade e outro) preciso adicionar alguns repositórios(repository) ao
&lt;a href=&quot;https://pt.openSUSE.org/YaST_Software_Management&quot;&gt;Yast&lt;/a&gt; para aplicativos que costumo utilizar. Registro logo abaixo os que não podem faltar:&lt;/p&gt;
&lt;/div&gt;
&lt;table border=&quot;1&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;strong&gt;Nome&lt;/strong&gt;
    &lt;/td&gt;

    &lt;td&gt;
      &lt;strong&gt;Como adicionar&lt;/strong&gt;
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://www.virtualbox.org/&quot; title=&quot;VirtualBox&quot;&gt;VirtualBox&lt;/a&gt;
    &lt;/td&gt;

    &lt;td&gt;
      zypper addrepo -r https://download.virtualbox.org/virtualbox/rpm/openSUSE/11.4/virtualbox.repo
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      Fonts
    &lt;/td&gt;

    &lt;td&gt;
      zypper addrepo -r https://download.openSUSE.org/repositories/M17N:/fonts/openSUSE_12.2/M17N:fonts.repo
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://www.google.com/intl/pt-BR/chrome/browser/?hl:pt-BR&quot; title=&quot;Google Chrome&quot;&gt;Google Chrome&lt;/a&gt;
    &lt;/td&gt;

    &lt;td&gt;
      zypper ar -f -n Google-Chrome https://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://openSUSE-community.org/Restricted_formats/12.2&quot; title=&quot;Restricted Formats&quot;&gt;Restricted formats&lt;/a&gt;
    &lt;/td&gt;

    &lt;td&gt;
      zypper addrepo -r https://packman.inode.at/suse/12.2/packman.repo&lt;br /&gt; zypper addrepo -r https://www.openSUSE-guide.org/repo/12.2/libdvdcss.repo
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;E aí, quais você mais usa?&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Como baixar um site web inteiro - wget</title>
      <link>http://blog.gilbertoca.com/2012/09/como-baixar-um-site-web-inteiro-wget.html</link>
      <pubDate>qui., 20 set. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/09/como-baixar-um-site-web-inteiro-wget.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Na verdade, a pergunta correta seria: como baixar todas as páginas - e seus recursos (css, javascript, imagem, etc) - de um site web?
Após uma &lt;a href=&quot;https://superuser.com/questions/14403/how-can-i-download-an-entire-website&quot;&gt;breve pesquisa&lt;/a&gt;, fiquei surpreso ao saber que possuía a
ferramenta adequada para essa tarefa, mas ao mesmo tempo decepcionado comigo mesmo por se tratar de um utilitário que uso a um bom tempo - aquela velha história,
compra-se um produto mas não se importa em usar todo o seu potencial.
O &lt;a href=&quot;https://www.gnu.org/software/wget/&quot;&gt;Wget&lt;/a&gt; é uma ferramenta de linha de comando bem clássica para este tipo de tarefa. Ele vem com a maioria dos sistemas Unix/Linux,
 há versão para o Windows também (mais recente &lt;a href=&quot;https://opensourcepack.blogspot.com.br/2010/05/wget-112-for-windows.html&quot;&gt;está disponível aqui&lt;/a&gt;).
Assim temos:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;wget&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-r&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--no-parent&lt;/span&gt; http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;site.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;pdfs&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Aqui mais dois ótimos sites como exemplo:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://linuxreviews.org/quicktips/wget/&quot;&gt;wget tips&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.krazyworks.com/?p=591&quot;&gt;krazyworks.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Java - Boas referências online</title>
      <link>http://blog.gilbertoca.com/2012/07/java-boas-referencias-online.html</link>
      <pubDate>sex., 13 jul. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/07/java-boas-referencias-online.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Tenho alguns livros sobre Java, mas com as mudanças que a linguagem sofreu nos três últimos anos tenho por mim que minhas referências estão desatualizadas.
Meu grande interesse é entender melhor os detalhes que muitos programadores (vindos de outra linguagem ou não) ignoram - seja por desconhecimento, seja por desinteresse,
pois o arcabouço de APIs Java é muito amplo.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Enquanto realizo minha tarefa diária - implementando ou corrigindo código - costumo manter ao meu lado algumas referências e hoje vou postar as que costumo consultar via internet.
Vamos a elas:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gui.net/cs4448.html&quot;&gt;Object-Oriented Programming and Design with UML and Java&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.exampledepot.com/&quot;&gt;The Java Developers Almanac and more&lt;/a&gt; - Author: Example Depot&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://math.hws.edu/javanotes/&quot;&gt;Introduction to Programming Using Java, Sixth Edition&lt;/a&gt; - Author: David J. Eck (&lt;a href=&quot;mailto:eck@hws.edu&quot;&gt;eck@hws.edu&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikibooks.org/wiki/Java_Programming&quot;&gt;Java Programming&lt;/a&gt; - &lt;a href=&quot;https://en.wikibooks.org/wiki/Java_Programming/Authors_%26_Contributors&quot;&gt;Authors &amp;#038; Contributors&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikibooks.org/wiki/Java_Persistence&quot;&gt;Java Persistence&lt;/a&gt; - Author: James Sutherland, Doug Clarke&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://introcs.cs.princeton.edu/java/home/&quot;&gt;Introduction to Programming in Java&lt;/a&gt; - Author: Robert Sedgewick and Kevin Wayne&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://mindview.net/Books/TIJ4&quot;&gt;Thinking in Java&lt;/a&gt; - Author: Bruce Eckel&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.people.okanagan.bc.ca/rgee/javabook.pdf&quot;&gt;Java – Objects First: An Introduction to Computer Programming using Java and BlueJ&lt;/a&gt; - Author: &lt;a href=&quot;https://www.people.okanagan.bc.ca/rgee/&quot;&gt;Rick Gee&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Java Concorrente na Prática - crítica</title>
      <link>http://blog.gilbertoca.com/2012/06/java-concorrente-na-pratica-critica.html</link>
      <pubDate>sex., 1 jun. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/06/java-concorrente-na-pratica-critica.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para um livro já consagrado, uma boa tradução seria o mínimo. Mas lamento relatar que o profissional escolhido para tal tarefa deixou muito a desejar.
Quem fez a revisão editorial do livro - se é que o fez - , também, não realizou um bom trabalho. É nítido, a partir do primeiro capítulo, o descaso com o leitor.
Um exemplo explícito disto é você ver em várias partes do livro a operação de copiar e colar, ou melhor de substituição de texto: o tradutor ou editor,
substituiu a sigla GUI por Grafical User Interface onde pode, assim, onde houvesse seGUIR, conseGUIR, etc. encontramos conseGUI(Grafical User Interface). Legal né!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom, vou parar por aqui. Não vou nem mencionar a coerência textual, caso contrário a editora teria que me ressarcir por essa “obra”.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;a class=&quot;image&quot; href=&quot;https://www.altabooks.com.br/product_info.php?products_id=204&quot;&gt;&lt;img src=&quot;java_conc_na_pratica.jpg&quot; alt=&quot;Java Concorrent na Prática&quot; width=&quot;177&quot; height=&quot;250&quot;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>É um PostgreSQL! Não, é um MSSql! Não, é um DB2! [h2 modo compatibilidade]</title>
      <link>http://blog.gilbertoca.com/2012/05/e-um-postgresql-nao-e-um-mssql-nao-e-um-db2-h2-modo-compatibilidade.html</link>
      <pubDate>sex., 18 mai. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/05/e-um-postgresql-nao-e-um-mssql-nao-e-um-db2-h2-modo-compatibilidade.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Calma pessoal, é apenas o banco &lt;a href=&quot;http://www.h2database.com/html/features.html#compatibility&quot;&gt;H2 em modo compatibilidade&lt;/a&gt;! Imagine
que você acabou levando trabalho pra casa (Novidade!!!) mas se
esqueceu que em casa vc não possui o ambiente - banco de dados -
desenvolvimento semelhante ao do trabalho. Em meu caso um servidor de
banco de dados PostgreSQL.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O que isso tem haver com &lt;a href=&quot;http://www.h2database.com/html/main.html&quot;&gt;o banco de dados H2&lt;/a&gt;? Diferentemente de um
Postgresql, um MS Sql ou Oracle o H2 é um banco de dados leve e de
fácil instalação, podendo até executá-lo sem a necessidade de uma
instalação propriamente dita.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_mas_como_isso_funciona&quot;&gt;Mas como isso funciona?&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Há dua formas de se beneficiar desta característia. A primeira é
utilizar o driver jdbc do próprio H2, utilizando o parâmetro MODE na
URL de conexão:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;jdbc:h2:file:data&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;teste;&lt;span style=&quot;color: #007800;&quot;&gt;create&lt;/span&gt;=&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;true&lt;/span&gt;;&lt;span style=&quot;color: #007800;&quot;&gt;MODE&lt;/span&gt;=PostgreSQL;&lt;span style=&quot;color: #007800;&quot;&gt;DB_CLOSE_DELAY&lt;/span&gt;=-&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Assim você poderia recriar as estruturas do banco por script ou
ativando a criação das entidades no provedor de persistência - caso
utilize JPA. Veja que as estruturas - tabelas, views, sequências, etc
- não teriam que ser ajustadas por estar utilizando o H2. O banco H2
entende o dialeto, por assim dizer, do banco a ser “emulado” pelo
parâmetro MODE.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A segunda maneira, por sinal mais interessante, é não fazer nada!
Como assim? Você provavelmente se questiona! É verdade, você não
mexe em nada do seu projeto - que é um banco específico, no meu caso o
PostgreSQL. Você continua utlizando o driver, a URL do seu banco e
deixa o H2 fazer o resto. Vamos ver?
Suponha que sua forma de conexão seja a seguinte:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependencies&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;postgresql&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;postgresql&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;8.1-408.jdbc3&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependencies&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;properties&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- Default Database Connection--&amp;gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;jdbc.url&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;jdbc:postgresql://localhost:5435/teste&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/jdbc.url&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;jdbc.driverClassName&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;org.postgresql.Driver&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/jdbc.driverClassName&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;jdbc.username&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;teste&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/jdbc.username&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;jdbc.password&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;teste&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/jdbc.password&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/properties&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para funcionar precisamos ter um servidor PostreSQL rodando
localmente, certo? Pois bem, vamos iniciar e estabelecer um servidor
PostgreSQL através do H2. Para facilitar as coisas, vamos criar &lt;a href=&quot;http://www.manydesigns.com/documentation/tutorials/using-maven-profiles-and-resource-filtering.html&quot;&gt;um profile&lt;/a&gt; que nos auxiliará nesta tarefa:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;profiles&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;profile&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;id&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;h2&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/id&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;activation&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;activeByDefault&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;false&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/activeByDefault&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/activation&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependencies&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
			&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;postgresql&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
			&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;postgresql&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
			&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;8.1-408.jdbc3&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
			&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;com.h2database&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
			&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;h2&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
			&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1.3.166&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependencies&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/profile&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/profiles&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora a “grande sacada” do H2, abra dois terminais: um para rodar o
servidor e a outra para você trabalhar normalmente com o maven. Em uma
delas iremos iniciar o servidor:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;mvn &lt;span style=&quot;color: #660033;&quot;&gt;-P&lt;/span&gt; h2 exec:java -Dexec.mainClass=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;org.h2.tools.Server&quot;&lt;/span&gt; -Dexec.args=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;-properties data -baseDir data&quot;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Após este comando, você terá a sua disposição uma interface - via
navegador - a qual lhe permitirá escolher em qual MODE rodar o
servidor.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_899&quot; style=&quot;width: 557px&quot; class=&quot;wp-caption alignleft&quot;&gt;
  &lt;a href=&quot;H2_admin_interface.png&quot;&gt;&lt;img src=&quot;H2_admin_interface.png&quot; alt=&quot;&quot; title=&quot;H2_admin_interface&quot; width=&quot;547&quot; height=&quot;675&quot; class=&quot;size-full wp-image-899&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    H2 Admin Interface
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Ao conectar àquela configuração definida incialmente, teremos outra
interface de administração. Aqui poderemos administrar nosso “banco
PostgreSQL”&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_903&quot; style=&quot;width: 835px&quot; class=&quot;wp-caption alignleft&quot;&gt;
  &lt;a href=&quot;H2_admin_interface_PG_MODE.png&quot;&gt;&lt;img src=&quot;H2_admin_interface_PG_MODE.png&quot; alt=&quot;&quot; title=&quot;H2_admin_interface_PG_MODE&quot; width=&quot;825&quot; height=&quot;831&quot; class=&quot;size-full wp-image-903&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    H2 Admin Console
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Acesse este banco por sua aplicação ou por qualquer outro cliente
jdbc - por exemplo o squirrel. Lembre-se você estará acessando um
banco PostgreSQL!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Como o Linux é construído - Vídeo</title>
      <link>http://blog.gilbertoca.com/2012/04/como-o-linux-e-construido-video.html</link>
      <pubDate>ter., 3 abr. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/04/como-o-linux-e-construido-video.html</guid>
      	<description>
	&lt;div class=&quot;videoblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/yVpbFMhOAwE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Precisa comentar?&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Alterne entre versões Java facilmente [update-alternatives] parte 2</title>
      <link>http://blog.gilbertoca.com/2012/03/alterne-entre-versoes-java-facilmente-update-alternatives-parte-2.html</link>
      <pubDate>seg., 26 mar. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/03/alterne-entre-versoes-java-facilmente-update-alternatives-parte-2.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A um tempo atrás escrevi sobre o &lt;a href=&quot;http://linux.die.net/man/8/update-alternatives&quot;&gt;utilitário de sistema update-alternatives&lt;/a&gt; e mostrei &lt;a href=&quot;http://blog.gilbertoca.com/?p=383&quot;&gt;como alternar entre versões do Java usando o mesmo&lt;/a&gt;.
Naquele mesmo post mostrei que o Java já havia sido instalado e configurado pelo sistema de gerenciamento de pacotes pre-definido - &lt;a href=&quot;http://en.openSUSE.org/YaST_Software_Management&quot;&gt;Yast&lt;/a&gt;.
Como já é de conhecimento de alguns a &lt;a href=&quot;http://www.oracle.com&quot;&gt;Oracle&lt;/a&gt; mudou a &lt;a href=&quot;http://www.hardware.com.br/noticias/2011-08/java-licenca-linux.html&quot;&gt;forma de licenciamento do Java&lt;/a&gt;
e com isso a maioria das distribuições - senão todas - optaram por retirar o Java distribuído pela Oracle de seus repositórios. Com isso, se você precisar instalar a versão Java da Oracle terá que fazê-la manualmente.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Antes de começar, quero notificar aos usuários do navegador Chromium que como eles tive dificuldades, no início, para fazê-lo funcionar com Java ao acessar o site do Banco do Brasil.
Para confirmar este problema é só fazer uma pesquisa no Google usando a seguinte sentença: &lt;a href=&quot;https://www.google.com.br/search?sourceid:chrome&amp;#038;ie=UTF-8&amp;#038;q=chromium+banco+do+brasil&quot;&gt;chromium banco do brasil&lt;/a&gt;.
Então para a felicidade geral nação “chromiumana”, relato que esta maneira manual aqui demonstrada soluciona este pequeno problema.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Então vamos lá!
Os passos são esses:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Baixe a versão RPM do &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html&quot;&gt;site da Oracle&lt;/a&gt; - baixei a versão jre-7u3-linux-i586.rpm;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instale o jre com yast2, zypper, ou com um duplo clique no rpm pelo dolphin ou nautilus:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    &lt;div class=&quot;wp_syntax&quot;&gt;
      &lt;table&gt;
        &lt;tr&gt;
          &lt;td class=&quot;code&quot;&gt;
            &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;SUGEP265338:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# zypper in jre-7u3-linux-i586.rpm&lt;/span&gt;&lt;/pre&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    &lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Agora precisamos adicionar esta instalação às alternativas já instaladas, de forma a disponibilizá-la como uma opção:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    &lt;div class=&quot;wp_syntax&quot;&gt;
      &lt;table&gt;
        &lt;tr&gt;
          &lt;td class=&quot;code&quot;&gt;
            &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;SUGEP265338:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --install /usr/bin/java java /usr/java/jre1.7.0_03/bin/java 40&lt;/span&gt;&lt;/pre&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    &lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Faremos o mesmo para o plugin java. Esta opção é muito importante pois estabelece qual versão Java para navegação web estaremos usando:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    &lt;div class=&quot;wp_syntax&quot;&gt;
      &lt;table&gt;
        &lt;tr&gt;
          &lt;td class=&quot;code&quot;&gt;
            &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;SUGEP265338:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --install /usr/lib/browser-plugins/javaplugin.so javaplugin /usr/java/jre1.7.0_03/lib/i386/libnpjp2.so 40&lt;/span&gt;&lt;/pre&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    &lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Bom, agora vem a parte mais fácil que é, como escrevi no primeiro post, alternar entre tais versões:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    &lt;div class=&quot;wp_syntax&quot;&gt;
      &lt;table&gt;
        &lt;tr&gt;
          &lt;td class=&quot;code&quot;&gt;
            &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;SUGEP265338:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --config java&lt;/span&gt;
There are &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt; choices &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;for&lt;/span&gt; the alternative java &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;providing &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;.
&amp;nbsp;
  Selection    Path                                     Priority   Status
&lt;span style=&quot;color: #660033;&quot;&gt;------------------------------------------------------------&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.6.0-openjdk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java   &lt;span style=&quot;color: #000000;&quot;&gt;17105&lt;/span&gt;     auto mode
  &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre1.7.0_03&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java            &lt;span style=&quot;color: #000000;&quot;&gt;40&lt;/span&gt;        manual mode
  &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.6.0-openjdk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java   &lt;span style=&quot;color: #000000;&quot;&gt;17105&lt;/span&gt;     manual mode
&amp;nbsp;
Press enter to keep the current choice&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;, or &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;type&lt;/span&gt; selection number: &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;
update-alternatives: using &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre1.7.0_03&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java to provide &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;java&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt; manual mode.
SUGEP265338:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    &lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;E finalmente, o mais importante, o plugin para os navegadores web:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    &lt;div class=&quot;wp_syntax&quot;&gt;
      &lt;table&gt;
        &lt;tr&gt;
          &lt;td class=&quot;code&quot;&gt;
            &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;SUGEP265338:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --config javaplugin&lt;/span&gt;
There are &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt; choices &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;for&lt;/span&gt; the alternative javaplugin &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;providing &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;browser-plugins&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;javaplugin.so&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;.
&amp;nbsp;
  Selection    Path                                        Priority   Status
&lt;span style=&quot;color: #660033;&quot;&gt;------------------------------------------------------------&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;IcedTeaPlugin.so                    &lt;span style=&quot;color: #000000;&quot;&gt;17106&lt;/span&gt;     auto mode
  &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre1.7.0_03&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;i386&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;libnpjp2.so   &lt;span style=&quot;color: #000000;&quot;&gt;40&lt;/span&gt;        manual mode
  &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;IcedTeaPlugin.so                    &lt;span style=&quot;color: #000000;&quot;&gt;17106&lt;/span&gt;     manual mode
&amp;nbsp;
Press enter to keep the current choice&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;, or &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;type&lt;/span&gt; selection number: &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;
update-alternatives: using &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre1.7.0_03&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;i386&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;libnpjp2.so to provide &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;browser-plugins&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;javaplugin.so &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;javaplugin&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt; manual mode.
SUGEP265338:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    &lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Pronto! Feche o navegador e faça um teste. Até a próxima!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Atualização(12/07/2012):&lt;/strong&gt; Hoje pela manhã, &lt;a href=&quot;https://www.google.com.br/search?q:update-alternatives+for+jdk+7&amp;#038;ie=utf-8&amp;#038;oe=utf-8&amp;#038;aq=t&amp;#038;rls=org.mozilla:pt-BR:official&amp;#038;client=firefox-a&quot;&gt;procurando por mudanças que torne o script&lt;/a&gt; update-alternatives compatível com o jdk 1.7,
me &lt;a href=&quot;http://odoepner.wordpress.com/2011/10/02/install-jdk7-on-openSUSE/&quot;&gt;deparei com uma forma bem mais simples&lt;/a&gt; de instalar manualmente o jdk Oracle.
Veja:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&amp;nbsp;
zypper &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;install&lt;/span&gt; jdk-&lt;span style=&quot;color: #000000;&quot;&gt;7&lt;/span&gt;-linux-x64.rpm
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jdk1.7.0&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;for&lt;/span&gt; bin &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;do&lt;/span&gt; update-alternatives &lt;span style=&quot;color: #660033;&quot;&gt;--install&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$bin&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$bin&lt;/span&gt; $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;pwd&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$bin&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;20000&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;done&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora o javaplugin para o navegador:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;update-alternatives &lt;span style=&quot;color: #660033;&quot;&gt;--install&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib64&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;browser-plugins&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;javaplugin.so javaplugin &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jdk1.7.0&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;amd64&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;libnpjp2.so &lt;span style=&quot;color: #000000;&quot;&gt;20000&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Usei a versão 64bits mas o procedimento vale também para 32bits.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Consumismo Infantil, um problema de todos</title>
      <link>http://blog.gilbertoca.com/2012/03/consumismo-infantil-um-problema-de-todos.html</link>
      <pubDate>seg., 19 mar. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/03/consumismo-infantil-um-problema-de-todos.html</guid>
      	<description>
	&lt;div class=&quot;quoteblock&quot;&gt;
&lt;blockquote&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As crianças são um alvo importante, não apenas porque escolhem o que seus pais compram e são tratadas como consumidores mirins,
mas também porque impactadas desde muito jovens tendem a ser mais fiéis a marcas e ao próprio hábito consumista que lhes é praticamente imposto.
&lt;a href=&quot;https://alana.org.br/instituto-alana/iniciativas/crianca-e-consumo/&quot;&gt;Projeto Criança e Consumo - Instituto Alana&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;attribution&quot;&gt;
&amp;#8212; https://publicidadeinfantilnao.org.br/&lt;br&gt;
&lt;cite&gt;Publicidade Infantil Não&lt;/cite&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Gnome 3 - diálogo modal move toda a aplicação</title>
      <link>http://blog.gilbertoca.com/2012/03/gnome-3-dialogo-modal-move-toda-a-aplicacao.html</link>
      <pubDate>sex., 2 mar. 2012 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2012/03/gnome-3-dialogo-modal-move-toda-a-aplicacao.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;É, finalmente consegui um tempo para postar algo aqui no blog. Ultimamente (nos dois últimos meses) estive ocupado trabalhando na conversão de alguns projetos
java para web: usavam Ant e agora, este trabalho, usam Maven. Neste período, &lt;a href=&quot;https://blog.gilbertoca.com/?p=415&quot;&gt;como vocês bem sabem&lt;/a&gt;,
fiz a atualização (na verdade uma nova instalação) do &lt;a href=&quot;https://software.openSUSE.org&quot;&gt;openSUSE&lt;/a&gt;. Estava com a versão 11.3 e com o recente lançamento da
&lt;a href=&quot;https://software.openSUSE.org/121/en&quot;&gt;versão 12.1&lt;/a&gt;, não resisti - ansioso por usar o novo &lt;a href=&quot;https://www.gnome.org/gnome-3/&quot;&gt;Gnome 3&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A mudança foi um pouco impactante mais pro lado positivo, diferente de outras experiências que tenho ouvido e lido a respeito. Bem, espero ajudar os novos adeptos a este ambiente
gráfico por aqui: postando dicas e links para solucionar eventuais embaraços por assim dizer nesta jornada de aprendizado.
Vamos começar com um link bem útil: &lt;a href=&quot;https://live.gnome.org/GnomeShell/CheatSheet&quot;&gt;GnomeShell/CheatSheet&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora algo que atrapalha um pouco: toda vez que precisamos abrir uma janela modal, tipo “Open File”, “Print”, esta mesma janela modal é anexada (colada mesmo!) à janela principal
da aplicação(Evince, Firefox, NetBeans, Empathy, etc) tornando-a uma só. Isso é contra produtivo pois em algumas situações precisamos fazer um “copy and paste” de informações
na janela principal da aplicação - ocorre muito com o Evince e com NetBeans no meu caso.
No GNOME 3, o comportamento padrão de diálogo modal é este anexar-se à janela principal da aplicação, mas este comportamento pode ser customizado, veja:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gconftool-&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--set&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;desktop&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gnome&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;shell&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;windows&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;attach_modal_dialogs &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;false&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--type&lt;/span&gt; bool&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para desabilitar. E o contrário:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gconftool-&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--set&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;desktop&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gnome&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;shell&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;windows&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;attach_modal_dialogs &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;true&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--type&lt;/span&gt; bool&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Referência:The GNOME Shell Blog - &lt;a href=&quot;https://gnomeshell.wordpress.com/2011/09/10/the-modal-windows-behavior/&quot;&gt;The modal windows behavior&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Usando comando GREP em documentos Word, OpenOffice ou LibreOffice</title>
      <link>http://blog.gilbertoca.com/2011/11/grep-like-command-for-doc-files.html</link>
      <pubDate>qui., 10 nov. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/11/grep-like-command-for-doc-files.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Esta é uma pequena dica. Se você tem uma grande quantidade de arquivos MS Word, OpenOffice e agora LibreOffice,
com certeza já teve a necessidade de utilizar os recursos que o Shell Linux/Unix nos trás - grep, sed, more, strings,
&lt;a href=&quot;http://www.wagner.pp.ru/~vitus/software/catdoc&quot;&gt;catdoc&lt;/a&gt;,
&lt;a href=&quot;http://www.winfield.demon.nl/&quot;&gt;antiwork&lt;/a&gt;, etc.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Como vocês bem sabem, gerencio o grupo &lt;a href=&quot;http://groups.google.com/group/ibmp-mensagens-reflexivas&quot;&gt;Mensagens Reflexivas&lt;/a&gt;
e neste fim de semana - aos sábados editamos as mensagens - me deparei que tal necessidade: procurar em vários arquivos docs por um nome, neste caso, por um autor.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bem, aqui está a dica:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&amp;nbsp;
gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;Dropbox&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;igreja-bmp&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;mensagens&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;ENVIADAS$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ls&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-1&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;wc&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-l&lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;167&lt;/span&gt;
&amp;nbsp;
gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;Dropbox&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;igreja-bmp&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;mensagens&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;ENVIADAS$ antiword &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt;.doc &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-i&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;João Garcia&quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;more&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir      &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville -     &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Autor: João Garcia, Oakville,   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;Prezado amigo, caso queira interagir     &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Uma busca pela rede mundial usando o Google ajuda muito nessas horas.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://superuser.com/questions/70343/grep-in-microsoft-word&quot; title=&quot;Grep in Microsoft Word?&quot;&gt;Grep in Microsoft Word?&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Agora é descobrir como listar o nome dos arquivos. Alguém se habilita?&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Alcohol 120% - Aguardando Disco</title>
      <link>http://blog.gilbertoca.com/2011/11/alcohol-120-aguardando-disco.html</link>
      <pubDate>qui., 3 nov. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/11/alcohol-120-aguardando-disco.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;[&amp;lt;img src=&quot;imagem_alcohol.png&quot; title=&quot;imagem_alcohol&quot; width=&quot;1024&quot; height=&quot;768&quot; class=&quot;alignright size-full wp-image-839&quot; /&amp;gt;][1]&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Isso é um problema? Não. Na verdade o problema está entre o teclado e o computador. &amp;lt;img src=&quot;http://blog.gilbertoca.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&amp;gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Este software não nos avisa quando tentamos gravar uma imagem de CD em uma mídia diferente desta. Ou seja, imagem CD grava-se em um CD-R, imagem DVD grava-se em DVD-R.
Referência: &amp;lt;a href=&quot;http://forum.alcohol-soft.com/index.php?/topic/26573-waiting-for-disk/[Waiting For Disk&amp;lt;/a&amp;gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;literalblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;[1]: imagem_alcohol.png&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Questionando a existência de Deus</title>
      <link>http://blog.gilbertoca.com/2011/10/questionando-a-existencia-de-deus.html</link>
      <pubDate>seg., 10 out. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/10/questionando-a-existencia-de-deus.html</guid>
      	<description>
	&lt;/blockquote cite=&quot;http://www.augustocury.com.br/#/livros&quot;&gt;
&lt;p&gt; Tentarei abordar um assunto muito complexo que perturbou e ainda perturba a mente de muitos teólogos, filósofos,
pensadores e homens de todas as culturas e raças. Um assunto que também me tirou, durante anos, a tranquilidade.
Um tema sobre o qual muitas vezes não temos coragem de falar, que fica represado em nossa alma, que raramente verbalizamos,
mas que mina nossas convicções. Questionarei a existência de Deus sob a perspectiva da sua intervenção nos eventos da humanidade.
Ao olhar para tudo o que Jesus passou, temos de questionar por que ele fez um sacrifício tão grande.
Quem se animaria a fazer o que ele fez? O que motivou alguém que discursou incansavelmente sobre a vida eterna a preferir a morte mais vexatória?
Não podemos ter medo de usar a nossa inteligência para indagar: se Deus é tão criativo, por que arquitetou uma solução tão angustiante para resgatar a humanidade?
Ao refletirmos sobre as lágrimas, o desespero, a aflição e as injustiças que macularam os principais capítulos da história da humanidade e
que ocupam uma parte central do palco de nossas vidas, temos de questionar: quem é Deus? Onde está Deus? Quais as características básicas da sua personalidade?
O que move seus sentimentos? Ao fazer esse questionamento, podemos chegar a três hipóteses:
 &lt;ol&gt;
   &lt;li&gt; Deus não existe, é uma criação da mente; &lt;/li&gt;
   &lt;li&gt; Deus existe, mas abandonou a humanidade, por considerá-la um projeto falido; &lt;/li&gt;
   &lt;li&gt; Deus existe e traçou um projeto inimaginável para resgatar a humanidade. &lt;/li&gt;
 &lt;/ol&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;cite&gt;
 &lt;div id=&quot;attachment_512&quot; style=&quot;width: 211px&quot; class=&quot;wp-caption alignleft&quot;&gt;
   &lt;img src=&quot;8_602866001.jpg&quot;  title=&quot;mestre da vida&quot; width=&quot;201&quot; height=&quot;300&quot; class=&quot;size-medium wp-image-512&quot; /&gt;

   &lt;p class=&quot;wp-caption-text&quot;&gt;
     O Mestre da Vida
   &lt;/p&gt;
 &lt;/div&gt;&lt;/a&gt;

 &lt;br /&gt; O mestre da Vida pág. 127 e 128, &lt;a href=&quot;http://www.augustocury.com.br/#/o+autor&quot;&gt;Augusto Jorge Cury&lt;/a&gt;
&lt;/cite&gt;
	</description>
    </item>
    <item>
      <title>A tabela de softwares equivalentes/substituições/ análogos Windows no Linux.</title>
      <link>http://blog.gilbertoca.com/2011/09/a-tabela-de-softwares-equivalentes-substituicoes-analogos-windows-no-linux.html</link>
      <pubDate>sex., 2 set. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/09/a-tabela-de-softwares-equivalentes-substituicoes-analogos-windows-no-linux.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;É novo usuário do sistema Linux(&lt;a href=&quot;http://www.openSUSE.org/pt-br/&quot;&gt;openSUSE&lt;/a&gt;,
&lt;a href=&quot;http://www.projetofedora.org/&quot;&gt;Fedora&lt;/a&gt;,
&lt;a href=&quot;http://www.ubuntu-br.org/&quot;&gt;Ubuntu&lt;/a&gt;,
&lt;a href=&quot;http://www.mandriva.com/br/&quot;&gt;Mandriva&lt;/a&gt;, etc)?
Não sabe por onde começar? Não encontra aquele programa que costumava usar ou um equivalente?
Pior, não sabe o nome do programa que precisa usar(Editor de Textos, Planilha Eletrônica,
Navegador Web, Gerenciador de Arquivos, Gerenciador de Transferência de Arquivos Remoto, Editoração Eletrônica, etc)?
Eis &lt;a href=&quot;http://www.linuxrsp.ru/win-lin-soft/table-eng.html&quot; title=&quot;Tabela de Equivalências de Softwares Windows no Linux&quot;&gt;aqui uma tabela que irá lhe ajudar&lt;/a&gt;!&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Onde vc acha que Deus está?</title>
      <link>http://blog.gilbertoca.com/2011/08/onde-vc-acha-que-deus-esta.html</link>
      <pubDate>qua., 17 ago. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/08/onde-vc-acha-que-deus-esta.html</guid>
      	<description>
	&lt;strong&gt;&lt;p&gt;Te desafio a assistir até o fim.&lt;/p&gt;&lt;/strong&gt;
&lt;br /&gt;&lt;code&gt;
&lt;br /&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/27206833?h=4cd007c5e2&quot; width=&quot;640&quot; height=&quot;362&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href=&quot;https://vimeo.com/27206833&quot;&gt;Ruídos na Comunicação com Deus&lt;/a&gt; from &lt;a href=&quot;https://vimeo.com/sibapa&quot;&gt;sibapa&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;br /&gt;&lt;/code&gt;
	</description>
    </item>
    <item>
      <title>Extensões (complementos) FireFox</title>
      <link>http://blog.gilbertoca.com/2011/08/extensoescomplementos-uteis-firefox.html</link>
      <pubDate>qui., 11 ago. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/08/extensoescomplementos-uteis-firefox.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As seguintes [extensões (complementos)][1] para o [navegador FireFox][2] melhoram bastante a navegabilidade:&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
  &lt;tr bgcolor=&quot;#339966&quot;&gt;
    &lt;td&gt;
      &lt;strong&gt;Complemento&lt;/strong&gt;
    &lt;/td&gt;
    &lt;td&gt;
      &lt;strong&gt;Utilidade&lt;/strong&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/download-status-bar/&quot;&gt;download-status-bar&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Gerenciador de Downloads
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/201&quot;&gt;DownThemAll!&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Gerenciador de Downloads
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/flashgot/?src=search&quot;&gt;FlashGot Mass Downloader&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Gerenciador de Downloads
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/684&quot;&gt;FireFTP&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Cliente FTP
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/super-start/&quot;&gt;Super Start&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Bookmarks Visuais
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/2888&quot;&gt;GMarks&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Sincronizar e gerenciar seus Favoritos com o Google&lt;br /&gt; Bookmarks
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/3257&quot;&gt;Dicionário pt-BR&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Dicionário português brasileiro para o verificador ortográfico integrado do Firefox
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/easy-youtube-video-download/&quot;&gt;Easy Youtube Video Downloader Express&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Utilitário para baixar vídeos
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/video-downloader-player/&quot;&gt;Ant Video Downloader com Player FLV incorporado&lt;/a&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-br/firefox/addon/video-downloadhelper/&quot;&gt;video-downloadhelper&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Utilitário para baixar vídeos
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/html5-video-everywhere/&quot;&gt;html5-video-everywhere&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Utilitário para baixar vídeos
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/pt-br/firefox/addon/print-edit/?src=search&quot;&gt;Print Edit&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Permite editar o conteúdo da página antes de imprimir
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/capture-print/?src=search&quot;&gt;Capture &amp; Print&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Capture &amp; Print permite capturar uma área da página e salvá-la em disco ou enviar para impressora
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/session-manager/&quot;&gt;Session Manager&lt;/a&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Session Manager saves and restores the state of all or some windows - either when you want it or automatically at startup and after crashes.
      It can also automatically save the state of open windows individually.
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Existem mais complementos, alias uma infinidade deles, que ajudam e transformam o [navegador FireFox][2] em um aplicativo de uso diário.
Estes são prioridade para mim e com este post posso buscar e instalar rapidamente.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;literalblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;[1]: http://br.mozdev.org/firefox/extensoes
[2]: https://addons.mozilla.org/pt-BR/firefox/&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Nosso herói!</title>
      <link>http://blog.gilbertoca.com/2011/07/nosso-heroi.html</link>
      <pubDate>sex., 22 jul. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/07/nosso-heroi.html</guid>
      	<description>
	&lt;table width=&quot;537&quot; cellspacing=&quot;0&quot; cellpadding=&quot;7&quot;&gt;
  &lt;col width=&quot;261&quot; /&gt; &lt;col width=&quot;16&quot; /&gt; &lt;col width=&quot;316&quot; /&gt; &lt;tr valign=&quot;TOP&quot;&gt;
    &lt;td bgcolor=&quot;#d9d9d9&quot; width=&quot;261&quot;&gt;
      &lt;p align=&quot;CENTER&quot;&gt;
        &lt;strong&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Nosso herói!&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;
      &lt;/p&gt;
    &lt;/td&gt;
    &lt;td colspan=&quot;2&quot; bgcolor=&quot;#d9d9d9&quot; width=&quot;346&quot;&gt;
      &lt;p align=&quot;CENTER&quot;&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;&lt;strong&gt;Leitura Bíblica:&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://www.bibliaonline.com.br/nvi/hb/4/14,15,16&quot;&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Hebreus 4.14-16 &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td colspan=&quot;3&quot; valign=&quot;TOP&quot; bgcolor=&quot;#d9d9d9&quot; width=&quot;621&quot;&gt;
      &lt;p align=&quot;CENTER&quot;&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;&lt;strong&gt;Jesus [é o] autor e consumador da nossa fé. Ele ... suportou a cruz, desprezando a vergonha, e assentou-se à direita do trono de Deus&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://www.bibliaonline.com.br/nvi/hb/12/2&quot;&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Hb 12.2&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;).&lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
      &lt;p&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Muitas pessoas gostam de heróis: colecionam fotos, figuras, relatos e qualquer coisa que se relaciona a eles. Mas o que é um herói? Segundo um dicionário, herói pode ser um grande homem que foi divinizado; que fez ações extraordinárias, principalmente na guerra; o principal personagem de uma obra literária ou cinematográfica; o protagonista de um acontecimento. &lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
      &lt;p&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Será que Jesus se enquadra nas descrições acima, para ser considerado herói? Sem medo de errar, podemos dizer que Jesus é maior que todos os que já viveram na Terra em todos os tempos. Ele não somente é um homem divinizado, mas é o Deus que se fez homem. Não fez algo extraordinário, apenas: fez o que ninguém no mundo poderia ter feito para nos salvar.&lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
      &lt;p&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Não foi brilhante numa batalha entre homens, mas venceu a maior guerra que já se travou neste mundo ao morrer na cruz por nós, derrotando o inimigo das nossas almas. Ele não é o principal personagem de um livro qualquer - é o centro da mensagem da Bíblia, de valor eterno, e cujo autor é o próprio Deus. Por fim, Jesus não é o protagonista de um acontecimento qualquer: sua vinda ao mundo dividiu a história em antes dele e depois dele.&lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
      &lt;p&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Ele não foi o centro das atenções apenas nos dias em que viveu na Terra, mas até hoje, quase dois mil anos depois de sua morte e ressurreição, ele é a razão de viver de todos os seus discípulos.&lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
      &lt;p&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Por tudo isso e por muito mais, podemos dizer que Jesus Cristo é o máximo, o supremo, o Rei dos reis, Senhor dos senhores.&lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
      &lt;p&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Ele é o nosso maior herói! Por tudo que é, fez e faz, Cristo tem todas as condições para ocupar o trono do nosso coração. Então, faça dele o Senhor da sua vida e o Salvador da sua alma! &lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
      &lt;p align=&quot;CENTER&quot;&gt;
        &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;&lt;strong&gt;Jesus supera qualquer outro herói!&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr valign=&quot;TOP&quot;&gt;
    &lt;td colspan=&quot;2&quot; bgcolor=&quot;#d9d9d9&quot; width=&quot;291&quot;&gt;
      &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;&lt;strong&gt;Autor:&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt; Helmuth Scholl, Florianópolis-SC&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;&lt;strong&gt;Edição:&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt; Transcrito do Pão Diário, 24 de março de 2010 – Rádio Trans Mundial(RTM)&lt;/span&gt;&lt;/span&gt;
    &lt;/td&gt;
    &lt;td bgcolor=&quot;#d9d9d9&quot; width=&quot;316&quot;&gt;
      &lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;Prezado amigo, caso queira interagir conosco sobre as MENSAGENS REFLEXIVAS, ou qualquer outro contato, favor utilizar o endereço &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;mailto:ibm.palmas@gmail.com&quot;&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-medium;&quot;&gt;ibm.palmas@gmail.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td colspan=&quot;3&quot; valign=&quot;TOP&quot; bgcolor=&quot;#d9d9d9&quot; width=&quot;621&quot;&gt;
      &lt;p align=&quot;CENTER&quot;&gt;
        &lt;strong&gt;Não copie ou reproduza este texto. Colabore com a missão da RTM, adquirindo seu exemplar do Pão Diário. Para adquirir o seu exemplar do Pão Diário&lt;/strong&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://www.transmundial.com.br/publicacoes.php3&quot;&gt;clique aqui&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;.
      &lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&amp;nbsp;

&lt;table style=&quot;background-color: #fff; padding: 5px;&quot; border=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;img src=&quot;http://groups.google.com/intl/pt-BR/images/logos/groups_logo_sm.gif&quot; alt=&quot;Grupos do Google&quot; width=&quot;140&quot; height=&quot;30&quot; /&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&quot;padding-left: 5px;&quot;&gt;
      &lt;strong&gt;Participe do grupo Mensagens Reflexivas&lt;/strong&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&quot;padding-left: 5px;&quot;&gt;
      E-mail: &lt;input type=&quot;text&quot; name=&quot;email&quot; /&gt;&lt;br /&gt; &lt;input type=&quot;submit&quot; name=&quot;sub&quot; value=&quot;Inscrever&quot; /&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td align=&quot;right&quot;&gt;
      &lt;a href=&quot;http://groups.google.com/group/ibmp-mensagens-reflexivas&quot;&gt;Visitar este grupo&lt;/a&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
	</description>
    </item>
    <item>
      <title>Linux - Participação no domínio do Windows</title>
      <link>http://blog.gilbertoca.com/2011/07/participacao-no-dominio-do-windows.html</link>
      <pubDate>sex., 15 jul. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/07/participacao-no-dominio-do-windows.html</guid>
      	<description>
	&lt;div class=&quot;quoteblock&quot;&gt;
&lt;blockquote&gt;
Eu não quero compartilhar aquivo nenhum, apenas quero me logar no dominio MS, para assim usar internet, e-mail, enfim tudo que uma estação de trabalho com XP faria quando ingressa no dominio!
Eu não quero criar um server com samba sem ser PDC E deixar na rede, quero apenas ao inves de usar o XP como estação de trabalho usar o openSUSE!
&lt;/blockquote&gt;
&lt;div class=&quot;attribution&quot;&gt;
&amp;#8212; Viva o Linux
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Este pedido de ajuda está registrado &lt;a href=&quot;https://www.vivaolinux.com.br/topico/Suse/Linux-em-dominio-Windows&quot;&gt;aqui&lt;/a&gt; na comunidade &lt;a href=&quot;https://www.vivaolinux.com.br/&quot;&gt;Viva o Linux&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Apesar de ser uma discussão antiga, ainda assim é bom fazer um passo a passo deste procedimento. Antes devo relatar que aqui na secretaria usamos &lt;a href=&quot;https://technet.microsoft.com/pt-br/library/cc668412.aspx&quot;&gt;Active Directory&lt;/a&gt;
para autenticação, então foi esse ambiente que usei para testar a inclusão de uma estação &lt;a href=&quot;https://pt.openSUSE.org/Portal:Distribui%C3%A7%C3%A3o&quot;&gt;Linux openSUSE&lt;/a&gt; em um Domínio Windows:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Registrar seu controlador de domínio(DC) na lista de nomes de máquinas. Adicione todo o nome qualificado primeiro e o apelido como alias: 192.168.1.2 = server.domain.com server
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;1-register_domain_controler_machine_hosts.png&quot; alt=&quot;1-register_domain_controler_machine_hosts&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Editar o arquivo /etc/resolv.conf e adicionar seu DC como nameserver: nameserver = server.domain.com
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;2-edit_etc_resolver_conf_add_DC_as_nameserver.png&quot; alt=&quot;2-edit_etc_resolver_conf_add_DC_as_nameserver&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure o kerberos através do yast: o realm deverá ser escrito em letra maiúscula: DOMAIN.COM
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;3-configure_kerberos_capitalletters_for_DC.png&quot; alt=&quot;3-configure_kerberos_capitalletters_for_DC&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configura o samba
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;4-samba_DC_none_workgroupname_domain_security_ads_realms.png&quot; alt=&quot;4-samba_DC_none_workgroupname_domain_security_ads_realms&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;  SUGEP265338:~ # more /etc/samba/smb.conf
  # smb.conf is the main Samba configuration file. You find a full commented
  # version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
  # samba-doc package is installed.
  # Date: 2011-11-02
  [global]
          add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
          domain master = No
          security = ADS
          workgroup = ADMINISTRACAO
          realm = ADMINISTRACAO.LOCAL
          idmap gid = 10000-20000
          idmap uid = 10000-20000
          usershare allow guests = No
          template homedir = /home/%D/%U
          winbind refresh tickets = yes
          template shell = /bin/bash
  [homes]
          comment = Home Directories
          valid users = %S, %D%w%S
          browseable = No
          read only = No
          inherit acls = Yes
[profiles]&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Não esqueça de reiniciar os serviços
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;5-restart_samba_server.png&quot; alt=&quot;5-restart_samba_server&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;
Adicionar a máquina ao domínio (neste momento utilizando o kerberos)
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;6-test_kerberos_autentication.png&quot; alt=&quot;6-test_kerberos_autentication&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;
net ads join -U Administrador
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;7-join_ads_domain.png&quot; alt=&quot;7-join_ads_domain&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;
Adicionar a máquina ao domínio (agora utilizando o samba): no yast use a opção:”Participação no domínio do windows”,
marcando a opção “Usar informação SMB para autenticação Linux”
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;8-windows_domain_membership.png&quot; alt=&quot;8-windows_domain_membership&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;
Reinicie a máquina
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;9-reboot_linux_client.png&quot; alt=&quot;9-reboot_linux_client&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Use com moderação!&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Firefox com rolagem lenta? Eis a solução!</title>
      <link>http://blog.gilbertoca.com/2011/06/firefox-com-rolagem-lenta-eis-a-solucao.html</link>
      <pubDate>ter., 28 jun. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/06/firefox-com-rolagem-lenta-eis-a-solucao.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Abra o Firefox, em “Editar &amp;gt;&amp;gt; Preferências &amp;gt;&amp;gt; Avançado &amp;gt;&amp;gt; Geral”, desmarque a opção “Rolagem Suave” na parte navegação.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Essa foi uma dica de Ronnie Peterson no Viva o Linux (dica com o mesmo tema: &lt;a href=&quot;https://www.vivaolinux.com.br/dica/Firefox-com-rolagem-lenta-Eis-a-solucao&quot;&gt;Firefox com rolagem lenta?&lt;/a&gt;),
que realizou esse procedimento no openSUSE 11.2 com Firefox 3.5.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Valeu Ronnie!&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Removendo itens pré-definidos da barra lateral(sidebar) iNove template</title>
      <link>http://blog.gilbertoca.com/2011/06/removendo-itens-pre-definidos-da-barra-lateralsidebar-inove-template.html</link>
      <pubDate>qua., 15 jun. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/06/removendo-itens-pre-definidos-da-barra-lateralsidebar-inove-template.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Há algum tempo venho tentando personalizar a barra lateral(sidebar) do tema([iNove template][1]) que adotei pro blog. Mas quando adiciono, por exemplo,
um widget no sidebar Norte ele aparece duplicado.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Hoje encontrei uma [discussão sobre o assunto][2] e finalmente a solução. Veja, como estão definidos os widgets para este tema:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;North sidebar: Recent Posts, WP-RecentComments, Tag Cloud&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;South sidebar: Meta&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;West sidebar: Archives&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;East sidebar: Categories&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Então, se você quiser remover o widget Archives:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;escolha Appearance&amp;#8594;Widgets&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;selecione west_sidebar&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;arraste um widget Text para o sidebar selecionado e salve&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;delete_archives_widget.png&quot; alt=&quot;delete archives widget&quot; width=&quot;436&quot; height=&quot;712&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Colocando um widget de Text vazio faz a mágica. Foi o que coloquei em cada sidebar! Desta forma pude personalizar o primeiro(North sidebar)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;Widgets_personalizado.png&quot; alt=&quot;Widgets_personalizado&quot; width=&quot;436&quot; height=&quot;712&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;[1]: &lt;a href=&quot;http://www.neoease.com/inove/&quot; class=&quot;bare&quot;&gt;http://www.neoease.com/inove/&lt;/a&gt;
[2]: &lt;a href=&quot;http://wordpress.org/support/topic/removing-sidebar-items-in-inove-template&quot; class=&quot;bare&quot;&gt;http://wordpress.org/support/topic/removing-sidebar-items-in-inove-template&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Herança de Projeto vs Agregação de Projeto</title>
      <link>http://blog.gilbertoca.com/2011/06/heranca-de-projeto-vs-agregacao-de-projeto.html</link>
      <pubDate>qua., 15 jun. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/06/heranca-de-projeto-vs-agregacao-de-projeto.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;[Requisito][1]:&lt;/strong&gt; The packaging type required to be pom for parent and aggregation (multi-module) projects.
&lt;strong&gt;Tradução: &lt;/strong&gt;para que você possa criar ou transformar um projeto em um que seja pai (PARENT) ou agregação (AGGREGATION),
necessita-se definir seu empacotamento (PACKING) para pom, [assim][2]:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;modelVersion&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4.0.0&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/modelVersion&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;com.google.constructor&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;park-samples&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!--The packaging type required to be pom for parent and aggregation (multi-module) projects.--&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;packaging&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;pom&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/packaging&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1.0-SNAPSHOT&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Apache-Click Park Samples Project&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;url&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;http://code.google.com/p/construtor&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/url&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;description&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        A parent POM used for all the projects
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/description&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Criei um [projeto hospedado no google][3] para armazenar códigos java - base de aprendizado na linguagem java, especialmente nas especificações Servlet e JPA.
Entre estes códigos, em especial, quero destacar o park-samples. [Este é estruturado utilizando tanto herança quanto agregação][4]:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;dhcppc0:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;dev&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;netbeans-config&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;park-samples&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;tree&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--dirsfirst&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-L&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;
.
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- docs
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- evolus.pencil
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- EditLegalEntity.ep
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- EditNaturalPerson.ep
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- power.architect
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- park.architect
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- park-er.pdf
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- 03000001.png
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- 03000003_en.png
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- park-cayenne
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- src
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- main
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;test&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- nbactions.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- nb-configuration.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- pom.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- park-jpa
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- src
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- main
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;test&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- LICENSE.txt
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- nbactions.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- nb-configuration.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- pom.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- README.txt
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- park-multi-module
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- core
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- src
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- nbactions.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- nb-configuration.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- pom.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- README.txt
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- web
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- src
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- pom.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- LICENSE.txt
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- pom.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- README.txt
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- LICENSE.txt
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt;-- pom.xml
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;-- README.txt&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Veja que marquei o pom do diretório raiz como pai(PARENT), mudando o tipo de empacotamento. Mas você pode perguntar: o que difere um do outro?
Bom, primeiro devo dizer que usamos herança em arquivos maven para compartilhar configurações, dependências e até recursos - dê uma boa olhada [neste pom][2] e você verá ajustes que teria de repetir em praticamente todos os sub-projetos. Já a agregação, usamos para agrupar (óbvio né! :)) projetos que precisam ser construídos juntos - quando executar mvn clean (ou outro comando) no pai, ocorrerá o mesmo nos filhos, tipo efeito cascata.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para a herança funcionar precisamos adicionar uma seção (tag parent) no pom do sub-projeto:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;modelVersion&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4.0.0&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/modelVersion&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;parent&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;com.google.constructor&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;park-samples&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1.0-SNAPSHOT&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/parent&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;park-jpa&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;packaging&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;war&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/packaging&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Parking Control[JPA]&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Quando quero agregar projetos, tenho que configurar &lt;strong&gt;o projeto que será o agregador &lt;/strong&gt;através da seção módulos (modules):&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;parent&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;com.google.constructor&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;park-samples&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1.0-SNAPSHOT&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/parent&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;park-multi-module&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;packaging&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;pom&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/packaging&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Parking Control[MULTI-MODULE]&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;description&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        A mult-module project using maven aggregation
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/description&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
...
&amp;nbsp;
   &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;modules&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;module&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;core&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/module&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;module&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;web&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/module&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/modules&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Repare que neste sub-projeto usei os dois conceitos: herança (herdando as configurações do pai) e agregação (este pom agrupa dois outros projetos).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para os sub-projetos do projeto park-multi-module, poderia adicionar a seção parent como fiz com os outros(apontando para park-samples),
mas perderia o benefício da herança. Então o fiz apontando para o próprio park-multi-module, pois este já herda do raiz. Legal, né!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;[1]: &lt;a href=&quot;http://maven.apache.org/pom.html#Inheritance&quot; class=&quot;bare&quot;&gt;http://maven.apache.org/pom.html#Inheritance&lt;/a&gt;
[2]: &lt;a href=&quot;http://code.google.com/p/construtor/source/browse/trunk/park-samples/pom.xml&quot; class=&quot;bare&quot;&gt;http://code.google.com/p/construtor/source/browse/trunk/park-samples/pom.xml&lt;/a&gt;
[3]: &lt;a href=&quot;http://code.google.com/p/construtor/&quot; class=&quot;bare&quot;&gt;http://code.google.com/p/construtor/&lt;/a&gt;
[4]: &lt;a href=&quot;http://code.google.com/p/construtor/source/browse/trunk/park-samples/README.txt&quot; class=&quot;bare&quot;&gt;http://code.google.com/p/construtor/source/browse/trunk/park-samples/README.txt&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Debugando com Maven Jetty Plugin no Netbeans</title>
      <link>http://blog.gilbertoca.com/2011/05/use-jetty-para-executar-aplicacoes-web-maven-no-netbeans.html</link>
      <pubDate>sex., 13 mai. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/05/use-jetty-para-executar-aplicacoes-web-maven-no-netbeans.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://www.eclipse.org/jetty/&quot;&gt;Jetty&lt;/a&gt; é um servidor web excelente. É rápido para iniciar o que o torna muito útil durante o desenvolvimento.
A &lt;a href=&quot;http://maven.apache.org/what-is-maven.html&quot;&gt;ferramente de construção Maven&lt;/a&gt; possui um &lt;a href=&quot;http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin&quot;&gt;plugin Jetty&lt;/a&gt;
que podemos usar em nossos projetos de aplicação Web que utilizam Maven. Desta forma, podemos usar o Jetty para testar nossos
arquivos HTML/JSP/JSF/Wicket/Click/etc. Podemos editar o arquivo JSP/HTML e atualizar nosso navegador para ver o resultado imediatamente.
Podemos até mesmo compilar um arquivo de classe Java e o servidor Jetty irá reiniciar para que possamos testar o resultado no nosso navegador.
Vejamos como configurar o &lt;a href=&quot;http://www.eclipse.org/jetty/&quot;&gt;Jetty&lt;/a&gt;, utilizando como IDE o &lt;a href=&quot;https://netbeans.apache.org&quot;&gt;Netbeans 6.9&lt;/a&gt; (deve funcionar para outras versões também!),
para executar e principalmente para depurar (Debugging) a aplicação:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Requisito: ser uma aplicação web gerenciada pelo Maven.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Primeiro vamos habilitar a função Compilar ao Salvar (&lt;a href=&quot;http://wiki.netbeans.org/FaqCompileOnSave#Using_Compile_on_Save_in_Maven_Projects&quot;&gt;Compile On Save&lt;/a&gt;) em nosso projeto.
Esta função vem habilitada somente para execução de testes em projetos gerenciados pelo Apache-Maven, aqui estamos ajustando para execução do fonte também:
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;CompileOnSave.png&quot; alt=&quot;CompileOnSave&quot; width=&quot;804&quot; height=&quot;563&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Adicione o &lt;a href=&quot;http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin&quot;&gt;plugin jetty&lt;/a&gt; para o maven;&lt;/p&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Xml&quot;&gt;&amp;lt;plugin&amp;gt;
  &amp;lt;groupId&amp;gt;org.mortbay.jetty&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;jetty-maven-plugin&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;7.0.1.v20091125&amp;lt;/version&amp;gt;
  &amp;lt;configuration&amp;gt;
      &amp;lt;!--reload&amp;gt;manual&amp;lt;/reload--&amp;gt;
      &amp;lt;scanIntervalSeconds&amp;gt;10&amp;lt;/scanIntervalSeconds&amp;gt;
      &amp;lt;stopKey&amp;gt;foo&amp;lt;/stopKey&amp;gt;
      &amp;lt;stopPort&amp;gt;9966&amp;lt;/stopPort&amp;gt;
  &amp;lt;/configuration&amp;gt;
&amp;lt;/plugin&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Abra a janela de propriedades do projeto Maven e selecione Ações(Actions) da lista de categorias (Categories).
Encontre a ação Executar (Run) e altere o valor do campo Metas de Execução (Execute Goals) para &lt;strong&gt;jetty:stop jetty:run&lt;/strong&gt; :&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;ActionRunExecuteGoals.png&quot; alt=&quot;ActionRunExecuteGoals&quot; width=&quot;752&quot; height=&quot;580&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Então, faça o mesmo para ação Depurar Projeto(Debug project) e adicione as seguintes propriedades:&lt;/p&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;jpda.listen=maven netbeans.deploy.debugmode=true&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;ActionDebugExecuteGoals.png&quot; alt=&quot;ActionDebugExecuteGoals&quot; width=&quot;760&quot; height=&quot;589&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O legal é poder depurar a aplicação web.
Pronto!! &lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;../../icon_smile.gif&quot; alt=&quot;icon smile&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Referências:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://cwiki.apache.org/WICKET/maven-jetty-plugin.html&quot;&gt;Using the Maven Jetty plugin - Wicket&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://mrhaki.blogspot.com/2009/02/use-jetty-to-run-maven-web-applications.html&quot;&gt;Use Jetty to run Maven web applications in NetBeans&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Regulamentação da Profissão de Informática</title>
      <link>http://blog.gilbertoca.com/2011/05/regulamentacao-da-profissao-de-informatica.html</link>
      <pubDate>qua., 4 mai. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/05/regulamentacao-da-profissao-de-informatica.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;
&lt;a href=&quot;http://www.senado.gov.br/atividade/materia/detalhes.asp?p_cod_mate=82918&quot;&gt;PLS - PROJETO DE LEI DO SENADO, Nº 607 de 2007.&lt;/a&gt;
Será que agora vai?
&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fontes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://homepages.dcc.ufmg.br/~bigonha/Sbc/plsbc.html&quot;&gt;SBC&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://www.senado.gov.br&quot;&gt;Senado Federal&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Porções Diárias da Bíblia[Pão Diário &amp;#038; Manancial]</title>
      <link>http://blog.gilbertoca.com/2011/04/pao-diario-manancial.html</link>
      <pubDate>qui., 28 abr. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/04/pao-diario-manancial.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Diversos autores compartilham experiências de vida sob uma ótica cristã, trazendo mensagens diárias (simples mas profundas) de encorajamento e reflexão, que mostram uma nova perspectiva de enfrentar os desafios da vida cotidiana. Pastores, escolas, empresas, igrejas e cidadãos que querem crescer na vida devocional têm procurado esse material.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Participo de um projeto na Igreja Batista Memorial de Palmas onde transcrevemos os textos das obras sitadas e [os enviamos por e-mails][1]. Este procedimento só foi possível após a autorização dos editores destas obras.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Iniciamos o projeto realizando o envio das mensagens listando no campo “para” todos os e-mails já selecionados em um senso realizado(pelos membros na igreja) na própria quadra da igreja. Vimos que transcrever e enviar as mensagens não era uma atividade muito fácil, pois tínhamos problemas:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;novos convites eram feitos e novos e-mails teriam que ser adicionados;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;formato da mensagem não era padronizado - cada membro da equipe enviava de uma forma;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;não tínhamos o controle de qual mensagem já havia sido transcrita - no inicio alguns foram repetidas;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;nem toda a equipe tinha conhecimento básico de informática e isso causou um grande transtorno, pois alguns usavam o Microsoft Word mais atual enquanto outros versões antigas.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Propus o uso de alguns mecanismos disponibilizados na rede mundial para auxiliar o controle e organização do projeto. Veja as opções que escolhi:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;[DropBox][2] - precisávamos de um lugar comum para armazenar as mensagens transcritas e as já enviadas(veja o cliente para linux);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[Google Groups][3] - precisávamos de um mecanismo para gerenciar os e-mails das pessoas interessadas(convidadas) em receber uma [mensagem reflexiva][1];&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;precisávamos definir um formato da mensagem (veja logo abaixo como ficou);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;precisávamos definir qual versão do Microsoft Word usaríamos (escolhemos Microsoft Word 97/2000/XP)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_664&quot; style=&quot;width: 1034px&quot; class=&quot;wp-caption alignright&quot;&gt;
  &lt;a href=&quot;dropbox.png&quot;&gt;&lt;img src=&quot;dropbox.png&quot; alt=&quot;cliente dropbox linux&quot; title=&quot;dropbox&quot; width=&quot;1024&quot; height=&quot;768&quot; class=&quot;size-full wp-image-664&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    cliente dropbox linux
  &lt;/p&gt;
&lt;/div&gt;

&lt;div id=&quot;attachment_662&quot; style=&quot;width: 1034px&quot; class=&quot;wp-caption alignright&quot;&gt;
  &lt;a href=&quot;formato.png&quot;&gt;&lt;img src=&quot;formato.png&quot; alt=&quot;Formato de transcrição de texto&quot; title=&quot;formato&quot; width=&quot;1024&quot; height=&quot;768&quot; class=&quot;size-full wp-image-662&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    Formato de transcrição de texto
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Minha escolha foi arriscada e ao mesmo tempo feliz. Arriscada por ter uma equipe com pouco ou nenhum conhecimento em informática básica. Confesso que a maior parte do trabalho é realizada por mim, mas estou feliz pelas escolhas que fiz - posso treinar um membro da equipe facilmente nos mecanismos escolhidos.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom, tive duas intenções ao escrever este post: a primeira descrever a experiência e o desafio que é desenvolver este trabalho; a outra é [convidá-lo][1]: receba você também uma porção diária da Bíblia em seu e-mail!
Os benefícios de uma leitura constante da Bíblia são imensos, mas isso conto em outro post.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;literalblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;[1]: http://groups.google.com/group/ibmp-mensagens-reflexivas?hl=pt-BR
[2]: https://www.dropbox.com/
[3]: http://groups.google.com/?hl=pt-BR&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Apache Shiro Parte 1 - básico</title>
      <link>http://blog.gilbertoca.com/2011/04/apache-shiro-parte-1-basico.html</link>
      <pubDate>qui., 7 abr. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/04/apache-shiro-parte-1-basico.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Este post é uma tradução livre do artigo &lt;a href=&quot;http://meri-stuff.blogspot.com/2011/03/apache-shiro-part-1-basics.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Apache Shiro Part 1 - Basics&lt;/a&gt;, publicado por Meri em 27 de março 2011&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;ATUALIZAÇÃO: duas novas seções adicionadas - tratamento de erros e hashing de senhas.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://shiro.apache.org/index.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Apache Shiro&lt;/a&gt; inicialmente chamado JSecurity,
é um framework de segurança desenvolvido em java. Foi aceito e tornou-se um projeto Apache de nível superior em 2010.
Tem como objetivo ser poderoso e fácil de usar. O projeto está em constante desenvolvimento e com listas de e-mails ativas
para usuários e desenvolvedores. Áreas mais importantes estão &lt;a href=&quot;http://shiro.apache.org/documentation.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;documentadas em sua página web&lt;/a&gt;.
No entanto, existem algumas lacunas na documentação. Não é possível aprender a usar o máximo dos recursos do Shiro somente com a documentação.
Felizmente, o código é bem documentado e onde o testei, ela foi de fácil leitura.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Principais recursos do projeto Shiro são:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;autenticação,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;autorização,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;criptografia,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;gerenciamento de sessão.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Neste artigo tentaremos demonstrar vários recursos do Shiro. Vamos começar com uma simples aplicação sem segurança e
então adicionaremos recursos de segurança. Todo código está disponível no projeto &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;SimpleShiroSecuredApplication&lt;/a&gt;
hospedado no &lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;sect3&quot;&gt;
&lt;h4 id=&quot;_aplicação_sem_segurança&quot;&gt;Aplicação sem Segurança&lt;/h4&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O código da aplicação sem segurança está localizado no ramo(branch) &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/tree/unsecured_application&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;unsecured_application&lt;/a&gt;.
A aplicação representa um sistema interno para uma companhia fictícia. A companhia tem quatro departamentos:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;administradores(administrators),&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;reparadores(repairmen),&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;cientistas(scientists),&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;vendedores(sales).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Cada departamento tem sua própria página. Cada página contém botões que serão usados por usuários em sua atividade.
Quando o usuário pressiona o botão, o trabalho é realizado. Por exemplo, qualquer reparador pode acessar a página reparadores(repairmen)
e pressionar o botão “Reparar Refrigerador(Repair Refrigerator)”. O botão repara refrigerador e mostra mensagem de sucesso.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Cada usuário tem sua própria página de gerenciamento de conta. Esta página de gerenciamento contém informações privadas do usuário.
Como a aplicação sem segurança não tem usuários ainda, a página de gerenciamento de conta não faz nada. Adicionalmente,
há uma página que contém todas funções da aplicação. Tudo que alguém pode fazer é possível ser feito nesta página.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Qualquer pessoa pode fazer qualquer coisa e ver todas as páginas. A aplicação exemplo é executada
na classe de teste &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/blob/unsecured_application/src/test/java/org/meri/simpleshirosecuredapplication/RunWaitTest.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RunWaitTest&lt;/a&gt;.
Não é uma boa prática usar teste de unidade desta forma, mas isso não é importante agora.
Se você executar a classe a aplicação estará disponível no endereço (url) &lt;a href=&quot;http://localhost:9180/simpleshirosecuredapplication/&quot; class=&quot;bare&quot;&gt;http://localhost:9180/simpleshirosecuredapplication/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect3&quot;&gt;
&lt;h4 id=&quot;_adicionando_autenticação&quot;&gt;Adicionando Autenticação&lt;/h4&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Primeiro, temos que verificar a identidade do usuário. A mais fácil e padronizada forma de autenticação é feita por senha e nome usuário.
Usuário preenche o seu nome de usuário e senha e o sistema verifica se os valores fornecidos combinam com alguma conta de usuário.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para aplicações mais simples, é suficiente armazenar nome e senha de usuários em arquivos de texto puro.
Em um cenário mais realista, o nome e senha são armazenados em um mecanismo de persistente or a verificação é feita por outro sistema como ldap
ou active directory. Shiro suporta todos os métodos de autenticação mencionados. Se os recursos de autenticação pré-existentes não são suficientes, é
possível estender o framework com sua própria implementação de verificação.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Neste capítulo, iremos adicionar autenticação baseada em nome de usuário e senha na aplicação. Nome de usuário e senha serão armazenados no arquivo
de inicialização do Shiro, o qual é texto e estático.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Novos requisitos:&lt;/strong&gt;
É possível a entrada e saída de usuários(log in/out). A aplicação será acessível somente para usuários registrados.
Usuário com autenticação sem erros é redirecionado para sua própria página de gerenciamento de conta.
Todas as páginas e funções da aplicação serão acessíveis para qualquer usuário autenticado.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Passos necessários:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;adicionar Apache Shiro,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;criar página de autenticação(log in),&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;configurar usuários e senhas,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;criar página de saída(log out).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_adicionar_apache_shiro&quot;&gt;Adicionar Apache Shiro&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Shiro é integrado à aplicação web através de &lt;a href=&quot;http://download.oracle.com/javaee/5/api/javax/servlet/Filter.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;filtros servlet&lt;/a&gt;.
Um filtro intercepta requisições e respostas antes do servlet e executa todas as tarefas necessárias
(como a identificação do usuário atualmente autenticado, anexar o usuário ao thread corrente, &amp;#8230;&amp;#8203;).
Filtros Shiro pré-definidos fornecem recursos de segurança básicos, como:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;força a autenticação do usuário(log in),&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;força ssl,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;verificação dos direitos de acesso à página.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Se você quiser aprender mais sobre filtros Shiro pré-definidos, um bom lugar para começar é a enumeração &lt;a href=&quot;http://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/filter/mgt/DefaultFilter.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;DefaultFilter&lt;/a&gt;.
Ela lista todos os filtros Shiro pré-definidos disponíveis. Se estes não forem suficientes para suas necessidades, você pode criar um personalizado.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Usaremos o filtro altamente configurável &lt;a href=&quot;http://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/servlet/IniShiroFilter.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;IniShiroFilter&lt;/a&gt;.
Ele lê a configuração Shiro a partir do arquivo ini e inicializa o framework de segurança. Ele não executa qualquer verificação de segurança.
Verificação de segurança, autenticação de usuário, verificação de protocolo, etc., são
todos transferidos(delegados) tanto para o filtro Shiro pré-definido quanto para o filtro personalizado(outra implementação).
O filtro IniShiroFilter apenas os inicializa.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A configuração ini é descrita na &lt;a href=&quot;http://shiro.apache.org/configuration.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;documentação&lt;/a&gt; e
no &lt;a href=&quot;http://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/servlet/IniShiroFilter.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;javadoc&lt;/a&gt;.
O arquivo de configuração ini tem quatro seções:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Seção [main] contém a inicialização do Shiro. Filtros e objetos personalizados são configurados aqui.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Seção [users] define usuários, senhas e perfis de usuário(roles).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Seção [roles] associa perfis(roles) com permissões.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Seção [urls] especifica direitos de acesso às páginas da aplicação (urls). É feito ligando filtro tanto pré-definido quanto personalizado às urls&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Adicione Apache Shiro como dependência ao arquivo pom.xml:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;properties&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;shiro.version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1.1.0&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/shiro.version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/properties&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependencies&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;org.apache.shiro&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;shiro-core&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;${shiro.version}&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;org.apache.shiro&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/groupId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;shiro-web&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/artifactId&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;${shiro.version}&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/version&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependency&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/dependencies&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Crie o arquivo Shiro.ini e o coloque no classpath. Configure o arquivo web.xml para chamar o filtro IniShiroFilter antes de cada requisição:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;filter&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;filter-name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ShiroFilter&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/filter-name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;filter-class&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;org.apache.shiro.web.servlet.IniShiroFilter&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/filter-class&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;init-param&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;param-name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;configPath&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/param-name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;param-value&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;classpath:Shiro.ini&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/param-value&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/init-param&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/filter&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;filter-mapping&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;filter-name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ShiroFilter&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/filter-name&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;url-pattern&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/*&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/url-pattern&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/filter-mapping&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_criar_página_de_autenticaçãolog_in&quot;&gt;Criar Página de Autenticação(Log in)&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A página de autenticação é uma simples página html contendo um botão submissão, nome de usuário e senha.
A funcionalidade de autenticação é tratada pelo filtro Shiro authc pré-definido. O filtro autch permite acesso à página (url)
somente a usuários autenticados. Se o usuário não está autenticado, o filtro o redirecionará para a página de autenticação (log in).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Crie a página login.jsp:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;form&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;loginform&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;action&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;method&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;post&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;table&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;align&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;left&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;border&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;cellspacing&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;cellpadding&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;3&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Username:&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;text&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;user&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;maxlength&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;30&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Password:&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;password&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;pass&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;maxlength&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;30&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;td&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;colspan&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;2&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;align&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;left&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;checkbox&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;remember&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;font&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;size&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Remember Me&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/font&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;td&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;colspan&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;2&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;align&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;right&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;submit&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;submit&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Login&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/td&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/tr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/table&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/form&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Habilite o filtro authc para todas as páginas da aplicação:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;main&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# specify login page
authc&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;loginUrl = &lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;account&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;login&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;jsp
&amp;nbsp;
# name of request parameter with username; &lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; not present &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; assumes &lt;span style=&quot;color: #C5A22D;&quot;&gt;&apos;username&apos;&lt;/span&gt;
authc&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;usernameParam = &lt;span style=&quot;color: #804040;&quot;&gt;user&lt;/span&gt;
# name of request parameter with password; &lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; not present &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; assumes &lt;span style=&quot;color: #C5A22D;&quot;&gt;&apos;password&apos;&lt;/span&gt;
authc&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;passwordParam = pass
# does the &lt;span style=&quot;color: #804040;&quot;&gt;user&lt;/span&gt; wish &lt;span style=&quot;color: #668080;&quot;&gt;to&lt;/span&gt; be remembered&lt;span style=&quot;color: #000000;&quot;&gt;?&lt;/span&gt;; &lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; not present &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; assumes &lt;span style=&quot;color: #C5A22D;&quot;&gt;&apos;rememberMe&apos;&lt;/span&gt;
authc&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;rememberMeParam = remember
&amp;nbsp;
# redirect after successful login
authc&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;successUrl  = &lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;account&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;personalaccountpage&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;jsp
&amp;nbsp;
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;urls&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# enable authc &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; &lt;span style=&quot;color: #804040;&quot;&gt;for&lt;/span&gt; all application pages
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/**&lt;/span&gt;=authc&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Atualização:&lt;/strong&gt; Shiro automaticamente executa a equiparação(comparação) de caminho(path matching) relativa ao contexto.
Como a aplicação SimpleShiroSecuredApplication não tem o caminho do contexto definido, caminhos completos no arquivo Shiro.ini são necessários.
No entanto, se o contexto da aplicação fosse definido para /simpleshirosecuredapplication, então os caminhos poderiam ser relativos,
por exemplo, /**=authc ou /account/personalaccountpage.jsp.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Como não é seguro enviar nome de usuário e senha pela rede, devemos forçar autenticações com o protocolo ssl.
O filtro ssl faz exatamente isso. Ele tem um parâmetro opcional: número da porta ssl. Se o parâmetro porta(port) for omitido,
ele usa a porta ssl pré-definida 443.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Antes de configurar o protocolo ssl no Shiro, precisamos habilitá-lo no servidor web. Como fazer isso, depende do servidor web.
Iremos demonstrar como habilitá-lo no &lt;a href=&quot;http://jetty.codehaus.org/jetty/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jetty&lt;/a&gt;. Primeiro, crie um keystore com o certificado auto assinado:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;keytool &lt;span style=&quot;color: #660033;&quot;&gt;-genkey&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-keyalg&lt;/span&gt; RSA &lt;span style=&quot;color: #660033;&quot;&gt;-alias&lt;/span&gt; jetty &lt;span style=&quot;color: #660033;&quot;&gt;-keystore&lt;/span&gt; keystore &lt;span style=&quot;color: #660033;&quot;&gt;-storepass&lt;/span&gt; secret &lt;span style=&quot;color: #660033;&quot;&gt;-validity&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;360&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-keysize&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;2048&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Responda todas questões e no final pressione ENTER, assim o keystore senha e a chave senha serão o mesmo.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Segundo, adicione o keystore ao projeto e configure &lt;a href=&quot;http://jetty.codehaus.org/jetty/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;o servidor Jetty&lt;/a&gt; para usar o protocolo ssl.
O código java está disponível na classe &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/blob/static_authentication_and_authorization/src/test/java/org/meri/simpleshirosecuredapplication/test/AbstractContainerTest.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;AbstractContainerTest&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora é possível configurar o filtro ssl no arquivo Shiro.ini:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;urls&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# force &lt;span style=&quot;color: #668080;&quot;&gt;ssl&lt;/span&gt; &lt;span style=&quot;color: #804040;&quot;&gt;for&lt;/span&gt; login page
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;account&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;login&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;jsp=&lt;span style=&quot;color: #668080;&quot;&gt;ssl&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight:bold;&quot;&gt;8443&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;,authc
# enable authc &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; &lt;span style=&quot;color: #804040;&quot;&gt;for&lt;/span&gt; the all application pages; as Shiro reads urls from up &lt;span style=&quot;color: #668080;&quot;&gt;to&lt;/span&gt; down, must be last
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/**&lt;/span&gt;=authc&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_configurar_usuários_e_senhas&quot;&gt;Configurar Usuários e Senhas&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A aplicação SimpleShiroSecuredApplication estará agora disponível somente para usuários autenticados.
Assim, é necessário adicionar alguns usuários de forma que algumas pessoas tenham acesso à aplicação.
A configuração é feita na seção [users] do arquivo Shiro.ini. O formato das entradas da seção é:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;username = password, roleName1, roleName2, &lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;, roleNameN&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A seguinte seção cria sete usuários, todos com a mesma senha &amp;#8216;heslo&amp;#8217;:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;users&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
administrator=heslo,Administrator
friendlyrepairmen=heslo,repairmen
unfriendlyrepairmen=heslo,repairmen
mathematician=heslo,scientist
physicien=heslo,scientist
productsales=heslo,sales
servicessales=heslo,sales&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora é possível ser autenticado e ter acesso à aplicação. No entanto, nenhuma mensagem de erro razoável é mostrada se o usuário comete um erro.
Além disso, as senhas são armazenadas em arquivo texto.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_tratamento_de_erro&quot;&gt;Tratamento de Erro&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Se o usuário comete um erro ao fazer a autenticação (log in), o Shiro o redireciona de volta para a página de login.
A página parece exatamente a mesma de antes, o que pode confundir o usuário.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Novo requerimento:&lt;/strong&gt;
Mostrar mensagem de erro após cada tentativa de autenticação(log in) sem êxito.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Toda vez que ocorrer um erro de autenticação, uma exceção é lançada. Por definição, o filtro de autenticação captura a exceção e
armazena nome da classe (exceção) em um parâmentro da requisição (request). Como desejamos personalizar os dados enviados à página,
teremos que estender o filtro pré-definido &lt;a href=&quot;http://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;FormAuthenticationFilter&lt;/a&gt;
e sobrescrever o método &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/blob/static_authentication_and_authorization/src/main/java/org/meri/simpleshirosecuredapplication/servlet/VerboseFormAuthenticationFilter.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;setFailureAttribute&lt;/a&gt;:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;java&quot; style=&quot;font-family:monospace;&quot;&gt;@Override
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;void&lt;/span&gt; setFailureAttribute&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;ServletRequest request, &lt;span style=&quot;color: #003399;&quot;&gt;AuthenticationException&lt;/span&gt; ae&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt; message &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; ae.&lt;span style=&quot;color: #006633;&quot;&gt;getMessage&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
  request.&lt;span style=&quot;color: #006633;&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;getFailureKeyAttribute&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;, message&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Substitua o filtro pré-definido FormAuthenticationFilter por &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/blob/static_authentication_and_authorization/src/main/java/org/meri/simpleshirosecuredapplication/servlet/VerboseFormAuthenticationFilter.java&quot;&gt;VerboseFormAuthenticationFilter&lt;/a&gt;
e o configure para usar o atributo de requisição (request) &amp;#8216;simpleShiroApplicationLoginFailure&amp;#8217; para armazenar a informação do erro:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;main&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# replace form authentication &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; with &lt;span style=&quot;color: #668080;&quot;&gt;verbose&lt;/span&gt; &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt;
authc = org&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;meri&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;servlet&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;VerboseFormAuthenticationFilter
# request parameter with login error information; &lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; not present &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; assumes &lt;span style=&quot;color: #C5A22D;&quot;&gt;&apos;shiroLoginFailure&apos;&lt;/span&gt;
authc&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;failureKeyAttribute=simpleShiroApplicationLoginFailure&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Mostrar o erro na página login.jsp:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;java&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;%&lt;/span&gt;
  &lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt; errorDescription &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; request.&lt;span style=&quot;color: #006633;&quot;&gt;getAttribute&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&quot;simpleShiroApplicationLoginFailure&quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;errorDescription&lt;span style=&quot;color: #339933;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;%&amp;gt;&lt;/span&gt;
Login attempt was unsuccessful&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;%=&lt;/span&gt;errorDescription&lt;span style=&quot;color: #339933;&quot;&gt;%&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;%&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Cuidado: uma aplicação real não deve apresentar muitas informações de erro de autenticação. Uma mensagem como “tentativa de logon sem sucesso.”,
com nenhuma informação adicional é geralmente suficiente.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_hashing_de_senhas&quot;&gt;Hashing de Senhas&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Na versão atual da aplicação, todas as senhas estão, ainda, em texto puro. É melhor armazenar e comparar somente o hashing da senha.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Objetos responsáveis por autenticação são chamados de &lt;a href=&quot;http://shiro.apache.org/realm.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;realms&lt;/a&gt;.
Por padrão, Shiro usa o &lt;a href=&quot;http://shiro.apache.org/static/current/apidocs/org/apache/shiro/realm/text/IniRealm.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;IniRealm&lt;/a&gt;
]com comparador de senha plugável para comparar senhas. Iremos substituir as senhas no ini por suas correspondentes hasheadas com SHA-256
e configurar o IniRealm para usar este comparador de senhas.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Gerar o hash SHA-256 da senha:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;java&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #006699;&quot;&gt;org.apache.shiro.crypto.hash.Sha256Hash&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
    Sha256Hash sha256Hash &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; Sha256Hash&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&quot;heslo&quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
    &lt;span style=&quot;color: #003399;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #006633;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006633;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;sha256Hash.&lt;span style=&quot;color: #006633;&quot;&gt;toHex&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Configurar o Shiro para comparar senha trasnformada(hashing) ao invés da própria senha:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;main&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# &lt;span style=&quot;color: #668080;&quot;&gt;define&lt;/span&gt; matcher matching hashes instead of passwords
sha256Matcher = org&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;apache&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;shiro&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;authc&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;credential&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;HashedCredentialsMatcher
sha256Matcher&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;hashAlgorithmName=SHA&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight:bold;&quot;&gt;256&lt;/span&gt;
&amp;nbsp;
# enable matcher &lt;span style=&quot;color: #804040;&quot;&gt;in&lt;/span&gt; iniRealm &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;object responsible &lt;span style=&quot;color: #804040;&quot;&gt;for&lt;/span&gt; authentication&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
iniRealm&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;credentialsMatcher = &lt;span style=&quot;color: #000000;&quot;&gt;$&lt;/span&gt;sha256Matcher&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Substituir as senhas dos usuários por senhas trasnformadas(hashing):&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;users&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
administrator=56b1db8133d9eb398aabd376f07bf8ab5fc584ea0b8bd6a1770200cb613ca005, Administrator
friendlyrepairmen=56b1db8133d9eb398aabd376f07bf8ab5fc584ea0b8bd6a1770200cb613ca005, repairmen
unfriendlyrepairmen=56b1db8133d9eb398aabd376f07bf8ab5fc584ea0b8bd6a1770200cb613ca005, repairmen
mathematician=56b1db8133d9eb398aabd376f07bf8ab5fc584ea0b8bd6a1770200cb613ca005, scientist
physicien=56b1db8133d9eb398aabd376f07bf8ab5fc584ea0b8bd6a1770200cb613ca005,  scientist
productsales=56b1db8133d9eb398aabd376f07bf8ab5fc584ea0b8bd6a1770200cb613ca005,        sales
servicessales=56b1db8133d9eb398aabd376f07bf8ab5fc584ea0b8bd6a1770200cb613ca005,  sales&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Nota: não é possível especificar SALT no arquivo de configuração ini.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_criar_página_de_saídalog_out&quot;&gt;Criar Página de Saída(Log out)&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Qualque aplicação que tenha recursos de autenticação deveria também ter o recurso de saída. Terminar uma sessão corrente com Shiro é fácil, use o comando:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;java&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;//acquire currently logged user and log him out&lt;/span&gt;
SecurityUtils.&lt;span style=&quot;color: #006633;&quot;&gt;getSubject&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006633;&quot;&gt;logout&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A página de saída(Log out) então fica assim:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;%@ page &lt;span style=&quot;color: #000066;&quot;&gt;import&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;org.apache.shiro.SecurityUtils&quot;&lt;/span&gt; %&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;% SecurityUtils.getSubject&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.logout&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;%&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
You have succesfully logged out.&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect3&quot;&gt;
&lt;h4 id=&quot;_adicionar_autorização&quot;&gt;Adicionar Autorização&lt;/h4&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Concluiremos esta primeira parte adicionando autorização à aplicação. Começamos limitando o acesso às páginas aos usuários.
Nenhum usuário deveria ser capaz de ver páginas de outros departamentos. Fornecendo assim, somente segurança parcial ao projeto,
pois o usuário ainda é capaz de usar a página com “todas as funções da aplicação” ou editar o endereço (url) no navegador para realizar qualquer ação.
Nós a chamaremos de autorização em nível de página.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Então, limitaremos a habilidade dos usuários para realizar ações próprias. Mesmo que abra a página com “todas as funções da aplicação” ou
edite o endereço (url) no navegador, ele poderá realizar somente funções específicas de seu departamento. Nós a chamaremos de autorização em nível de função.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Novos requisitos:&lt;/strong&gt; o usuário não é capaz de ver páginas de departamentos que não pertence. O usuário é capaz de realizar somente funções de seu departamento.
Uma exceção a essa regra é o administrador, que pode realizar funções administrativas e de reparação.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_página_de_autorização&quot;&gt;Página de Autorização&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Autorização em nível de página é feita com filtro de perfis(roles).
Parâmetro parte do filtro pode conter qualquer número de perfis. Usuário autenticado pode acessar a página somente se ele tem todas os perfis fornecidos.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Como de costume, o filtro de perfis(roles) é configurado no arquivo Shiro.ini:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;urls&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# force &lt;span style=&quot;color: #668080;&quot;&gt;ssl&lt;/span&gt; &lt;span style=&quot;color: #804040;&quot;&gt;for&lt;/span&gt; login page
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;account&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;login&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;jsp=&lt;span style=&quot;color: #668080;&quot;&gt;ssl&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight:bold;&quot;&gt;8443&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;,authc
&amp;nbsp;
# only users with some roles are allowed &lt;span style=&quot;color: #668080;&quot;&gt;to&lt;/span&gt; use role&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;specific pages
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;repairmen&lt;span style=&quot;color: #000000;&quot;&gt;/**&lt;/span&gt;=authc, roles&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;repairman&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;sales&lt;span style=&quot;color: #000000;&quot;&gt;/**&lt;/span&gt;=authc, roles&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;sales&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;scientists&lt;span style=&quot;color: #000000;&quot;&gt;/**&lt;/span&gt;=authc, roles&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;scientist&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;adminarea&lt;span style=&quot;color: #000000;&quot;&gt;/**&lt;/span&gt;=authc, roles&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;Administrator&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
# enable authc &lt;span style=&quot;color: #25BB4D;&quot;&gt;filter&lt;/span&gt; &lt;span style=&quot;color: #804040;&quot;&gt;for&lt;/span&gt; the all application pages; as Shiro reads urls from up &lt;span style=&quot;color: #668080;&quot;&gt;to&lt;/span&gt; down, must be last
&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/**&lt;/span&gt;=authc&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Teste se a segurança funciona: entre como um usuário de vendas, clique home, clique no link &amp;#8216;repairmen page&amp;#8217;. Você verá um erro feio.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Nós terminamos a página de autorização e substituimos o erro redirecionando-o para uma página de erro. Os filtros pré-definidos do Shiro possuem
a propriedade unauthorizedUrl. Em caso de acesso não autorizado, o filtro redirecionará o usuário para um endereço (url) específico.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;main&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# redirect &lt;span style=&quot;color: #668080;&quot;&gt;to&lt;/span&gt; an error page &lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #804040;&quot;&gt;user&lt;/span&gt; does not have access rights
roles&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;unauthorizedUrl = &lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;simpleshirosecuredapplication&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;account&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;accessdenied&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;jsp&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;accessdenied.jsp:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;xml&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;body&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
Sorry, you do not have access rights to that area.
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/body&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect4&quot;&gt;
&lt;h5 id=&quot;_autorização_de_funções&quot;&gt;Autorização de Funções&lt;/h5&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Todas as páginas departamentais estão protegidas agora. No entanto, qualquer usuário pode ainda realizar qualquer função na página com “todas as funções da aplicação”.
Além disso, qualquer usuário autenticado pode editar endereço (url) e assim fazer qualquer ação. Por exemplo, se você entrar como vendedor e colocar
&lt;a href=&quot;https://localhost:8443/simpleshirosecuredapplication/masterservlet?action=MANAGE_REPAIRMEN&quot; class=&quot;bare&quot;&gt;https://localhost:8443/simpleshirosecuredapplication/masterservlet?action=MANAGE_REPAIRMEN&lt;/a&gt; na url, a aplicação irá realizar a função gerenciar reparadores
também (e então irá dispará a exceção: null point, mas a violação de segurança já foi feita).
Atribuimos uma úncia &lt;a href=&quot;http://shiro.apache.org/permissions.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;permissão&lt;/a&gt; para cada função. Elas estão divididas em grupos:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;todas as permissões estão no grupo “functions”,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;todas as permissões administrativas estão no grupo “manage”,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;todas as permissões reparação estão no grupo “repair”,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;todas as permissões venda estão no grupo “sale”,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;todas as permissões ciência estão no grupo “science”.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Shiro suporta permissões de múltiplos níveis representadas como strings.
Níveis são separados com o símbolo &amp;#8216;:&amp;#8217;. p.e. “functions:manage:repairmen” tem três níveis: “functions”, “manage” e “repairman”.
Permissões de múltiplos níveis permitem facilmente o agrupamento de permissões. Por exemplo, o grupo science pertence ao grupo functions e
contém três permissões:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;functions:science:research,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;functions:science:writearticle,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;functions:science:preparetalk.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A classe &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/blob/static_authentication_and_authorization/src/main/java/org/meri/simpleshirosecuredapplication/actions/Actions.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Ações&lt;/a&gt;
verifica as permissões do usuário autenticado(log in) antes de fazer seu trabalho:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;java&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt; doIt&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt; neededPermission &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; getNeededPermission&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
    &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;// acquire logged user and check permission&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;SecurityUtils.&lt;span style=&quot;color: #006633;&quot;&gt;getSubject&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006633;&quot;&gt;isPermitted&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;neededPermission&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&quot;Function &quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; getName&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&quot; run succesfully.&quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; UnauthorizedException&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&quot;Logged user does not have &quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; neededPermission &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&quot; permission&quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;NOTA: Outro modo de se alcançar o mesmo objetivo é através de anotações.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O servlet &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/blob/static_authentication_and_authorization/src/main/java/org/meri/simpleshirosecuredapplication/servlet/PerformFunctionAndGoBackServlet.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;PerformFunctionAndGoBackServlet&lt;/a&gt;
captura exceções de autorização e as converte em mensagem de erro:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;java&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt; performAction&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt; actionName&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;try&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
        Actions action &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; findAction&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;actionName&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #003399;&quot;&gt;String&lt;/span&gt; result &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; action &lt;span style=&quot;color: #339933;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;?&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; action.&lt;span style=&quot;color: #006633;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        log.&lt;span style=&quot;color: #006633;&quot;&gt;debug&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&quot;Performed function with result: &quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; result&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;return&lt;/span&gt; result&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;catch&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;ShiroException ex&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
        log.&lt;span style=&quot;color: #006633;&quot;&gt;debug&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&quot;Function failed with &quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; ex.&lt;span style=&quot;color: #006633;&quot;&gt;getMessage&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&quot; message.&quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&quot;Error: &quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; ex.&lt;span style=&quot;color: #006633;&quot;&gt;getMessage&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Finalmente, precisamos configurar as permissões para os perfis no arquivo Shiro.ini. Shiro suporta curingas para permissões de múltiplo nível.
Assim, não temos que especificar cada permissão departamental em separado:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;roles&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
# members of departments should be able &lt;span style=&quot;color: #668080;&quot;&gt;to&lt;/span&gt; perform all departmental functions
sales=functions&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;sale&lt;span style=&quot;color: #000000;&quot;&gt;:*&lt;/span&gt;
scientist=functions&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;science&lt;span style=&quot;color: #000000;&quot;&gt;:*&lt;/span&gt;
repairman=functions&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;repair&lt;span style=&quot;color: #000000;&quot;&gt;:*&lt;/span&gt;
&amp;nbsp;
# administrators are able &lt;span style=&quot;color: #668080;&quot;&gt;to&lt;/span&gt; do all management functions and repair functions
Administrator=functions&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;manage&lt;span style=&quot;color: #000000;&quot;&gt;:*&lt;/span&gt;,functions&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;repair&lt;span style=&quot;color: #000000;&quot;&gt;:*&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Você pode agora acessar a página “todas as funções da aplicação” e testar as funções.
Se um usuário autenticado não tiver a permissão requerida, uma mensagem de erro aparecerá no topo da página.
Além disso, se você fizer a autenticação (log in) como vendedor e tentar hackear
&lt;a href=&quot;https://localhost:8443/simpleshirosecuredapplication/masterservlet?action=MANAGE_REPAIRMEN&quot; class=&quot;bare&quot;&gt;https://localhost:8443/simpleshirosecuredapplication/masterservlet?action=MANAGE_REPAIRMEN&lt;/a&gt; , você verá uma mensagem de erro no
console (em vez de uma mensagem de sucesso).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect3&quot;&gt;
&lt;h4 id=&quot;_fim&quot;&gt;Fim&lt;/h4&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A aplicação final está disponível no ramo(branch) &lt;a href=&quot;https://github.com/SomMeri/SimpleShiroSecuredApplication/tree/static_authentication_and_authorization&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;static_authentication_and_authorization&lt;/a&gt; hospedado no Github.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Na segunda parte iremos criar um &lt;a href=&quot;http://shiro.apache.org/realm.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;realm&lt;/a&gt; personalizado e mover usuários, senhas, perfis(roles) e permissões do arquivo ini para um banco de dados.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>pen drive - Cadê minhas pastas?</title>
      <link>http://blog.gilbertoca.com/2011/03/pen-drive-cade-minhas-pastas.html</link>
      <pubDate>sex., 25 mar. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/03/pen-drive-cade-minhas-pastas.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Meus problemas com &lt;a href=&quot;http://pt.wikipedia.org/wiki/V%C3%ADrus_de_computador&quot;&gt;vírus de computador&lt;/a&gt;,
aqui em casa, já se tornaram história. Não me lembro quando foi a última vez que
tive o trabalho de criar um &lt;a href=&quot;http://www.ubcd4win.com/howto.htm&quot;&gt;CD para boot do Windows XP&lt;/a&gt;
e a partir dele realizar a limpeza - isso não é totalmente verdade, volta e meia
tenho que fazer isso para &lt;a href=&quot;http://pt.wikipedia.org/wiki/Laptop&quot;&gt;NoteBooks&lt;/a&gt;
de colegas ou de colegas de minha esposa.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Recentemente, algo tem chamado minha atenção; vira e mexe aparece minha esposa
com bolso cheio de &lt;a href=&quot;http://pt.wikipedia.org/wiki/USB_flash_drive&quot;&gt;pen-drives&lt;/a&gt;
solicitando que eu recupere documentos e pastas que desapareceram nestes
dispositivos que, por sinal, são bem mais úteis que os velhos disquetes. E
aquela dica(para o windows explorer): Menu&amp;#8594;Ferramentas&amp;#8594;Opções de Pastas&amp;#8594;[aba]Modo de exibição,
depois marcar a opção “Mostrar pastas e arquivos ocultos”, não adianta.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_608&quot; style=&quot;width: 864px&quot; class=&quot;wp-caption alignright&quot;&gt;
  &lt;a href=&quot;MostrarOcultos.png&quot;&gt;&lt;img src=&quot;MostrarOcultos.png&quot; alt=&quot;Menu-&gt;Ferramentas-&gt;Outras Opções&quot; title=&quot;MostrarOcultos&quot; width=&quot;854&quot; height=&quot;639&quot; class=&quot;size-full wp-image-608&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    Mostrar arquivos ocultos
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Parece que alguns vírus mais recentes alteram não só o atributo oculto mas também o atributo morto.
E ai, o arquivo morre?&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Ai você pergunta: por que sua esposa traz os dispositivos pra você? por que ela não pede ao pessoal
para passar um &lt;a href=&quot;http://pt.wikipedia.org/wiki/Antiv%C3%ADrus&quot;&gt;antivírus&lt;/a&gt;? Veja, eles fazem a varredura.
Mas os arquivos e pastas continuam ocultos e minha esposa já havia tido uma experiência em casa onde
o pen-drive que usava, mesmo infectado, aparecia todos os arquivos e pastas - &lt;a href=&quot;http://live.gnome.org/Nautilus&quot;&gt;o gerenciador de arquivos do Gnome (Nautilus)&lt;/a&gt;
- apresenta todos os arquivo e pastas, inclusive os criados pelo vírus.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_612&quot; style=&quot;width: 1034px&quot; class=&quot;wp-caption alignright&quot;&gt;
  &lt;a href=&quot;NavegadorArquivosGnome.png&quot;&gt;&lt;img src=&quot;NavegadorArquivosGnome.png&quot; alt=&quot;Navegador de arquivos do Gnome - nautilus&quot; title=&quot;NavegadorArquivosGnome&quot; width=&quot;1024&quot; height=&quot;768&quot; class=&quot;size-full wp-image-612&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    Navegador de arquivos do Gnome - nautilus
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bem, esta dica não é para usuários &lt;a href=&quot;http://pt.wikipedia.org/wiki/Linux&quot;&gt;linux&lt;/a&gt;!
Então vamos à solução? Para resolver você precisa conhecer o &lt;a href=&quot;http://pt.wikipedia.org/wiki/Cmd.exe&quot;&gt;prompt de comando do windows xp&lt;/a&gt;,
em especial o comando &lt;a href=&quot;http://pt.wikipedia.org/wiki/Attrib&quot;&gt;ATTRIB&lt;/a&gt;.
Para acioná-lo faço o seguinte: &lt;code&gt;menu iniciar&amp;#8594;Todos programas&amp;#8594;Acessórios&amp;#8594;Prompt de comando&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_614&quot; style=&quot;width: 1031px&quot; class=&quot;wp-caption alignright&quot;&gt;
  &lt;a href=&quot;PromptComando.png&quot;&gt;&lt;img src=&quot;PromptComando.png&quot; alt=&quot;prompt de comando do windows xp&quot; title=&quot;PromptComando&quot; width=&quot;1021&quot; height=&quot;669&quot; class=&quot;size-full wp-image-614&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    prompt de comando do windows xp
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Criei uma pasta para demonstração a qual contém uma sub-pasta e um arquivo texto.
Primeiro, vou fazer o mesmo que alguns vírus fazem(nem tudo, é claro, apenas o que está relacionado com esta dica, ok?):&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;attachment_616&quot; style=&quot;width: 1030px&quot; class=&quot;wp-caption alignright&quot;&gt;
  &lt;a href=&quot;ComandoATTRIB.png&quot;&gt;&lt;img src=&quot;ComandoATTRIB.png&quot; alt=&quot;prompt de comando do windows - usando ATTRIB&quot; title=&quot;ComandoATTRIB&quot; width=&quot;1020&quot; height=&quot;660&quot; class=&quot;size-full wp-image-616&quot; /&gt;&lt;/a&gt;

  &lt;p class=&quot;wp-caption-text&quot;&gt;
    prompt de comando do windows - usando ATTRIB
  &lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;E em seguida, desfazerei as alterações retornando os atributos com seus valores
normais para arquivos e pastas. Perceba como é o uso dos sinais + e - diante dos parâmetros.
Usamos o sinal negativo (-) para retirar um atributo do arquivo/pasta, neste caso o A(morto) e H(oculto). Então, ficou assim:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;cmd&quot; style=&quot;font-family:monospace;&quot;&gt;C:\Demonstracao&amp;gt;ATTRIB -A -H /D /S *.*
C:\Demonstracao&amp;gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;[29/03/2011] Atualização&lt;/strong&gt;:
em alguns casos, o vírus também seta o atributo “arquivo do sistema”.
Para resolver é só acrescentar o parâmentro que corresponde a este atributo: S.
Ficando assim todo o comando:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;cmd&quot; style=&quot;font-family:monospace;&quot;&gt; ATTRIB -A -H -S /D /S *.*&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;[02/07/2013] Atualização&lt;/strong&gt;:
O Ivans Dias, em um dos comentários, colocou um vídeo do &lt;a href=&quot;http://www.professorramos.com&quot;&gt;Professor Ramos&lt;/a&gt; bem didático - &lt;a href=&quot;http://www.professorramos.com/video.php?id=187&quot;&gt;Vírus de Pendrive - Como recuperar seus Arquivos Perdidos ou Ocultados de forma Simples&lt;/a&gt; vale a pena conferir.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Um abração a todos!&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>EU, MIM ou ME? [Mapa Mental]</title>
      <link>http://blog.gilbertoca.com/2011/02/eu-mim-ou-me-mapa-mental.html</link>
      <pubDate>sex., 4 fev. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/02/eu-mim-ou-me-mapa-mental.html</guid>
      	<description>
	&lt;span class=&quot;style_0&quot;&gt;Exercício 1.0: Use EU, MIM ou ME, conforme convenha.&lt;/span&gt;
&lt;/br&gt;
&lt;span class=&quot;style_0&quot;&gt;a) Isto é para _____ fazer.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;b) Foram todos, menos _____ . &lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;c) Isto é para _____ .&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;d) Entre _____ e você nada há.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;e) Entre você e _____ nada há.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;f) Para _____ , fazer isto é fácil.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;g) Deixa _____ fazer isto.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;h) Este exercício é para _____ resolver.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;i) O presente é para _____ ?&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;j) Permita _____ abrir o envelope.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;k) Todos foram ao cinema, menos _____ .&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;l) Não se ponha entre ela e _____ .&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;m) Para _____ , Marieta não entregou o livro.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;n) Este livro é para _____ , sempre que puder, ler com atenção.&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;o) Todos gostam de uma caipirinha à beira da praia, até _____ .&lt;/span&gt;
&lt;span class=&quot;style_0&quot;&gt;p) É fácil para _____ explicar isto.&lt;/span&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O legal seria publicar o mapa mental depois do exercício. Mas coloquei apenas uma amostra de questões,
então procure mais exercício, resolva-os primeiro e depois revise o assunto com o mapa mental.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;EU_MIM_ou_ME.png&quot; alt=&quot;EU_MIM_ou_ME&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para aqueles que já usam o &lt;a href=&quot;http://freemind.sourceforge.net&quot;&gt;FreeMind&lt;/a&gt;, deixo o arquivo para melhoria: &lt;a href=&quot;EU_MIM_ou_ME.mm&quot;&gt;EU_MIM_ou_ME&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>A inteligência de Cristo diante da ansiedade</title>
      <link>http://blog.gilbertoca.com/2011/01/a-inteligencia-de-cristo-diante-da-ansiedade.html</link>
      <pubDate>seg., 3 jan. 2011 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2011/01/a-inteligencia-de-cristo-diante-da-ansiedade.html</guid>
      	<description>
	&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;a class=&quot;image&quot; href=&quot;http://www.augustocury.com.br/#/livros&quot;&gt;&lt;img src=&quot;6_457369206-201x300.jpg&quot; alt=&quot;O mestre dos Mestres&quot;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;quoteblock&quot;&gt;
&lt;blockquote&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Cristo tinha razão: há uma ansiedade inerente ao ser humano, ligada à construção de pensamentos,
influenciada pela carga genética, por fatores psíquicos e sociais. Só não tem essa ansiedade quem está morto.
Somos a espécie que possui o maior de todos os espetáculos, o da construção de pensamentos. No entanto,
muitas vezes usamos o pensamento contra nós mesmos, para gerar uma vida ansiosa. Os problemas ainda não ocorreram,
mas já estamos angustiados por eles. O capítulo 6 de Mateus diz: “Não andeis ansiosos pelo dia de amanhã&amp;#8230;&amp;#8203;
Basta a cada dia o seu próprio mal.” Cristo queria vacinar seus discípulos contra o estresse produzido por pensamentos antecipatórios.
Não abolia as metas, as prioridades, o planejamento do trabalho, pois ele mesmo tinha metas e prioridades bem estabelecidas,
mas queria que os discípulos não gravitassem em torno de problemas imaginários.
Muitos de nós vivemos o paradoxo da liberdade utópica. Por fora, somos livres porque vivemos em sociedade democráticas,
mas por dentro somos prisioneiros, escravos da ideias dramáticas e de conteúdo negativo que antecipam o futuro. Há diversas
pessoas que gozam de boa saúde, mas vivem miseravelmente pensando em câncer, infarto, acidentes, perdas.
O ensinamento de Cristo relativo à ansiedade era sofisticado, pois, para praticá-lo, seria necessário conhecer uma
complexa arte intelectual que todo ser humano tem dificuldade de aprender: a arte de gerenciar os pensamentos.
Governamos o mundo exterior, mas temos enorme dificuldade em gerenciar nosso mundo interior, o dos pensamentos e das emoções.
Somos subjugados por necessidades que nunca foram prioritárias, pelas paranóias do mundo moderno: o consumismo, a estética, a segurança.
Assim, a vida humana, que deveria ser um espetáculo de prazer, torna-se um espetáculo de terror, de medo, de ansiedade.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;attribution&quot;&gt;
&amp;#8212; Augusto Jorge Cury&lt;br&gt;
&lt;cite&gt;O mestre dos Mestres pág. 50&lt;/cite&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Sumiu os botões maximizar,minimizar,fechar[openSUSE 11.3]</title>
      <link>http://blog.gilbertoca.com/2010/12/sumiu-os-botoes-maximizarminimizarfecharopensuse-11-3.html</link>
      <pubDate>qui., 30 dez. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/12/sumiu-os-botoes-maximizarminimizarfecharopensuse-11-3.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Este comportamento do gerenciador de janelas é esquisito, para não dizer indesejável.
A coisa fica mais estranha ainda pois não tenho meios de rastrear a causa do problema (placa de vídeo,
kernel, gnome, gdm qual é o cupido?). Alguém pode, em algumas situações, acusar o compiz,
mas este não o caso - placa legada:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;dhcppc0:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gilberto &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# hwinfo --gfxcard &lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;21&lt;/span&gt;: PCI&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;AGP&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;100.0&lt;/span&gt;: 0300 VGA compatible controller &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;VGA&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;Created at pci.318&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;
  Unique ID: VCu0.UZW4QWn62T6
  Parent ID: vSkL.uvrveDpO5n6
  SysFS ID: &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;devices&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;pci0000:00&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0000:00:&lt;span style=&quot;color: #000000;&quot;&gt;01.0&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0000:01:&lt;span style=&quot;color: #000000;&quot;&gt;00.0&lt;/span&gt;
  SysFS BusID: 0000:01:&lt;span style=&quot;color: #000000;&quot;&gt;00.0&lt;/span&gt;
  Hardware Class: graphics card
  Model: &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;nVidia GeForce4 MX 440 with AGP8X&quot;&lt;/span&gt;
  Vendor: pci 0x10de &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;nVidia Corporation&quot;&lt;/span&gt;
  Device: pci 0x0181 &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;GeForce4 MX 440 with AGP8X&quot;&lt;/span&gt;
  Revision: 0xc1
  Driver: &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;nvidia&quot;&lt;/span&gt;
  Driver Modules: &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;nvidia&quot;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Assim que estalei o openSUSE 11.3 em casa ficou difícil evitar seu uso e olha que minha
família ainda não viu - ou não usufruiu - das ferramentas gráficas pois ficamos aproximadamente
3 meses usando o &lt;a href=&quot;http://nouveau.freedesktop.org/wiki/&quot;&gt;driver de vídeo que vem instalado por padrão&lt;/a&gt; - O projeto Nouveau.
Só recentemente a Nvidia publicou uma atualização &lt;a href=&quot;http://www.nvidia.com/object/linux-display-ia32-96.43.19-driver.html&quot;&gt;para minha placa de vídeo&lt;/a&gt;
e é claro para a minha versão do kernel.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom, até agora podemos dizer que o problema não é hardware. Por que? Você pode perguntar.
Veja, usei dois tipos de driver e com ambos o comportamento (defeito) persistiu.
O pior é que fica dias sem aparecer e de repente acontece. Até então não havia outro meio
de contornar o problema senão encerrar a sessão e entrar novamente.
Hoje encontrei &lt;a href=&quot;http://ubuntuforum-br.org/index.php?topic=69863.msg388780#msg388780&quot;&gt;uma discussão sobre o assunto&lt;/a&gt; - Adivinha?
Aconteceu hoje novamente - e nessa discussão o usuário “Rvos” sugere o seguinte contorno:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;sql&quot; style=&quot;font-family:monospace;&quot;&gt;Tente alt&lt;span style=&quot;color: #66cc66;&quot;&gt;+&lt;/span&gt;f2&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; depois digite metacity &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;--replace&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Com essa opção não tenho que encerra a sessão para que as janelas voltem ao normal.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Mas &amp;#8230;&amp;#8203; como vamos explicar essa solução para meu filho de 9 anos ou mesmo para minha esposa?
Sei que farão com bastante tranquilidade quando estiver por perto, mas quando não estiver?&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;ATUALIZAÇÃO (25/06/2011):&lt;/strong&gt;
Após um longo período sem este problema, aconteceu novamente: desta vez enquanto usava o &lt;a href=&quot;http://qbittorrent.sourceforge.net/&quot;&gt;qBittorrent&lt;/a&gt;.
&lt;a href=&quot;http://forums.fedoraforum.org/archive/index.php/t-241590.html&quot;&gt;Esta discussão&lt;/a&gt; pode revelar algum caminho para resolução deste problema. Com o comando sugerido, verifiquei a minha configuração:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;dhcppc0:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; gconftool-&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-R&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;desktop&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gnome&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;session
 required_components_list = &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;windowmanager,panel,filemanager&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;
 default_session = &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;gnome-settings-daemon&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;
 idle_delay = &lt;span style=&quot;color: #000000;&quot;&gt;90&lt;/span&gt;
 &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;desktop&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gnome&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;session&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;required_components:
  filemanager = nautilus
  windowmanager = gnome-wm
  panel = gnome-panel&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;E com outro ajustei para o sugerido:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;dhcppc0:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; gconftool-&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-s&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-t&lt;/span&gt; string &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;desktop&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gnome&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;session&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;required_components&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;windowmanager &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;metacity&quot;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Vamos aguardar e torcer!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;ATUALIZAÇÃO (31/12/2010):&lt;/strong&gt;
Aconteceu novamente. Desta vez enquanto verificava a lista de contatos no &lt;a href=&quot;http://live.gnome.org/Empathy&quot;&gt;Empathy&lt;/a&gt;.
O mais complicado foi constatar que este problema afeta a digitação. Ao utilizar as teclas de atalho - alt + f2 - não aconteceu nada,
a tela de execução de aplicativos não apareceu. Utilizei o menu iniciar para acionar o prompt de comando - terminal gnome - que logo apareceu,
mas não recebia qualquer digitação. O que fazer? Fui abrindo - através do menu iniciar - aplicativos que pudessem receber digitação,
mas nenhum respondia. Então tentei a caixa de texto para pesquisa do próprio menu iniciar:  Caixa de texto para pesquisa, menu iniciar.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Com isso, fiz uma cópia do texto - ctrl+c - e adicionei um ícone no &lt;a href=&quot;http://pt.wikipedia.org/wiki/Gnome-panel&quot;&gt;painel principal&lt;/a&gt;,
aquela grande barra no rodapé da tela, para acionar o Executar Aplicativo:
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;adicionar_ao_painel.png&quot; alt=&quot;adicionar ao painel&quot;&gt;&lt;/span&gt;
Observe que a imagem traz o botão de fechar, isso porque fiz a captura da tela agora depois de todo o processo.
Com o ícone disponível foi só acioná-lo e colar - ctrl+v - o comando (metacity -replace) e executar.
Pronto! Voltou ao normal!
Até quando?&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Atualização openSUSE 11.3 danifica Java</title>
      <link>http://blog.gilbertoca.com/2010/12/atualizacao-opensuse-11-3-danifica-java.html</link>
      <pubDate>ter., 7 dez. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/12/atualizacao-opensuse-11-3-danifica-java.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Veja como o &lt;a href=&quot;http://blog.gilbertoca.com/2010/06/alterne-entre-versoes-java-facilmente-update-alternatives.html&quot;&gt;post que menciono o uso do utilitário update-alternatives&lt;/a&gt; é importante.
Recentemente apliquei um patch - atualização de correção - para o
&lt;a href=&quot;http://www.openSUSE.org/pt-br/&quot;&gt;openSUSE 11.3&lt;/a&gt; e se não houvesse duas &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html&quot;&gt;máquinas virtuais java - JRE -&lt;/a&gt;,
certamente não conseguiria acessar qualquer site que dependesse do &lt;a href=&quot;http://www.oracle.com/technetwork/java/index.html&quot;&gt;Java&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Veja o problema:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;gilberto@dhcppc0:~&amp;gt; firefox -g
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property GtkTreeView::odd-row-color&apos; of typeGdkColor’ from rc file value “((GString*) 0xb1f11100)” of type GString&apos;
*** nss-shared-helper: Shared database disabled (set NSS_USE_SHARED_DB to enable).
ERROR: Invalid browser function table. Some functionality may be restricted.
/usr/src/packages/BUILD/icedtea6-1.9.2/plugin/icedteanp/IcedTeaNPPlugin.cc:1506: thread 0x8090738: Error: Failed to spawn applet viewer: Falha ao executar processo filho &quot;/etc/alternatives/../../bin/java&quot; (Arquivo ou diretório não encontrado)
*** NSPlugin Wrapper *** ERROR: NP_Initialize() wait for reply: Message timeout
ERROR: Invalid browser function table. Some functionality may be restricted.
/usr/src/packages/BUILD/icedtea6-1.9.2/plugin/icedteanp/IcedTeaNPPlugin.cc:1506: thread 0x8090738: Error: Failed to spawn applet viewer: Falha ao executar processo filho &quot;/etc/alternatives/../../bin/java&quot; (Arquivo ou diretório não encontrado)
gilberto@dhcppc0:~&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Quando constatei o problema, utilizei o &lt;a href=&quot;http://transit.iut2.upmf-grenoble.fr/cgi-bin/man/man2html?8+update-alternatives&quot;&gt;update-alternatives&lt;/a&gt; para alternar
a versão da máquina virtual java:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;gilberto@dhcppc0:~&amp;gt; su -
Senha:
dhcppc0:~ # update-alternatives –config javaplugin
There are 2 alternatives which provide `javaplugin’.
  Selection    Alternative
-----------------------------------------------
 +        1    /usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so
*         2    /usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/lib/i386/libnpjp2.so

Press enter to keep the default[*], or type selection number:
dhcppc0:~ #&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Outra solução, caso você só tenha uma versão instalada, se encontra
&lt;a href=&quot;http://www.dslreports.com/forum/r24716562-suse-update-broke-java&quot;&gt;nesta discussão&lt;/a&gt;, pelo comentário do usuário nwrickert.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;ATUALIZAÇÃO:&lt;/strong&gt; esqueci-me de mencionar que está estação de trabalho é a de
minha casa e que hoje fazem 60 dias que instalei o openSUSE 11.3. Por que está
nota? Porque os usuários do Windows XP - minha esposa e meu filho(9 anos) -
adoraram a mudança!&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Morte</title>
      <link>http://blog.gilbertoca.com/2010/11/morte-estou-lendo-e-voce.html</link>
      <pubDate>seg., 8 nov. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/11/morte-estou-lendo-e-voce.html</guid>
      	<description>
	&lt;blockquote cite=&quot;http://www.ograndeconflito.com.br/&quot;&gt;
  &lt;ul&gt;
    &lt;li&gt;
    &lt;a href=&quot;http://www.bibliaonline.net/bol/?acao=por_verso&amp;#038;livro=19&amp;#038;capitulo=146&amp;#038;versiculo=4&amp;#038;versao=2&amp;#038;lang=pt-BR&amp;#038;cab=1&amp;#038;link=bol&amp;#038;anobiblico=08/11&amp;#038;tipo=2&quot;&gt;Sai-lhes o espírito e eles tornam ao pó; nesse mesmo dia perecem todos os seus desígnios.&lt;/a&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;a href=&quot;http://www.bibliaonline.net/bol/?acao=por_verso&amp;#038;livro=21&amp;#038;capitulo=9&amp;#038;versiculo=5-6&amp;#038;versao=2&amp;#038;lang=pt-BR&amp;#038;cab=1&amp;#038;link=bol&amp;#038;anobiblico=08/11&amp;#038;tipo=2&quot;&gt;Os vivos sabem que hão de morrer, mas os mortos não sabem coisa nenhuma. ...Amor, ódio e inveja para eles já pereceram; para sempre não têm eles parte em coisa alguma do que se faz debaixo do sol.&lt;/a&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;a href=&quot;http://www.bibliaonline.net/bol/?acao=por_verso&amp;#038;livro=23&amp;#038;capitulo=38&amp;#038;versiculo=18-19&amp;#038;versao=2&amp;#038;lang=pt-BR&amp;#038;cab=1&amp;#038;link=bol&amp;#038;anobiblico=08/11&amp;#038;tipo=2&quot;&gt;A sepultura não Te pode louvar, nem a morte glorificar-Te; não esperam em Tua fidelidade os que descem à cova. Os vivos, somente os vivos, esses Te louvaram, como hoje eu faço.&lt;/a&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;a href=&quot;http://www.bibliaonline.net/bol/?acao=por_verso&amp;#038;livro=19&amp;#038;capitulo=6&amp;#038;versiculo=5&amp;#038;versao=2&amp;#038;lang=pt-BR&amp;#038;cab=1&amp;#038;link=bol&amp;#038;anobiblico=08/11&amp;#038;tipo=2&quot;&gt;Pois na morte não há recordação de Ti; no sepulcro, quem Te dará louvor?&lt;/a&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
    Sobre o erro da imortalidade inerente, repousa a doutrina da consciência na morte. Semelhantemente ao tormento eterno,
    opõe-se aos ensinos das Escrituras, à razão, e aos sentimentos de humanidade.&lt;br /&gt; Segundo a crença popular,
    os remidos no Céu estão a par de tudo que ocorre na Terra. Mas como poderiam os mortos ser felizes sabendo das dificuldades dos vivos,
    vendo-os suportar todas as tristezas, desapontamentos e angústias da vida? Quão revoltante é a crença de que, logo que o fôlego deixa o corpo,
    a alma do impenitente é entregue às chamas!&lt;br /&gt; Que dizem as Escrituras? O homem não se acha consciente na morte.
  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A teoria da imortalidade da alma foi uma das falsidades que Roma tomou emprestadas do paganismo. Lutero classificou-a entre as &lt;code&gt;&quot;monstruosas fábulas que fazem parte do monturo romano das decretais&quot;&lt;/code&gt;.
A Bíblia ensina que os mortos dormem até a ressurreição.&lt;/p&gt;
&lt;/div&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.ograndeconflito.com.br/&quot;&gt;O Grande Conflito&lt;/a&gt; edição condensada, Ellen G. Write. &lt;/cite&gt;
	</description>
    </item>
    <item>
      <title>Melhor aparência (fonte)[openSUSE 11.3]</title>
      <link>http://blog.gilbertoca.com/2010/10/melhor-aparencia-fonteopensuse-11-3.html</link>
      <pubDate>sex., 22 out. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/10/melhor-aparencia-fonteopensuse-11-3.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Sexta-feira, final de tarde! Um bom motivo para me aventurar em uma área que costumo deixar de lado: configuração do desktop. Primeiro as fontes!
Percebo que as fontes não são exibidas de forma suave e elas estão bem pequenas devido a minha resolução de vídeo - 1152x864.
Vou seguir &lt;a href=&quot;http://www.linuxcrunch.com/content/font-smoothing-openSUSE-112&quot;&gt;a seguinte dica&lt;/a&gt;, descrita por Fahad:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;precisamos instalar o &lt;a href=&quot;http://software.openSUSE.org/search?q=freetype2&amp;amp;baseproject=openSUSE%3A11.3&amp;amp;lang=en&amp;amp;exclude_filter=home%3A&amp;amp;exclude_debug=true&quot;&gt;pacote freetype2&lt;/a&gt;
Veja se já instalou:
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;yast2.png&quot; alt=&quot;Status da instalação do pacote freetype2&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;faça o seguinte ajuste em
Configure Desktop &amp;gt; Appearance &amp;gt; Fonts&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&quot;Use anti-aliasing for fonts&quot; &amp;gt; enabled&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&quot;Force fonts DPI&quot; &amp;gt; 96&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;faça o seguinte ajuste em (através do botão &quot; Configure&quot;)
&quot;Configure Anti-aliasing Settings&quot; &amp;gt;&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&quot;Use sub-pixel rendering:&quot; &amp;gt; RGB&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&quot;Hinting style:&quot; &amp;gt; full&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Depois de sair (log ou) e entrar (log in) novamente, você vai notar que o KDE irá exibir as fontes mais suaves.
Depois escolhi outras fontes e aumentei o  tamanho. Ficou um beleza!
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;Fonts.png&quot; alt=&quot;Uma amostra de configuração&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Mais uma opção
&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;Fonts2.png&quot; alt=&quot;Outra amostra de configuração&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>bash não lê o arquivo .bashrc na inicialização[Cygwin]</title>
      <link>http://blog.gilbertoca.com/2010/08/bash-nao-le-o-arquivo-bashrc-na-inicializacaocygwin.html</link>
      <pubDate>ter., 24 ago. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/08/bash-nao-le-o-arquivo-bashrc-na-inicializacaocygwin.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Uso a bastante tempo o ambiente &lt;a href=&quot;http://cygwin.com&quot;&gt;Cygwin&lt;/a&gt; em casa. Recentemente realizei a
atualização para a versão 1.7. Por enquanto nenhuma queixa, tudo funcionando
normalmente. Hoje resolvi me aventurar e customizar o console utilizado como
padrão - cmd.exe. Para isso tomei como base o seguinte artigo:
&lt;a href=&quot;http://infrablue.tripod.com/cygwin.html&quot;&gt;Useful Configuration of Cygwin, Part 1: Install, rxvt, and BASH&lt;/a&gt;. Fiz
todos os ajustes recomendados e fui realizar o teste, mas por algum motivo
meu arquivo .bashrc - de ajustes do ambiente bash - não era carregado na
inicialização do &lt;a href=&quot;http://cygwin.com&quot;&gt;Cygwin&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom, resolvi verificar o problema e primeira parada foi a &lt;a href=&quot;http://cygwin.com/faq/faq-nochunks.html#faq.using.bashrc&quot;&gt;FAQ&lt;/a&gt; do projeto.
Chequei meu ambiente como sugerido pela documentação, mas no entanto não conseguia
fazer funcionar. A segunda opção foi pesquisar na lista de discussão:
&lt;a href=&quot;http://old.nabble.com/bash-load-td18529958.html&quot;&gt;logo de primeira encontrei a solução do problema&lt;/a&gt;. O arquivo .bash_profile
precisa conter:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;. &quot;${HOME}&quot;/.bashrc&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;ATUALIZAÇÃO:&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Mais um problema que encontrei, não relacionado com o ambiente bash, mas ao
utilitário que o usa - rxvt. Com a atualização do Cygwin, o atalho criado não
funciona, alias, o utilitário não encontra o ambiente bash. Para resolver é
fácil: coloque o caminho absoluto do ambiente bash. Da seguinte forma:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;C:cygwinbinrxvt.exe -sl 1500 -fn &quot;Lucida Console-12&quot; -bg black -fg grey -sr -e /bin/bash --login -i&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Alterne entre versões Java facilmente [Netbeans 6.*]</title>
      <link>http://blog.gilbertoca.com/2010/07/alterne-entre-versoes-java-facilmente-netbeans-6.html</link>
      <pubDate>qua., 21 jul. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/07/alterne-entre-versoes-java-facilmente-netbeans-6.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Outro dia escrevi como &lt;a href=&quot;http://blog.gilbertoca.com/2010/06/alterne-entre-versoes-java-facilmente-update-alternatives.html&quot;&gt;alterner entre versões Java facilmente&lt;/a&gt;
 utilizando o utilitário de sistema operacional &lt;a href=&quot;http://man.he.net/man8/update-alternatives&quot;&gt;update-alternatives&lt;/a&gt;. Aquele post tem uma
perspectiva do lado do servidor onde estão instalados servidores de aplicação java
ou mesmo aplicativos e o administrador/desenvolvedor precisa testar como estes
artefatos mencionados se comportariam em cada versão.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Hoje vou relatar outra maneira de alternar entre versões java em perspectiva do lado do desenvolvedor.
Aqui na secretaria, podemos escolher entre &lt;a href=&quot;https://netbeans.apache.org&quot;&gt;Netbeans&lt;/a&gt; e &lt;a href=&quot;http://www.eclipse.org&quot;&gt;Eclipse&lt;/a&gt; como ambientes de desenvolvimento,
desde que o projeto seja gerenciado pela ferramenta de construção &lt;a href=&quot;http://maven.apache.org&quot;&gt;Maven&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Minha escolha, assim como de mais alguns colegas foi o &lt;a href=&quot;http://netbeans.org/index.html&quot;&gt;Netbeans&lt;/a&gt; 6.8.
Vejamos então como configurar o IDE Netbeans para facilitar a traca de versões java para compilar ou rodar aplicativos.
Tanto para configurar ou mesmo alternar a versão do java utilizado pode-se utilizar o seguinte caminho:
&lt;code&gt;Project’s properties&amp;#8594;Build:compile&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A partir deste diálogo, você poderá alternar de versão através &quot;Java Plataform&quot; ou gerenciar/adicionar/remover versões através da opção “Manage Java Plataforms”&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;compile_option.png&quot; alt=&quot;compile option&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Lembrando que antes disso precisamos instalar as versões que desejamos utilizar.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Renomear um projeto[SUBVERSION]</title>
      <link>http://blog.gilbertoca.com/2010/07/renomear-um-projetosubversion.html</link>
      <pubDate>seg., 19 jul. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/07/renomear-um-projetosubversion.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Em nossa área de tecnologia da informação é comum o desgaste em discussões para nomear objetos,
recursos, projetos, etc, sem falar em nossa imaginação para o assunto. Devo confessar,
somos ímpares nesse quesito!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Hoje, por uma necessidade tive que renomear um &quot;projeto&quot; (antigo módulo em cvs) em um repositório svn hospedado no Google Project Hosting.
Para fazer a mudança você necessita fazer o chekout do “projeto” - coloco entre aspas, pois o mesmo é considerado como um
diretório - em uma área de trabalho primeiro. Veja como é o procedimento:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;dev&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;netbeans-config&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;click-jpa-integration
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn rename&lt;/span&gt; https:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;osu.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;trunk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;click-jpa-integration https:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;osu.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;trunk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;click-orm-integration
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; ..
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;rm&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-rf&lt;/span&gt; click-jpa-integration
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn checkout&lt;/span&gt; http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;osu.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;trunk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;click-orm-integration coi
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; coi&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Atualização(07/03/2012):&lt;/strong&gt;
Uma correção, com este comando (rename=move) temos a opção de mover e/ou renomear alguma coisa em uma área de trabalho
local ou no próprio repositório(remoto por uma URL).
Veja como ficaria comando usando URL:&lt;/p&gt;
&lt;/div&gt;
   &lt;table&gt;
     &lt;tr&gt;
       &lt;td class=&quot;code&quot;&gt;
         &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn move&lt;/span&gt; http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;10.121.0.5&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gcs http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;10.121.0.5&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;opencms&lt;/pre&gt;
       &lt;/td&gt;
     &lt;/tr&gt;
   &lt;/table&gt;
	</description>
    </item>
    <item>
      <title>Testes de Unidade em Paralelo[Maven|JUnit]</title>
      <link>http://blog.gilbertoca.com/2010/07/testes-de-unidade-em-paralelomavenjunit.html</link>
      <pubDate>qui., 8 jul. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/07/testes-de-unidade-em-paralelomavenjunit.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://java.dzone.com/articles/running-junit-tests-parallel?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+javalobby%2Ffrontpage+%28Javalobby+%2F+Java+Zone%29&quot;&gt;Este artigo&lt;/a&gt;
no &lt;a href=&quot;http://www.dzone.com/links/index.html&quot;&gt;Dzone&lt;/a&gt; explica detalhadamente como executar testes em paralelo utilizando
&lt;a href=&quot;http://maven.apache.org&quot;&gt;Maven&lt;/a&gt; e &lt;a href=&quot;http://www.junit.org/&quot;&gt;JUnit&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Qual a justificativa desta característica? Ora, imagine uma bateria de testes que acessa usa um servidor web  embarcado,
ler longos arquivos xml, etc. Vê-se que nestes tipos de testes há bastante processamento e consequentemente demora-se mais.
Com essa opção, execução em paralelo, obtemos melhor velocidade - performance.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Empathy não conectando ao MSN</title>
      <link>http://blog.gilbertoca.com/2010/06/empathy-nao-conectando-ao-msnopensuse-11-2.html</link>
      <pubDate>ter., 22 jun. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/06/empathy-nao-conectando-ao-msnopensuse-11-2.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Recentimente resolvi, novamente, atualizar o gnome da versão 2.28 para 2.30
através do procedimento descrito neste endereço: &lt;a href=&quot;http://en.openSUSE.org/GNOME/2.30&quot; class=&quot;bare&quot;&gt;http://en.openSUSE.org/GNOME/2.30&lt;/a&gt;.  
Como sempre sem problemas. &lt;a href=&quot;http://www.gnome.org/&quot;&gt;O gnome&lt;/a&gt; é um ambiente
bastante consistente e a meu ver seguro! Mas um componente que uso como meio de
comunicação - &lt;a href=&quot;http://live.gnome.org/Empathy&quot;&gt;Empathy&lt;/a&gt; - começou a apresentar
um erro conexão usando o protocolo MSN. Não havia percebido tal problema porque até então
só tinha utilizado o &lt;a href=&quot;http://pt.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol&quot;&gt;protocolo Jabber&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bem, após uma pesquisa pelo google, &lt;a href=&quot;http://ubuntu-utah.ubuntuforums.org/showpost.php?p=8058121&amp;amp;postcount=9&quot;&gt;encontrei a solução do problema&lt;/a&gt;:
desisntalar o pacote &lt;strong&gt;telepathy-butterfly&lt;/strong&gt;. Lembrando que há a necessidade de fechar o programa antes de remover este componente.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Atualização(13/12/2011):&lt;/strong&gt;
Hoje, após uma atualização, o empathy parou de conectar.
Voltando &lt;a href=&quot;http://forums.openSUSE.org/english/get-technical-help-here/applications/467973-empathy-not-working-msn-2.html#post2417727&quot;&gt;àquela discussão no forum openSUSE&lt;/a&gt;,
notei que a solução é bem mais simples:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Remova sua conta(Remove your live account).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sair do Empathy(Exit from Empathy)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Desinstalar o pacote (Remove telepathy-butterfly)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Encerrar sua sessão/Entrar em uma nova sessão(logout/login)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Adicione sua conta MSN novamente(Enter your account again)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Marque a opção Método Http(mark the Http Method option)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;empathy_msn-300x240.png&quot; alt=&quot;Empathy MSN&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Lembre-se&lt;/strong&gt;: você precisa fechar o aplicativo(Empathy).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Atualização(28/11/2011):&lt;/strong&gt;
No trabalho já estou utilizando o openSUSE 12.1 (adaptando-me ao novo jeito do gnome 3).
Este gerenciador de mensagens, novamente, veio com problema para conectar ao protocolo MSN. Desta vez não precisamos desinstalar nada,
apenas realizar uma pequena modificação em uma biblioteca que o acompanha.
&lt;a href=&quot;http://forums.openSUSE.org/english/get-technical-help-here/applications/467973-empathy-not-working-msn.html#post2405889&quot;&gt;Empathy not working with MSN&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Edite o seguinte arquivo da biblioteca ql:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;gilberto@SUGEP265338:~&amp;gt; sudo vi /usr/lib/python2.7/site-packages/papyon/service/description/AB/__init__.py&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;e faça a seguinte modificação:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;#url = &quot;http://contacts.msn.com/abservice/abservice.asmx&quot;
url = &quot;http://local-bay.contacts.msn.com/abservice/abservice.asmx&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Lembre-se&lt;/strong&gt;: você precisa fechar o aplicativo(Empathy).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Espero que esta informação ajude a outros colegas usuários linux.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Como recuperar senha de root</title>
      <link>http://blog.gilbertoca.com/2010/06/como-recuperar-senha-de-root.html</link>
      <pubDate>ter., 8 jun. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/06/como-recuperar-senha-de-root.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Não é difícil encontrar novos usuários linux que esquecem ou perdem a senha do &lt;a href=&quot;http://br-linux.org/artigos/dicas_root.htm&quot;&gt;usuário root&lt;/a&gt;
em um servidor ou estação de trabalho. Este post é uma tradução do seguinte HOW-TO:
&lt;a href=&quot;http://www.novell.com/support/search.do?cmd=displayKC&amp;#038;docType=kc&amp;#038;externalId=3003803&amp;#038;sliceId=SAL_Public&amp;#038;dialogID=17188705&amp;#038;stateId=0%200%2017194530&quot;&gt;Recover the Linux root password&lt;/a&gt;, publicado pela novell.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Então vamos resolver o problema:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;1. inicie (Boot) o computador a partir do Cd de instalação;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2. selecione qualquer método de instalação ou a opção recuperação de sistema (Rescue System);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;3. na primeira tela de instalação quando for selecionar a linguagem, pressione &lt;strong&gt;ctrl-alt-f2&lt;/strong&gt; para abir um terminal virtual(virtual console);&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;exampleblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Se você selecionou recuperação de sistema(Rescue System), selecione a linguagem de seu teclado e então o prompt para o Login de Recuperação(Rescue Login) aparecerá. Entre como root.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;4. Digite &lt;code&gt;fdisk -l&lt;/code&gt; para listar as partições. Localize a partição Linux raiz(/).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;5. Digite &lt;code&gt;mount /dev/sda4 /mnt&lt;/code&gt; (substitua sda4 com o nome do dispositivo - device - pela a partição Linux raiz identificada no passo anterior);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;6. Execute &lt;code&gt;mount -o bind /dev /mnt/dev&lt;/code&gt; para tornar os arquivos do dispositivo disponíveis (isso é necessário para o acesso ao dispositivo urandom o qual pode ser usado pelo comando passwd abaixo);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;7. Entre &lt;code&gt;chroot /mnt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;8. Agora entre &lt;code&gt;passwd root&lt;/code&gt; e digite a nova senha do root;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;9. Digite &lt;code&gt;exit&lt;/code&gt; para sair do ambiente chroot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;10. Desmonte o sistema de arquivos com &lt;code&gt;umount /mnt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;11. Reinicie o sistema.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Alterne entre versões Java facilmente [update-alternatives]</title>
      <link>http://blog.gilbertoca.com/2010/06/alterne-entre-versoes-java-facilmente-update-alternatives.html</link>
      <pubDate>ter., 8 jun. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/06/alterne-entre-versoes-java-facilmente-update-alternatives.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Com o surgimento de versões e atualizações da máquina virtual java, preciso verificar a compatibilidade da mesma com o
&lt;a href=&quot;http://www.techne.com.br/produtos/produtos.asp?id=4&quot;&gt;sistema de gestão de pessoal&lt;/a&gt; sendo implantado &lt;a href=&quot;http://www.secad.to.gov.br&quot;&gt;aqui na secretária&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;quoteblock&quot;&gt;
&lt;blockquote&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Atualizado em: 01/12/2005 16:10 - CONSAD&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Tocantins faz sua apresentação em TI&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As experiências inovadoras que o Tocantins tem desenvolvido em Tecnologia da Informação (TI) foram apresentadas na manhã deste primeiro dia do LX Fórum do Conselho Nacional de Secretários de Estado de Administração (Consad). O representante da superintendência de Informática do Estado, Marcos Tiago, foi o responsável pela apresentação. Nela, ele demonstrou aos presentes as redes digitais de todo o Estado, incluindo as que circundam a sede do Governo (Palácio Araguaia), e das secretarias da Administração, Fazenda e Segurança Pública.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Em relação à Secad – Secretaria da Administração, Marcos Tiago apresentou o sistema de interligação de Recursos Humanos (Ergon) que está sendo implantado; citou ainda a experiência de Educação à Distância voltada para os servidores do Estado, onde o governo acaba de capacitar mais de 28 mil servidores no curso de Excelência no Atendimento e nas Relações de Trabalho.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fonte: Shirley Cruz / Secad&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Longo tempo hein? Pois é, nossa administração pública! Mas o Estado, nestes dois últimos anos,
ficou politicamente conturbado (&lt;a href=&quot;http://www.portalct.com.br/n/61036301f280e5de0acb74eeebc8e948/to-chega-a-maioridade-em-clima-de-convulsao-e-inde/&quot;&gt;Tocantins chega à maioridade em clima de convulsão e indefinição política&lt;/a&gt;).
Felizmente esta fase está passando e os projetos, aos poucos, retornam a sua normalidade.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O sistema usa como base a tecnologia &lt;a href=&quot;https://www.oracle.com/technology/products/forms&quot;&gt;Forms da empresa Oracle&lt;/a&gt;, que usa applet no cliente.
Bom, primeiro precisamos instalar as versões que desejamos. Para facilitar adicione os seguintes repositórios ao &lt;a href=&quot;http://en.openSUSE.org/Yast&quot;&gt;Yast&lt;/a&gt;:&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;
      Nome
    &lt;/td&gt;

    &lt;td&gt;
      Repositório
    &lt;/td&gt;

    &lt;tr&gt;
      &lt;tr&gt;
        &lt;td&gt;
          Java:sun:Factory
        &lt;/td&gt;

        &lt;td&gt;
          &lt;a href=&quot;http://download.openSUSE.org/repositories/Java:/sun:/Factory/openSUSE_11.2/&quot;&gt;http://download.openSUSE.org/repositories/Java:/sun:/Factory/openSUSE_11.2/&lt;/a&gt;
        &lt;/td&gt;

        &lt;tr&gt;
          &lt;tr&gt;
            &lt;td&gt;
              JPackages
            &lt;/td&gt;

            &lt;td&gt;
              &lt;a href=&quot;http://download.openSUSE.org/repositories/Java:/packages/openSUSE_11.2/&quot;&gt;http://download.openSUSE.org/repositories/Java:/packages/openSUSE_11.2&lt;/a&gt;
            &lt;/td&gt;

            &lt;tr&gt;
              &lt;/table&gt;

              &lt;p&gt;
                Veja o que tenho em meu ambiente:&lt;br /&gt; &lt;a href=&quot;yast_java_instalado.png&quot;&gt;&lt;img src=&quot;yast_java_instalado.png&quot; alt=&quot;Ambiente Java Instalado&quot; title=&quot;yast_java_instalado&quot; width=&quot;808&quot; height=&quot;627&quot; class=&quot;alignleft size-full wp-image-405&quot; /&gt;&lt;/a&gt;
              &lt;/p&gt;

              &lt;p&gt;
                Agora, como alternar entre as versões sem ter que manualmente mexer em variáveis de ambiente?&lt;br /&gt; Qual versão estou usando?
              &lt;/p&gt;

              &lt;div class=&quot;wp_syntax&quot;&gt;
                &lt;table&gt;
                  &lt;tr&gt;
                    &lt;td class=&quot;code&quot;&gt;
                      &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; java &lt;span style=&quot;color: #660033;&quot;&gt;-version&lt;/span&gt;
java version &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;1.5.0_22&quot;&lt;/span&gt;
Java&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;TM&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt; Runtime Environment, Standard Edition &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;build 1.5.0_22-b03&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
Java HotSpot&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;TM&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; Server VM &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;build 1.5.0_22-b03, mixed mode&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
                    &lt;/td&gt;
                  &lt;/tr&gt;
                &lt;/table&gt;
              &lt;/div&gt;

              &lt;p&gt;
                Para verificar de forma geral como o ambiente está, além da figura acima, vamos abrir um terminal como usuário root e checar através do comando &lt;code&gt;update-alternatives&lt;/code&gt;:
              &lt;/p&gt;

              &lt;div class=&quot;wp_syntax&quot;&gt;
                &lt;table&gt;
                  &lt;tr&gt;
                    &lt;td class=&quot;code&quot;&gt;
                      &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;su&lt;/span&gt; -
Password:
SUGEP-DMASI:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --list java&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.6.0-openjdk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.5.0-gcj&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.6.0-sun&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.5.0-sun&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java
SUGEP-DMASI:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --list javac&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java-1.5.0-gcj&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;javac
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java-1.6.0-openjdk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;javac
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java-1.6.0-sun&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;javac
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java-1.5.0-sun&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;javac
SUGEP-DMASI:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --list javapluging&lt;/span&gt;
No alternatives &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;for&lt;/span&gt; javapluging.
SUGEP-DMASI:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --list javaplugin&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.6.0-openjdk&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;i386&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;IcedTeaNPPlugin.so
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java-1.6.0-sun-1.6.0&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;i386&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;libnpjp2.so
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java-1.5.0-sun-1.5.0&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;plugin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;i386&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;ns7&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;libjavaplugin_oji.so
SUGEP-DMASI:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
                    &lt;/td&gt;
                  &lt;/tr&gt;
                &lt;/table&gt;
              &lt;/div&gt;&lt;/p&gt;

              &lt;p&gt;
                Para saber mais sobre este comando digite:
              &lt;/p&gt;

              &lt;div class=&quot;wp_syntax&quot;&gt;
                &lt;table&gt;
                  &lt;tr&gt;
                    &lt;td class=&quot;code&quot;&gt;
                      &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;man&lt;/span&gt; update-alternatives&lt;/pre&gt;
                    &lt;/td&gt;
                  &lt;/tr&gt;
                &lt;/table&gt;
              &lt;/div&gt;

              &lt;p&gt;
                Agora vamos usá-lo para alternar entre as versões. Note nas opções acima que podemos alternar não somente a máquina virtual, mas também o plugin para navegadores de internet. Então mãos a obra! Para alternar usaremos a opção &lt;code&gt;--config&lt;/code&gt;:
              &lt;/p&gt;

              &lt;div class=&quot;wp_syntax&quot;&gt;
                &lt;table&gt;
                  &lt;tr&gt;
                    &lt;td class=&quot;code&quot;&gt;
                      &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;SUGEP-DMASI:~ &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# update-alternatives --config java&lt;/span&gt;
&amp;nbsp;
There are &lt;span style=&quot;color: #000000;&quot;&gt;4&lt;/span&gt; alternatives &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;which&lt;/span&gt; provide &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;java&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;.
&amp;nbsp;
  Selection    Alternative
-----------------------------------------------
 +        1    /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
          2    /usr/lib/jvm/jre-1.5.0-gcj/bin/java
          3    /usr/lib/jvm/jre-1.6.0-sun/bin/java
*         4    /usr/lib/jvm/jre-1.5.0-sun/bin/java
&amp;nbsp;
Press enter to keep the default[*], or type selection number: 3
Using &apos;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;jre-1.6.0-sun&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos; to provide &apos;&lt;/span&gt;java&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;.
SUGEP-DMASI:~ #&lt;/span&gt;&lt;/pre&gt;
                    &lt;/td&gt;
                  &lt;/tr&gt;
                &lt;/table&gt;
              &lt;/div&gt;

              &lt;p&gt;
                Abra um novo terminal e verifique a versão atual:
              &lt;/p&gt;

              &lt;div class=&quot;wp_syntax&quot;&gt;
                &lt;table&gt;
                  &lt;tr&gt;
                    &lt;td class=&quot;code&quot;&gt;
                      &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; java &lt;span style=&quot;color: #660033;&quot;&gt;-version&lt;/span&gt;
java version &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;1.6.0_20&quot;&lt;/span&gt;
Java&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;TM&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; SE Runtime Environment &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;build 1.6.0_20-b02&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
Java HotSpot&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;TM&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; Server VM &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;build &lt;span style=&quot;color: #000000;&quot;&gt;16.3&lt;/span&gt;-b01, mixed mode&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
You have mail &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;var&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;spool&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;mail&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;gilberto
gilberto&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
                    &lt;/td&gt;
                  &lt;/tr&gt;
                &lt;/table&gt;
              &lt;/div&gt;&lt;/p&gt;

              &lt;p&gt;
                Podemos usar o utilitário &lt;code&gt;update-alternatives&lt;/code&gt; para gerenciar outros links no sistema, mas o post já ficou extenso. Na próxima podemos mostrar como gerenciar links manualmente.
              &lt;/p&gt;
	</description>
    </item>
    <item>
      <title>Direct Path Load - Como configurar</title>
      <link>http://blog.gilbertoca.com/2010/06/direct-path-load-como-configurar.html</link>
      <pubDate>ter., 1 jun. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/06/direct-path-load-como-configurar.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Verificando posts de &lt;a href=&quot;http://www.jroller.com/gilbertoca&quot;&gt;meu antigo blog&lt;/a&gt; notei que alguns não foram importados ou foram importados com defeitos em seu conteúdo.
Então resolvi realizar um trabalho de revisão e o &lt;strong&gt;&lt;a href=&quot;http://www.jroller.com/gilbertoca/entry/direct_path_load_como_configurar&quot;&gt;terceiro&lt;/a&gt;&lt;/strong&gt; começa hoje:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para que se possa usar a opção de &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_modes.htm#i1007669&quot;&gt;carga direta usando o SQL Load&lt;/a&gt;,
você precisa primeiro configurar o banco de dados para tal atividade.
A configuração é simples, basta você executar o script &lt;code&gt;catldr.sql&lt;/code&gt;, localizado na instalação do produto, &lt;code&gt;$ORACLE_HOME/rdbms/admin&lt;/code&gt;.
Depois é só utilizar a opção direct=true na linha de comando.&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;oracle&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;SUGEP-DMASI:~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; sqlplus &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;as&lt;/span&gt; sysdba
SQL&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt;Plus: Release 10.2.0.1.0 - Production on Ter Jun &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;17&lt;/span&gt;:04:&lt;span style=&quot;color: #000000;&quot;&gt;20&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;2010&lt;/span&gt;
Copyright &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1982&lt;/span&gt;, &lt;span style=&quot;color: #000000;&quot;&gt;2005&lt;/span&gt;, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ls&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$ORACLE_HOME&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;rdbms&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;admin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;catl&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;oracle&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;db&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;10.2&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;server&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;rdbms&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;admin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;catldap.sql  &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;oracle&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;db&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;10.2&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;server&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;rdbms&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;admin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;catlibc.sql
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;oracle&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;db&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;10.2&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;server&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;rdbms&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;admin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;catldr.sql   &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;oracle&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;db&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;10.2&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;server&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;rdbms&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;admin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;catlsby.sql
&amp;nbsp;
SQL&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@/&lt;/span&gt;opt&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;oracle&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;db&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;10.2&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;server&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;rdbms&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;admin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;catldr.sql
.
.
View created.
Synonym created.
Grant succeeded.
&amp;nbsp;
SQL&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
	</description>
    </item>
    <item>
      <title>SQL*Loader - Números decimais</title>
      <link>http://blog.gilbertoca.com/2010/05/sqlloader-numeros-decimais.html</link>
      <pubDate>seg., 31 mai. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/05/sqlloader-numeros-decimais.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Verificando posts de &lt;a href=&quot;http://www.jroller.com/gilbertoca&quot;&gt;meu antigo blog&lt;/a&gt; notei que alguns não foram importados ou foram importados com defeitos em seu conteúdo.
Então resolvi realizar um trabalho de revisão e o &lt;strong&gt;&lt;a href=&quot;http://www.jroller.com/gilbertoca/entry/sql_load_n%C3%BAmeros_decimais&quot;&gt;segundo&lt;/a&gt;&lt;/strong&gt; começa hoje:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Se burrice matasse, já estária morto! Calma vou explicar. Estou fazendo carga de um sistema legado (migração).
E algumas tabelas contém colunas com o &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements001.htm#SQLRF00222&quot;&gt;tipo de dado NUMBER&lt;/a&gt;(15,6),
mas os dados podem vir nulos, inteiros ou decimais.
Inicialmente pensei que ele (&lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/part_ldr.htm#g996849&quot;&gt;sqlldr&lt;/a&gt;) faria a conversão, mas ..&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;sql&quot; style=&quot;font-family:monospace;&quot;&gt;Record &lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;: Rejected &lt;span style=&quot;color: #66cc66;&quot;&gt;-&lt;/span&gt; Error &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ON&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;TABLE&lt;/span&gt; VANTAGENS_TMP&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;COLUMN&lt;/span&gt; VALOR&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;
ORA&lt;span style=&quot;color: #66cc66;&quot;&gt;-&lt;/span&gt;01722: invalid &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;NUMBER&lt;/span&gt;
Record &lt;span style=&quot;color: #cc66cc;&quot;&gt;2&lt;/span&gt;: Rejected &lt;span style=&quot;color: #66cc66;&quot;&gt;-&lt;/span&gt; Error &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ON&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;TABLE&lt;/span&gt; VANTAGENS_TMP&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;COLUMN&lt;/span&gt; VALOR&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;
ORA&lt;span style=&quot;color: #66cc66;&quot;&gt;-&lt;/span&gt;01722: invalid &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;NUMBER&lt;/span&gt;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Depois tentei colocar &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_field_list.htm&quot;&gt;tipos específicos no control file&lt;/a&gt; para estas colunas,
como por exemplo &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_field_list.htm#sthref948&quot;&gt;INTEGER, INTEGER EXTERNAL, DECIMAL(15,6)&lt;/a&gt;.
Mas todas as tentativas acabavam com:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;sql&quot; style=&quot;font-family:monospace;&quot;&gt;Record &lt;span style=&quot;color: #cc66cc;&quot;&gt;29&lt;/span&gt;: Rejected &lt;span style=&quot;color: #66cc66;&quot;&gt;-&lt;/span&gt; Error &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ON&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;TABLE&lt;/span&gt; VANTAGENS_TMP&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;COLUMN&lt;/span&gt; VALOR&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;
ORA&lt;span style=&quot;color: #66cc66;&quot;&gt;-&lt;/span&gt;01460: unimplemented &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;OR&lt;/span&gt; unreasonable conversion requested&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A solução, foi tão simples que estou até com vergonha de dizer. Bom, praticamente todas as atividades que você faz através de uma sessão sql,
são regidas pela &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/install.102/b25149/app_gblsupp.htm#sthref469&quot;&gt;variável de ambiente NLS_LANG&lt;/a&gt;. Pois é, você ajusta esta variável e todas que dependem dela, quer dizer, NLS_* vão assumir
valores pre-definidos. Aí você fala: Qual é a novidade? A novidade é que se você fizer uma customização em qualquer uma das &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch3globenv.htm#sthref316&quot;&gt;outras variáveis&lt;/a&gt;
(que foi o caso do bonitão aqui), você terá que assumir as consequências. Enquanto estava fazendo um teste com procedimento ajustei uma destas variáveis:&lt;/p&gt;
&lt;/div&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td class=&quot;code&quot;&gt;
        &lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;export&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;NLS_NUMERIC_CHARACTERS&lt;/span&gt;=,.&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom, foi só trocar os sinais que conversão implícita funcionou. Mas uma coisa, uma dica é colocar o tipo do character set no &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_control_file.htm#i1006645&quot;&gt;control file&lt;/a&gt;
através do parametro CHARACTERSET, assim você não depende da configuração do ambiente para fazer carga.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Modelagem usando Uml em Cores [Análise de Requisitos]</title>
      <link>http://blog.gilbertoca.com/2010/05/modelagem-analise-de-requisitos.html</link>
      <pubDate>ter., 11 mai. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/05/modelagem-analise-de-requisitos.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Verificando posts de &lt;a href=&quot;http://www.jroller.com/gilbertoca&quot;&gt;meu antigo blog&lt;/a&gt; notei que alguns não foram importados ou foram importados com defeitos em seu conteúdo.
Então resolvi realizar um trabalho de revisão e o primeiro deles começa hoje:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;toc&quot;&gt;
  &lt;h2&gt;
    Conteúdo
  &lt;/h2&gt;

  &lt;p&gt;
    &lt;a href=&quot;#intro&quot;&gt;Análise de Requisitos&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;#cont&quot;&gt;Quatro Archetypes/Cores - Pequena Introdução&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;#conc&quot;&gt;Dado uma Classe, Qual é a Cor, Qual é o Archetype?&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;#refe&quot;&gt;Referências&lt;/a&gt; &lt;/div&gt;

    &lt;p&gt;
      &lt;/br&gt;
    &lt;/p&gt;

    &lt;h2&gt;
      &lt;a name=&quot;intro&quot;&gt;Análise de Requisitos&lt;/a&gt;
    &lt;/h2&gt;

    &lt;p&gt;
      O post de hoje falaremos sobre a fase de levantamento, mais precisamente a &lt;a href=&quot;http://pt.wikipedia.org/wiki/An%C3%A1lise_de_requisitos_de_software&quot;&gt;análise de requisitos&lt;/a&gt;. Essa é considerada a mais importante fase do ciclo de desenvolvimento de sistemas. O levantamento dos requisitos do sistema pode definir ou mais precisamente nortear o futuro do mesmo. Como Analista/DBA, após a entrevista e coleta de formulários usados atualmente, tenho o hábito de rascunhar um pequeno diagrama de entidade relacionamento (ER). Este modelo(ER) de diagramação ainda é bastante usado, mas com o constante avanço dos modelos especificados pela Linguagem de Modelagem Unificada (UML) acho importante estudo e pratica dos mesmos. Ainda, não costumo seguir um processo de desenvolvimento de software, tais como: XP, RUP e assim vai.
    &lt;/p&gt;

    &lt;p&gt;
      O que mais acontece é a elaboração de um protótipo inicial e o aperfeiçoamento no decorrer do projeto. Vou usar aqui algo que achei extremamente fácil para iniciantes no mundo OO ou mesmo para a modelagem de um sistema, a técnica chamada “UML in Color”, mais precisamente modelando com Archetypes (arquétipo).&lt;br /&gt; Para você entender porque a modelagem em cor é fácil e ao mesmo tempo tão poderosa é preciso que se entenda os quatro blocos de construção básicos no qual ela é baseada - Os Archetypes. Definição de Archetype:&lt;br /&gt; &lt;em&gt;um modelo no qual todas as coisas do mesmo tipo mais ou menos o seguem - incluindo atributos, links, métodos, pontos de entrada (plug-in), e interações.&lt;/em&gt;
    &lt;/p&gt;

    &lt;h2&gt;
      &lt;a name=&quot;cont&quot;&gt;Quatro Archetypes/Cores - Pequena Introdução&lt;/a&gt;
    &lt;/h2&gt;

    &lt;p&gt;
      A utilização de cores para cada Archetype foi uma idéia interessante e importante dos autores do livro &lt;a href=&quot;http://www.step-10.com/Books/JMCUBook.html&quot;&gt;Java Modeling in Color with UML&lt;/a&gt; . A cada classe Archetype é dado sua própria cor. A cor facilita o aprendizado e a fixação das classes Archetype tornando informações de alto nível, em um diagrama de classes, mais fáceis de ler. Usar cor também ajuda prevenir pessoas sendo colocadas de lado por não saber por onde começar quando postas diante de um diagrama de classes não trivial (complexo).
    &lt;/p&gt;

    &lt;h2&gt;
      &lt;a name=&quot;conc&quot;&gt;Dado uma Classe, Qual é a Cor, Qual é o Archetype?&lt;/a&gt;
    &lt;/h2&gt;

    &lt;p&gt;
      Então dado uma classe, que archetype ou cor deveremos usar? Usaremos o seguinte check-list:
    &lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        Moment-Interval (rosa): A classe archetype Moment-Interval representa uma atividade que o sistema precisar rastrear por razões legais ou de negócio, algo que ocorre em um momento no tempo ou sobre um intervalo de tempo;
      &lt;/li&gt;
      &lt;li&gt;
        Role (amarelo):A classe archetype Role representa um forma de participação por uma parte (pessoa ou organização), lugar ou, coisa em um Moment-Interval;
      &lt;/li&gt;
      &lt;li&gt;
        Party, Place, or Thing (verde): A classe archetype Party, Place, ou Thing, PPT resumidamente, representa coisas que podem exercer um papel (Role) em diferentes atividades do sistema;
      &lt;/li&gt;
      &lt;li&gt;
        Description (azul):A classe archetype Description representa um catálogo de descrição, um valor ou conjunto de valores que podem ser usados para etiquetar coisas. A forma mais fácil de pensar em uma classe archetype Description é pensar na informação que classifica uma entidade mas que não define sua identidade. Por exemplo, nacionalidade e estado de civil podem ser considerados descrições para uma pessoa enquanto que número do CPF ou de Passaporte fará parte da informação de identidade da pessoa.
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;div id=&quot;attachment_360&quot; style=&quot;width: 310px&quot; class=&quot;wp-caption alignnone&quot;&gt;
      &lt;a href=&quot;four_archetypes.png&quot;&gt;&lt;img src=&quot;four_archetypes-300x142.png&quot; alt=&quot;&quot; title=&quot;four_archetypes&quot; width=&quot;300&quot; height=&quot;142&quot; class=&quot;size-medium wp-image-360&quot; /&gt;&lt;/a&gt;

      &lt;p class=&quot;wp-caption-text&quot;&gt;
        Quatro Arquétipos
      &lt;/p&gt;
    &lt;/div&gt;

    &lt;p&gt;
      Fique tranquilo, com o exercício/uso dessa modelagem você intuitivamente identificará em qual categoria de archetype sua classe se encaixa.
    &lt;/p&gt;

    &lt;h2&gt;
      &lt;a href=&quot;#refe&quot;&gt;Referências&lt;/a&gt;
    &lt;/h2&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href=&quot;http://edn.embarcadero.com/br/article/33736#9UMLemCores&quot; target=&quot;referências&quot;&gt;Análise e Desenho Orientados por Objetos (2/4)&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=&quot;http://www.step-10.com/SoftwareDesign/ModellingInColour/index.html&quot; target=&quot;referências&quot;&gt;Modeling in Color&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=&quot;http://www.hostfrontier.com/index.php/200811029/agile-methodology/domain-modelling-using-color-uml.html&quot; target=&quot;referências&quot;&gt;Domain Modelling using color UML&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=&quot;http://www.step-10.com/Books/JMCUBook.html&quot; target=&quot;referências&quot;&gt;Java Modeling in Color with UML&lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
	</description>
    </item>
    <item>
      <title>Transportado schema de um banco para outro [exp e imp]</title>
      <link>http://blog.gilbertoca.com/2010/04/transportado-schema-de-um-banco-para-outro-exp-e-imp.html</link>
      <pubDate>qui., 8 abr. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/04/transportado-schema-de-um-banco-para-outro-exp-e-imp.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fazer exportação e importação de schemas de usuários de um banco para outro com
os &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/exp_imp.htm#i1023560&quot;&gt;utilitários exp e imp&lt;/a&gt;
não coisa fácil, principalmente se você nunca fez essa tarefa!
Mas há sempre uma primeira vez para quase tudo, não é mesmo?&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O nosso banco está iniciando e não tem muitos dados, aproximadamente 6GB de
tamanho físico. Só a exportação demorou aproximadamente seis horas.
Bom, o passo inicial foi criar um novo banco - isso porque estamos passando
da &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/relnotes.102/b15659/toc.htm&quot;&gt;versão 10gR1 intel&lt;/a&gt;
para &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/relnotes.102/b19074/toc.htm&quot;&gt;10gR2 ppc&lt;/a&gt; - com opções mínimas.
O segundo foi realizar o exp no banco original somente dos usuários (schemas) necessários:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;exp userid=system@desenv file=producao.dmp log=export_producao.log buffer=65535000 consistent=y recordlength=65535 grants=y compress=n statistics=none owner=(login,hades,c_hades,ergon,c_ergon,gilberto,kira, epj,rafael,sic)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O terceiro parecia simples, fazer a importação no novo banco.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;#Importando os dados sem as constraints
imp &apos;/ AS SYSDBA&apos; file=producao.dmp full=y grants=n constraints=n
#Importando sem os dados com as constraints
imp &apos;/ AS SYSDBA&apos; file=producao.dmp full=y grants=n constraints=y rows=n&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Doce ilusão! Isso não funcionou porque não tínhamos criado os usuários nesse
novo banco. Incrível, se é um export e import, por que não tem essa característica
por padrão? Já existe a definição de todos os objetos, inclusive dos usuários no
dump do exp.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom, a solução inicial foi extrair do dump gerado pelo exp, a definição dos
schemas dos usuários. Para isso utilizamos o utilitário de sistema &lt;a href=&quot;http://linux.die.net/man/1/strings&quot;&gt;strings&lt;/a&gt;:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;strings producao.dmp | grep -i &quot;CREATE USER&quot; &amp;gt; create_user.sql  strings producao.dmp | grep -i &quot;GRANT &quot; &amp;gt; grants.sql&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Que dureza! Veja que isso não ajudou muito porque o arquivo gerado - grants.sql -
não faz distinção através do schema. Não entendeu? Vou mostrar:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;oracle@oracleserver:~/backup/scripts&amp;gt; head grants.sql
    GRANT ALTER ON &quot;ACIDENTES_SEQ&quot; TO &quot;HADES&quot; WITH GRANT OPTION
    GRANT SELECT ON &quot;ACIDENTES_SEQ&quot; TO &quot;HADES&quot; WITH GRANT OPTION
    GRANT ALTER ON &quot;ACIDENTES_SEQ&quot; TO &quot;C_HADES&quot; WITH GRANT OPTION
    GRANT SELECT ON &quot;ACIDENTES_SEQ&quot; TO &quot;C_HADES&quot; WITH GRANT OPTION
    GRANT ALTER ON &quot;ACIDENTES_SEQ&quot; TO &quot;C_ERGON&quot; WITH GRANT OPTION
    GRANT SELECT ON &quot;ACIDENTES_SEQ&quot; TO &quot;C_ERGON&quot; WITH GRANT OPTION
    GRANT ALTER ON &quot;AVERB_SEQ&quot; TO &quot;HADES&quot; WITH GRANT OPTION
    GRANT SELECT ON &quot;AVERB_SEQ&quot; TO &quot;HADES&quot; WITH GRANT OPTION
    GRANT ALTER ON &quot;AVERB_SEQ&quot; TO &quot;C_HADES&quot; WITH GRANT OPTION
    GRANT SELECT ON &quot;AVERB_SEQ&quot; TO &quot;C_HADES&quot; WITH GRANT OPTION
oracle@oracleserver:~/backup/scripts&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Veja que não há definição a qual usuário o objeto pertence. A solução foi
realizar o exp para cada usuário separadamente e extrair os grants:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;exp &apos;/ AS SYSDBA&apos; file=login_grants.dmp log=export_archon.log buffer=65535000 consistent=y recordlength=65535 grants=y compress=n statistics=none owner=(login)
exp &apos;/ AS SYSDBA&apos; file=ergon_grants.dmp log=export_archon.log buffer=65535000 consistent=y recordlength=65535 grants=y compress=n statistics=none owner=(ergon)
exp &apos;/ AS SYSDBA&apos; file=c_ergon_grants.dmp log=export_archon.log buffer=65535000 consistent=y recordlength=65535 grants=y compress=n statistics=none owner=(c_ergon)
exp &apos;/ AS SYSDBA&apos; file=hades_grants.dmp log=export_archon.log buffer=65535000 consistent=y recordlength=65535 grants=y compress=n statistics=none owner=(hades)
exp &apos;/ AS SYSDBA&apos; file=c_hades_grants.dmp log=export_archon.log buffer=65535000 consistent=y recordlength=65535 grants=y compress=n statistics=none owner=(c_hades)
exp &apos;/ AS SYSDBA&apos; file=sys_grants.dmp log=export_archon.log buffer=65535000 consistent=y recordlength=65535 grants=y compress=n statistics=none owner=(sys)

strings ergon_grants.dmp | grep &quot;GRANT &quot; &amp;gt; ergon_grants.sql strings c_ergon_grants.dmp | grep &quot;GRANT &quot; &amp;gt; c_ergon_grants.sql strings login_grants.dmp | grep &quot;GRANT &quot; &amp;gt; login_grants.sql
.
.
.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Tem um ditado que acho verdadeiro no nosso mundo TI:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;mark&gt;Se eu posso complicar porque vou simplificar!&lt;/mark&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Você ri não é? Mas você precisava ver a cara do meu chefe depois de 3 dias nessa tarefa.
Depois de tudo isso, tem a caçada dos objetos inválidos que nem o script &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/install.102/b15660/post_inst_task.htm#i1036714&quot;&gt;utlrp.sql&lt;/a&gt; resolve.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Ai você diz: &quot;Mas que cara burro! Existe outra maneira de resolver isso muito mais simples.&quot;.
Pois é! Não é burrice não, é inesperiência mesmo! Sem contar na pressão que vc
mesmo exerce sobre si para realizar a tarefa. Vc precisa demonstrar que é capaz.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom o resultado final é que depois de toda essa luta, encontrei outra maneira
fácil de resolver esse problema - extrair a definição de determinados usuários e
seus grants.
Muito fácil mesmo. :)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;    SET pages 9999
    SET LINES 180
    SET hea off
    spool create_users_to_move.SQL
    SELECT &apos;create user &apos;||username||&apos; identified by &apos;||password||
    &apos; default tablespace &apos;||default_tablespace||
    &apos; temporary tablespace &apos;||temporary_tablespace||&apos;;&apos;
    FROM dba_users
    WHERE username NOT IN (&apos;DBSNMP&apos;,&apos;OUTLN&apos;,&apos;SYS&apos;,&apos;SYSTEM&apos;)
    ORDER BY username;
    spool off&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;    SET pages 9999
    SET LINES 180
    SET hea off
    spool grants_for_users_to_move.SQL
    SELECT &apos;grant &apos;||granted_role||&apos; to &apos;||grantee||&apos;;&apos;
    FROM dba_role_privs
    WHERE grantee NOT IN (&apos;DBSNMP&apos;,&apos;OUTLN&apos;,&apos;SYS&apos;,&apos;SYSTEM&apos;)
    ORDER BY grantee;
    /*
    select &apos;grant &apos;||privilege||&apos; on &apos;||owner||&apos;.&apos;||table_name||
    &apos; to &apos;||grantee||&apos;;&apos;
    from dba_tab_privs
    where grantee not in (&apos;DBSNMP&apos;,&apos;OUTLN&apos;,&apos;SYS&apos;,&apos;SYSTEM&apos;)
    and owner not in (&apos;SYS&apos;,&apos;SYSTEM&apos;,&apos;DBSNMP&apos;,&apos;OUTLN&apos;)
    order by grantee;
    */
    spool off&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Lembre-se que este script é útil quando há a possibilidade de acessar o banco de
origem. Caso contrário, você terá que usar outro método para criar os usuários
no banco de destino.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>DBCA não encontra o banco de dados</title>
      <link>http://blog.gilbertoca.com/2010/04/dbca-nao-encontra-o-banco-de-dados.html</link>
      <pubDate>qua., 7 abr. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/04/dbca-nao-encontra-o-banco-de-dados.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Após fazer alguns exercícios de clonagem de banco(através do dbconsole, dbca e manualmente),
procurei fazer uma limpeza dos mesmos. Para minha surpresa, o DBCA não lista algumas
instâncias clonadas manualmente para que eu possa removê-las.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Isso ocorre porque o DBCA procura por instâncias através do arquivo oratab, encontrado
no diretório &lt;code&gt;&lt;code&gt;/etc/oratab&lt;/code&gt;&lt;/code&gt;. Então, para que o mesmo identifique as que eu clonei,
basta acrescentar neste arquivo as que estão faltando:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;oracle@oracleibm:~&amp;gt; vi /etc/oratab
# A colon, &apos;:&apos;, is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, &apos;#&apos;, are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third filed indicates
# to the dbstart utility that the database should , &quot;Y&quot;, or should not,
# &quot;N&quot;, be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
producao:/opt/oracle/db/10.2.0.1.0/server:Y
alfa:/opt/oracle/db/10.2.0.1.0/server:Y&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Como configurar uma conta MSN Messenger?</title>
      <link>http://blog.gilbertoca.com/2010/03/como-configurar-uma-conta-msn-messenger-2.html</link>
      <pubDate>seg., 29 mar. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/03/como-configurar-uma-conta-msn-messenger-2.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para alguns essa pergunta é realmente simples de responder. Mas para alguém que não tem o
costume de acessar a internet ou mesmo um computador para fazer trabalhos mais personalizados,
essa tarefa é quase impossível. Essa postagem é uma maneira de ajudar uma pessoa muita querida
a se comunicar mais facilmente comigo e com seus colegas de trabalho ou mesmo de profissão.
Estou me referindo à minha irmã Márcia.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Então vamos lá! Primeiro adquirir o &lt;a href=&quot;http://pt.wikipedia.org/wiki/Windows_Live_ID&quot;&gt;passaporte&lt;/a&gt;(Windows Live ID):&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Acessar o site do &lt;a href=&quot;https://accountservices.passport.net/ppnetworkhome.srf?vv=450&amp;#038;lc=1033&quot;&gt;Passaporte Microsoft&lt;/a&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Localize o link “Get Started Now” sob a seção “Sign Up Today”.
Há 2 links para escolher. Um permite a criação de uma conta HotMail gratuita que você pode usar para enviar e receber correspondência eletrônica (emails). O outro link é para criar uma conta usando um email existente. Vamos usar esse segundo link;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click no link “Get Started Now” onde diz “Use an Email
Address You Already Have.”;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Entre com seu endereço de email no campo “Email address”;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Escolha uma senha e digite-a no campo “Password”. Você precisará redigitar sua senha na área “Retype Password”;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Selecione uma pergunta de segurança e então digite a resposta (para a pergunta) na seção “Secret Answer”.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora, vamos acessar o MSN Messenger com seu novo passaporte:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Abra o &lt;a href=&quot;http://www.windowslive.com.br/public/product.aspx/view/2&quot;&gt;MSN Messenger&lt;/a&gt;(ou Windows Messenger) no seu computador;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Caso esse computador seja utilizado por mais de uma pessoa, provavelmente teremos  várias contas de acesso já configuradas. Para configurar a sua, utilize a opção “Conectar-se como &amp;#8230;&amp;#8203;” do menu “Arquivo” (Arquivo&amp;#8594;Conectar-se como &amp;#8230;&amp;#8203;). Aparecerá uma nova janela com dois campos para preenchimento. Click com seu mouse dentro campo texto onde diz “Email Address.” caso seu MSN esteja em inglês ou “Endereço de email”;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Entre com o endereço de email que você usou para criar seu passaporte MSN;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click com o mouse dentro do campo “Password”;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Entre com a senha que você usou para criar seu passaporte MSN;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click no botão “Sign In” ou “Entrar” para começar a usar sua conta MSN Messenger.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Unir legenda (srt) e video (avi) com MENCODER</title>
      <link>http://blog.gilbertoca.com/2010/03/unir-legenda-srt-e-video-avi-com-mencoder.html</link>
      <pubDate>sex., 12 mar. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/03/unir-legenda-srt-e-video-avi-com-mencoder.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Quem tiver um video e o arquivo de legenda e deseja unir ambos num aquivo o comando é este :&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;mencoder -oac mp3lame -ovc lavc -sub legenda.srt video.avi -o videocomlegenda.avi&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Sintaxe :&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;mencoder ( programa que acompanha o mplayer capaz de ripar e outras coisas )&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;-oac (Qual sera o codec de audio no arquivo que seja criado, usando a opção help é possivel ter uma lista ex.:
&lt;code&gt;mencoder -oac&lt;/code&gt; help)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;-ovc (Qual sera o codec de video no arquivo que seja criado, usando a opção help é possivel ter uma lista ex.:` mencoder -ovc help`&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;-sub ( para especificar o arquivo de legendas )&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;-o ( arquivo de saida que sera gerado)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>umount: /mnt/XXXX device is busy</title>
      <link>http://blog.gilbertoca.com/2010/02/umount-mntxxxx-device-is-busy.html</link>
      <pubDate>qua., 24 fev. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/02/umount-mntxxxx-device-is-busy.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Você está cansado de ver estas mensagens, dizendo que você não pode
desmountar &lt;code&gt;/mnt/cdrom/&lt;/code&gt; ou &lt;code&gt;/mnt/flash/&lt;/code&gt;?&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Veja esta pequena tática:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;lsof | grep /mnt/cdrom&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A sáida será o(s) processo(s) que estão usando este dispositivo.
Agora pare ou derrube o processo. Outra opção:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;fuser -muv /mnt/cdrom&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O qual irá listar conta de usuário, PID, etc usando o dispositivo montado
em &lt;code&gt;/mnt/cdrom/&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>openSUSE 11.0 [upgrading to KDE4 4.4: Nepomuk e Strigi]</title>
      <link>http://blog.gilbertoca.com/2010/02/opensuse-11-0-upgrading-to-kde4-4-4.html</link>
      <pubDate>seg., 22 fev. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/02/opensuse-11-0-upgrading-to-kde4-4-4.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A partir &lt;a href=&quot;http://en.openSUSE.org/KDE/KDE4&quot;&gt;dessa referência&lt;/a&gt; realizei a atualização para a versão mais recente do KDE4.
Inicialmente não constatei problemas graves na mudança, apenas senti o sistema mais lento.
Depois descobri que a lentidão era causada pela novidade recente dessa interface gráfica: &lt;a href=&quot;http://nepomuk.kde.org/&quot;&gt;Semantic Desktop with KDE&lt;/a&gt;.
Ao que parece a discussão a respeito de &lt;a href=&quot;http://forum.kde.org/viewtopic.php?f=20&amp;#038;t=83054&amp;#038;start=10&quot;&gt;tantas novidades se arrasta por algum tempo&lt;/a&gt;.
Para desabilitar este serviço siga os seguintes passos:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;no menu iniciar escolha Configure Desktop;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;depois na aba Advanced escolha Desktop Search;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;e finalmente desmarque enable nepomuk e enable strigi. &lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;DesktopSearch.png&quot; alt=&quot;Desktop Search&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Alterando o group principal/efetivo do usuário - newgrp e sg</title>
      <link>http://blog.gilbertoca.com/2010/02/alterando-o-group-principalefetivo-do-usuario-newgrp-e-sg.html</link>
      <pubDate>seg., 22 fev. 2010 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2010/02/alterando-o-group-principalefetivo-do-usuario-newgrp-e-sg.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para ter um ambiente semelhante ao de produção, neste caso para as aplicações
que rodam em forms e para a instalação do banco, acabei por instalar o mesmo
sistema operacional (SLES9), os mesmos softwares (OracleAs 10g, Oracle Database
10g e Oracle DevSuit 10g) no meu desktop. Com isso, toda vez que preciso usar
qualquer um destes softwares eu tem que assumir o usuario de instalação dos
mesmos que neste caso usei o default oracle. Veja a labuta que tem de fazer:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;$ xhost +
$ sux – oracle
$ source .oracleDB #ou oracleDS ou oracleAS&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Dos scripts de mudança de ambiente não tenho como escapar mas para facilitar
minha vida, acabei adicionando os grupos DBA e oinstall para minha lista
de grupos. Dessa forma não preciso usar o su para mudança de usuario. Ai tem um
porém, meu grupo padrão é users. Nessa, quando tento compilar um forms ou
iniciar o servidor de aplicações, acontece vários erros de permissões. Isso
porque meu grupo principal/efetivo, como já disse, não é o oinstall nem DBA.
Para contornar este problema usei o utilitário de sistema newgrp. O comando
newgrp é usado para alterar o grupo efetivo do usuário para o grupo solicitado
em uma nova sessão de login:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;$ groups
users disk uucp dialout audio video oinstall dba
$ newgrp oinstall
$ groups
oinstall disk uucp dialout audio video dba users
$ exit
$ groups
users disk uucp dialout audio video oinstall dba&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Desta forma meu grupo principal torna-se oinstall, me possibilitando trabalhar
com a compilação dos forms. Legal hein! O outro utilitario de sistema que
podemos usar é o sg. O sg é mais usando que vc so precisa executar um comando,
mas usando o grupo o qual vc necessita:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;sg oinstall -c rm *.err&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Oracle IAS [An error occurred while talking to OPMN. Could not find entity for]</title>
      <link>http://blog.gilbertoca.com/2009/10/oracle-ias-an-error-occurred-while-talking-to-opmn-could-not-find-entity-for.html</link>
      <pubDate>seg., 19 out. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/10/oracle-ias-an-error-occurred-while-talking-to-opmn-could-not-find-entity-for.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O servidor de aplicações Oracle (IAS 10g) não inicia, o enterprise manager reporta um erro que não diz muito:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;An error occurred while talking to OPMN. Could not find entity for “nome do servidor”&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Os arquivos de log necessários são:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;$ORACLE_HOME/opmn/logs/ons.log&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;$ORACLE_HOME/opmn/logs/opmn.log&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;$ORACLE_HOME/opmn/logs/ipm.log&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O único que mostrou algo de errado foi ipm.log:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;cat ipm.log
09/10/19 10:18:09 [2] BIND (Address already in use)
09/10/19 10:18:09 [2] 127.0.0.1:6101 - listener BIND failed
09/10/19 10:18:09 [4] Thread do listener 98311: 127.0.0.1:6101 (0x442) está sendo encerrado
09/10/19 10:18:09 [1] Listener local encerrado&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A solução foi fechar todas a aplicações oracle em execução e verificar pelo utilitário &lt;strong&gt;&lt;a href=&quot;http://linux.die.net/man/1/ps&quot;&gt;ps&lt;/a&gt;&lt;/strong&gt;
a existência de algum ainda rodando, para fechá-lo também.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>CHKDSK toda vez que reinicia (CHKDSK runs every time I boot)!</title>
      <link>http://blog.gilbertoca.com/2009/10/chkdsk-toda-vez-que-reinicia-chkdsk-runs-every-time-i-boot.html</link>
      <pubDate>sex., 16 out. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/10/chkdsk-toda-vez-que-reinicia-chkdsk-runs-every-time-i-boot.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Esse parece ser um problema comum e caso você não o tenha encontrado, pode ficar tranquilo. Sua vez vai chegar!
A solução que funcionou para mim, encontrei neste &lt;a href=&quot;http://www.pcreview.co.uk/forums/thread-72388.php&quot;&gt;fórum&lt;/a&gt;.
Vou deixar registrado pois sei que outros usuários também precisarão:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;1. click no menu iniciar e abra a janela de execução;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2. digite “cmd” e enter (nota: não use aspas);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;3. depois digite “fsutil dirty query e:”;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;4. se a mensagem de retorno indicar que o volume está SUJO vá para o passo 5;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;5. depois digite “chkdsk e: /f /x”;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;6. com a finalização repita o passo 3;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;7. se não mais indicar que está SUJO então reinicie e não verá mais a mensagem de agendamento do CHKDSK.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;Microsoft Windows XP [versão 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:Documents and SettingsGilberto&amp;gt;fsutil dirty query e:
O volume e: está sujo.

C:Documents and SettingsGilberto&amp;gt;chkdsk e: /f /x
O tipo do sistema de arquivos é NTFS.
Volume desmontado. Todos os identificadores abertos para esse volume agora são i
nválidos.
O rótulo de volume é Disco local.

CHKDSK está verificando os arquivos e pastas (etapa 1 de 3)...
Verificação de arquivos concluída.
CHKDSK está verificando índices (etapa 2 de 3)...
Verificação dos índices concluída.
CHKDSK está verificando os descritores de segurança (etapa 3 de 3)...
Verificação de descritores de segurança concluída.
O Windows verificou o sistema de arquivos e não encontrou problemas.

  58878224 KB de espaço total em disco.
   7342712 KB em 18820 arquivos.
     11708 KB em 4861 índices.
         0 KB em setores defeituosos.
     96752 KB em uso pelo sistema.
     65536 KB ocupados pelo arquivo de log.
  51427052 KB disponíveis em disco.

      4096 bytes em cada unidade de alocação.
  14719556 total de unidades de alocação no disco.
  12856763 unidades de alocação disponíveis em disco.

C:Documents and SettingsGilberto&amp;gt;fsutil dirty query e:
O volume e: NÃO está sujo.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Proteja-se Contra Virus(Disable USB Autorun)</title>
      <link>http://blog.gilbertoca.com/2009/07/proteja-se-contra-virusdisable-usb-autorun.html</link>
      <pubDate>sáb., 18 jul. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/07/proteja-se-contra-virusdisable-usb-autorun.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Meus amigos professores sempre reclamam que não conseguem manter seus PCs/NoteBooks livres de vírus.
E uma queixa maior é a infestação por uso de dispositivos usb (pen drive).
&lt;a href=&quot;http://www.sizlopedia.com/2008/03/18/disable-usb-autorun-to-save-pc-from-usb-viruses/&quot;&gt;Encontrei uma dica excelente sobre o assunto&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Procuro retratar a mesma dica, mas para os brasileiros. A melhor forma de manter longe a auto
instalação/execução de virus de USB em seu Desktop é desabilitando a característica de
auto-execução para esses dispositivos.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Irei demonstrar como fazê-lo:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;clique no botão Iniciar, depois escolha Executar&amp;#8230;&amp;#8203; e na caixa de texto digite &quot;gpedit.msc&quot; sem aspas&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;escolha Configuração do Computador &amp;#8594; Modelos Administrativos &amp;#8594; Sistema  &lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;gpedit.msc.jpeg&quot; alt=&quot;Diretivas de Grupo&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;entre os itens escolha Desativar AutoExecutar e clique duas vezes nele&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;clique em &quot;Ativado&quot;, então em &quot;Desativar Executar automaticamente em:&quot; selecione &quot;Todas as unidades&quot;  &lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;gpedit.autorun.jpeg&quot; alt=&quot;Desativar AutoExecutar&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Esta configuração o protegerá da invasão automática de vírus por esse ou outro dispositivo, assim que você o conectar ao PC.
A proteção se completa com uma solução contra vírus, ou seja, um antivírus. Recomendo um de uso pessoal - &lt;a href=&quot;http://free.avg.com/&quot;&gt;AVG&lt;/a&gt; - sem custo algum.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Unix: Initializing..Terminal linux is unknown.</title>
      <link>http://blog.gilbertoca.com/2009/07/unix-initializing-terminal-linux-is-unknown.html</link>
      <pubDate>qui., 9 jul. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/07/unix-initializing-terminal-linux-is-unknown.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Nosso banco de dados atual está instalado em uma máquina unix - AIX 5.3.
Mas por estar acostumado com ambientes Linux, instalei para o mesmo, o &lt;a href=&quot;http://www-03.ibm.com/systems/power/software/aix/linux/&quot;&gt;pacote de ferramentas Linux&lt;/a&gt;
que a &lt;a href=&quot;http://www.ibm.com/pt/pt/&quot;&gt;IBM&lt;/a&gt; disponibiliza. Funciona muito bem, mas quando executo um binário unix - exemplo: topas - o shell responde que esse erro.
A solução é ajustar a variável TERM para xterm, nesse caso é claro, pois utilizo um ambiente gráfico para acessar o servidor.
Não sei se funcionaria acessando de um terminal texto.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;export TERM=xterm&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Padronizando Nomes de Objeto - Banco de Dados</title>
      <link>http://blog.gilbertoca.com/2009/05/padronizando-nomes-de-objeto-banco-de-dados.html</link>
      <pubDate>sex., 8 mai. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/05/padronizando-nomes-de-objeto-banco-de-dados.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Primeiro definimos a extensão dos arquivos que conterão as sentenças de criação dos objetos do banco de dados:&lt;/p&gt;
&lt;/div&gt;
&lt;table border=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.tbs
    &lt;/td&gt;

    &lt;td&gt;
      Tablespace (Tablespace)- Script de criação do(s) espaço(s) de armazenamento
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.vw
    &lt;/td&gt;

    &lt;td&gt;
      View (visão)-Script de criação da visões
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.usr
    &lt;/td&gt;

    &lt;td&gt;
      Schema (esquema)- Criação do Proprietário do Módulo (Schema), juntamente com a role(papel) de aplicação e usário(s) correspondente(s)
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.grt
    &lt;/td&gt;

    &lt;td&gt;
      Grant (Permissão)- Script que estabelece as permissões a outros usuário e a role de aplicação
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.rvk
    &lt;/td&gt;

    &lt;td&gt;
      Revoke (Permissão)- Script que revoga as permissões a outros usuário e a role de aplicação
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.syn
    &lt;/td&gt;

    &lt;td&gt;
      Synonym (Sinônimo)- Script que estabelece os sinônimos dos objetos a outros usuários
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.tab
    &lt;/td&gt;

    &lt;td&gt;
      Table (Tabela)- Script de criação das tabelas
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.con
    &lt;/td&gt;

    &lt;td&gt;
      Constraint (Restrição)- Script de criação das restrições de integridade
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.ind
    &lt;/td&gt;

    &lt;td&gt;
      Index (Índice)- Script de criação dos índeces
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.trg
    &lt;/td&gt;

    &lt;td&gt;
      Trigger (Gatilho)- Script de criação dos gatilhos
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.seq
    &lt;/td&gt;

    &lt;td&gt;
      Sequence (Sequência)- Script de criação das sequências
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.prc
    &lt;/td&gt;

    &lt;td&gt;
      Stored Procedure (Procedimento Armazenado)- Script de criação de procedimentos armazenados
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.fnc
    &lt;/td&gt;

    &lt;td&gt;
      Stored Function (Função Armazenada)- Script de criação de funções armazenadas
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.pks
    &lt;/td&gt;

    &lt;td&gt;
      Package Specification (Especificação de Pacote) - Script de criação das especificações dos pacotes
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.pkb
    &lt;/td&gt;

    &lt;td&gt;
      Package Body (Corpo de Pacote) - Script de criação do corpo dos pacotes
    &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
      &lt;modulo&gt;.sql
    &lt;/td&gt;

    &lt;td&gt;
      Reponsável por chamar/executar os outros arquivos em uma sequencia apropriada
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;table class=&quot;tableblock frame-ends grid-all stretch&quot;&gt;
&lt;colgroup&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3334%;&quot;&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Para Tabelas&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Descrição&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Exemplo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;prefixo&amp;gt;_&amp;lt;nometabela&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;onde &amp;lt;prefixo&amp;gt; deverá ser letras representando o módulo em que esta tabela pertença.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;ger_pessoa&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class=&quot;tableblock frame-ends grid-all stretch&quot;&gt;
&lt;colgroup&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3334%;&quot;&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Para Visão&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Descrição&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Exemplo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;prefixo&amp;gt;_&amp;lt;nomevisao&amp;gt;_vw&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;onde &amp;lt;prefixo&amp;gt; deverá ser letras representando o módulo em que esta tabela pertença.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;ger_funcionario_vw&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class=&quot;tableblock frame-all grid-all stretch&quot;&gt;
&lt;colgroup&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3334%;&quot;&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Para Sequências&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Descrição&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Exemplo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;prefixo&amp;gt;_&amp;lt;nometabela&amp;gt;_sequence&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;onde &amp;lt;prefixo&amp;gt; deverá ser letras representando o módulo em que esta tabela pertença.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;ger_funcionario_sequence&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class=&quot;tableblock frame-all grid-all stretch&quot;&gt;
&lt;colgroup&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3334%;&quot;&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Para Colunas&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Descrição&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Exemplo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;cd&amp;gt;_&amp;lt;nometabela&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna representando a chave primaria da tabela.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;cd_pessoa&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;cd&amp;gt;_&amp;lt;nometabelaestrangeira&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna(s) representando a presença de chave estrangeira.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;cd_municipio&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;cd&amp;gt;_&amp;lt;nometabelaestrangeira&amp;gt;&amp;lt;significadodorelacionamento&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna(s) representando a presença de chave estrangeira.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;cd_municipionaturalidade&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;fl&amp;gt;_&amp;lt;nomecampo&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna representando campo lógico(verdadeiro ou falso).&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;fl_dependente, fl_encerrado&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;dt&amp;gt;_&amp;lt;nomecampo&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna representando campo data.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;dt_nascimento&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;hr&amp;gt;_&amp;lt;nomecampo&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna representando campo tempo.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;hr_saida&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;nu&amp;gt;_&amp;lt;nomecampo&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna representando campo numerico.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;nu_leicriacao&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para nomear constraints, devemos usar um padrão porque não pode haver repetição de nomes dos mesmos (limitado a 30 caracteres - limitação do oracle).&lt;/p&gt;
&lt;/div&gt;
&lt;table class=&quot;tableblock frame-all grid-all stretch&quot;&gt;
&lt;colgroup&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3333%;&quot;&gt;
&lt;col style=&quot;width: 33.3334%;&quot;&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Para Constraints&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Descrição&lt;/th&gt;
&lt;th class=&quot;tableblock halign-left valign-top&quot;&gt;Exemplo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;nome da tabela com prefixo&amp;gt;_&amp;lt;pk&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para chave primaria.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;constraint sys_usuario_pk primary key (cd_usuario) enable&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;nome da tabela com prefixo&amp;gt;_&amp;lt;uk&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para indice unico.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;constraint sys_usuario_uk unique (login, email) enable&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;nome da tabela origem sem prefixo&amp;gt;_&amp;lt;to&amp;gt;_&amp;lt;nome da tabela atual(destino sem prefixo&amp;gt;_&amp;lt;fk&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para coluna(s) representando a presença de chave estrangeira.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;constraint entidade_to_subentidade_fk foreign key (id_entidade) references kira.sys_entidade (id_entidade) enable&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;&amp;lt;nome da tabela sem prefixo&amp;gt;_&amp;lt;nome da coluna&amp;gt;_&amp;lt;ck&amp;gt;_&amp;lt;um digito - caso ocorra repeticao&amp;gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;para check.&lt;/p&gt;&lt;/td&gt;
&lt;td class=&quot;tableblock halign-left valign-top&quot;&gt;&lt;p class=&quot;tableblock&quot;&gt;create table ergon.ergon_regras_compara_ff
(
regra number(6,0) constraint regras_compara_ff_regra_ck_0 not null enable,
fl_ativa_1 char(1 byte) default &amp;#8216;n&amp;#8217; constraint rg_cp_ff_fl_ativa_1_ck_0 not null enable,
fl_ativa_2 char(1 byte) default &amp;#8216;n&amp;#8217; constraint rg_cp_ff_fl_ativa_2_ck_0 not null enable,
fl_ativa_3 char(1 byte) default &amp;#8216;n&amp;#8217; constraint rg_cp_ff_fl_ativa_3_ck_0 not null enable,
limite_diferenca number(11,2),
constraint ergon_regras_compara_ff_pk primary key (regra) enable,
constraint rg_cp_ff_fl_ativa_1_ck_1 check (fl_ativa_1 in (&amp;#8216;s&amp;#8217;, &amp;#8216;n&amp;#8217;)) enable novalidate,
constraint rg_cp_ff_fl_ativa_2_ck_2 check (fl_ativa_2 in (&amp;#8216;s&amp;#8217;, &amp;#8216;n&amp;#8217;)) enable novalidate,
constraint rg_cp_ff_fl_ativa_3_ck_3 check (fl_ativa_3 in (&amp;#8216;s&amp;#8217;, &amp;#8216;n&amp;#8217;)) enable novalidate
) ;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; em todos os casos acima, sendo o nome do objeto grande, devemos abreviar o nome do mesmo.
ex.:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;aplicacoes = apli (4)
aplicacao_funcoes = apfu (2:2)
aplicacao_funcao_papeis = apfp (2:1:1)
aplicacao_funcao_papel_bananas = afpb (1:1:1:1)
aplicacao_funcao_papel_banana_macas = (Seja criativo!)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;REFERENCIA:&lt;/strong&gt; &lt;a href=&quot;http://www.oracle-base.com/articles/misc/NamingConventions.php&quot;&gt;NamingConventions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Uso essa estratégia há algum tempo e fica muito fácil de trabalhar e manter.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Você adota uma notação?
Qual notação você usa?&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Indo um pouco além ...</title>
      <link>http://blog.gilbertoca.com/2009/03/indo-um-pouco-alem.html</link>
      <pubDate>seg., 23 mar. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/03/indo-um-pouco-alem.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Estou aprendendo um pouco sobre programação orientada a objeto em java e com o
pouco que li resolvi implementar uma pequena api que abstrai as regras de acesso
e recuperação de dados - acesso a banco de dados. Gosto muito dessa (&lt;a href=&quot;http://orbroker.sourceforge.net/&quot;&gt;OrBroker&lt;/a&gt;)
 api de persistência com isso elaborei um contrato que acho o mínimo necessário para o acesso a dados,
o qual poderá utilizar a api OrBroker - espero não somente essa api, mas outras (desacoplamento).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;IService: Interface (contrato) geral para uso com o mescanimo de persistência OrBroker.
Estabelece assinaturas de métodos essenciais para operações de acesso a banco de dados.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Assinaturas:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;java&quot;&gt;public interface IService&amp;lt;T, PK extends Serializable&amp;gt; {
    /**
     * Expõe o mecanismo de persistência. .
     */
    public Broker getBroker();

    public Class&amp;lt;T&amp;gt; getClassEntity();

    /**
     * Método genérico usado para obter todas as entidades de uma classe
     * particular. Essa classe particular é definida no construtor da
     * implementação desta interface.
     *
     * @return Collection de entidades preenchidas
     */
    public Collection&amp;lt;T&amp;gt; getAll();

    /**
     * Método genérico para obter uma entidade.
     *
     * @param entity
     *                objeto ao qual se aplica o retorno da pesquisa.
     * @return true e o preenchimento da entidade passada como parâmetro. false
     *         caso contrário.
     */
    public boolean find(T entity);

    /**
     * Método genérico para inserção de uma nova entidade.
     *
     * @param entity
     *                entidade a ser inserida.
     * @throws InsertException
     */
    public void insert(T entity) throws InsertException;

    /**
     * Método genérico para atualização de uma entidade.
     *
     * @param entity
     *                entidade a ser alterada.
     */
    public void update(T entity);

    /**
     * Método genérico para deleção de uma entidade.
     *
     * @param entity
     *                entidade a ser deletada.
     */
    public void delete(T entity);

    /**
     * Método genérico para consulta nomeada preexistente.
     *
     * @param queryName
     *                nome da consulta.
     */
    public Collection&amp;lt;T&amp;gt; findByNamedQuery(String queryName);

    /**
     * Método genérico para personalizada com a cláusula SQL LIKE.
     *
     * @param likeColumn
     *                campo a ser usado na cláusula SQL.
     * @param likeValue
     *                valor para pesquisa.
     */
    public Collection&amp;lt;T&amp;gt; findLike(String likeColumn, String likeValue);
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Vocês podem notar o uso do inglês para nomear classes, metodos e até atributos.
Acho isso um vício ou uma maneira de reduzir os nomes, pois em português ficam enormes.
Outra coisa, alguns podem comentar que o nome certo seria sufixar ou prefixar
tal interface com o termo DAO, para expressar um padrão de projeto muito conhecido
e utilizado para, também, abstrair essas atividades de banco de dados.
Acontece que essa minha pequena implementação não exigirá tamanha desacoplagem
e acho também que um programa que grava e ler dados, não faz somente isso,
faz isso e um pouco mais - regras de negócio.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Assim, optei por, inicialmente, colocar as assinaturas necessárias ao acesso
a dados e deixar para uma outra interface acrescentar as assinaturas de contrato específicas:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;java&quot;&gt;public interface ICategoriaService extends IService&amp;lt;Categoria, Integer&amp;gt; {
    /**
     * Busca por chave primária.
     * @param primaryKey
     * @return a instância da entidade encontrada ou null se a entidade não existe
     * @throws IllegalArgumentException se o primeiro argumento é nulo
     */
    public Categoria find(Integer primaryKey);
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Na implementação ocorre um fato interessante quando a entidade sendo trabalhada
não exigir contratos além dos já fornecidos. Notei essa característica quando da
implementação dos métodos por uma classe a ser utilizada como base de implementação,
ou seja, as classes mais específicas - a exemplo da ICategoriaService -
herdarão dessa classe base e implementarão seus contratos específicos.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Um exemplo de uso dessa classe base:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;java&quot;&gt;public class CategoriaBaseServiceTest {
    private BaseService&amp;lt;Categoria, Integer&amp;gt; cS = new BaseService&amp;lt;Categoria, Integer&amp;gt;(
	    Categoria.class, Constants.ORBROKER_INVENTARIO);

    @Test
    public void testGetAll() {
	Collection&amp;lt;Categoria&amp;gt; result = cS.getAll();
	System.out.println(result);
	assertFalse(result.isEmpty());
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Então ficou da seguinte maneira essa pequena api:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;Interface	     Implementação
IService ----------&amp;gt; BaseService
|                        |
|                        |
ICategoriaService -&amp;gt; CategoriaService&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Conexão Lenta com o Banco Oracle - TNSPING, SQLPLUS, ETC</title>
      <link>http://blog.gilbertoca.com/2009/03/conexao-lenta-com-o-banco-oracle-tnsping-sqlplus-etc.html</link>
      <pubDate>sex., 13 mar. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/03/conexao-lenta-com-o-banco-oracle-tnsping-sqlplus-etc.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Se você notar que após a configuração (Editando o arquivo tnsnames.ora ou usando
o utilitário netmgr) de um cliente de acesso ao Banco de Dados Oracle estiver muito lenta,
verifique a variável NAMES.DIRECTORY_PATH no arquivo sqlnet.ora.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Muitas vezes a ordem de procura dos serviços disponíveis na máquina servidora pode
estar prejudicando a conexão. No meu caso, configurei o servidor com os seguintes protocolos,
na ordem correspondente: TNSNAMES, EZCONNECT, ONAMES, HOSTNAME.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Mas no cliente o arquivo sqlnet.ora estava com um protocolo não usado:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;# sqlnet.ora Network Configuration File: /opt/oracle/oas/10.1.2.0.2/server/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (LDAP, EZCONNECT, TNSNAMES, ONAMES, HOSTNAME)```&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Deste modo, o cliente primeiro procura por um serviço disponibilizado por um servidor LDAP.
E isso leva tempo. A remoção do primeiro protocolo e reordenando os demais, o tempo de conexão voltou ao normal.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;# sqlnet.ora Network Configuration File: /opt/oracle/oas/10.1.2.0.2/server/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, ONAMES, HOSTNAME)```&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Outro parâmetro que pode impactar de forma negativa suas sessões é o&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;SQLNET.AUTHENTICATION_SERVICES = (NTS)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Esse especifica que o Oracle permita a autenticação nativa NT para usuários windows.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Oracle JInitiator + Forms + IE6/IE7 + Windows Live Toolbar : Problema</title>
      <link>http://blog.gilbertoca.com/2009/03/oracle-jinitiator-forms-ie6ie7-windows-live-toolbar-problema.html</link>
      <pubDate>sex., 6 mar. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/03/oracle-jinitiator-forms-ie6ie7-windows-live-toolbar-problema.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Essa combinação é bombástica! Aqui na secretaria, alguns usuários inadivertidadmente
instalaram o IE7 e com isso, em conjunto, veio o Windows Live Toolbar. Depois disso,
nenhuma aplicação forms funciona, derrubando o navegador. Segundo &lt;a href=&quot;http://www.experts-exchange.com/Database/Oracle/9.x/Q_22572754.html&quot;&gt;essa&lt;/a&gt;
discussão o problema todo está nesse complemento ao IE.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Então a solução é:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Remova Windows Live Toolbar;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remova JInitiator;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reinstale JInitiator.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Na maioria dos casos, só a remoção de todos os complementos com a tag Messenger resolve.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>openSUSE 11.0 - Failed to update system: Authorisation could not be obtained</title>
      <link>http://blog.gilbertoca.com/2009/03/opensuse-110-failed-to-update-system-authorisation-could-not-be-obtained.html</link>
      <pubDate>seg., 2 mar. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/03/opensuse-110-failed-to-update-system-authorisation-could-not-be-obtained.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Resolvi mudar de interface gráfica no linux. Antes usava o KDE e agora uso o GNOME,
apesar de algumas limitações da interface não tenho muito do que reclamar.
Este erro acontece como usuário comum, mas como usuário administrador (root) funciona sem problemas.
Encontrei a solução para esse problema no seguinte &lt;a href=&quot;http://linux.derkeiler.com/Mailing-Lists/SuSE/2008-07/msg00999.html&quot;&gt;LINK&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Reproduzindo:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;vi /etc/PolicyKit/PolicyKit.conf


&amp;lt;config version=”0.1”&amp;gt;
&amp;lt;/config&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;adicione a seguinte entrada para seu usuário:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;vi /etc/PolicyKit/PolicyKit.conf


&amp;lt;config version=”0.1”&amp;gt;
&amp;lt;match user=”foo”&amp;gt;
&amp;lt;return result=”yes”&amp;gt;
&amp;lt;/return&amp;gt;
&amp;lt;/match&amp;gt;
&amp;lt;/config&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;DESISTÊNCIA!&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Após dois dias, confesso que GNOME não foi uma experiência agradável.
Realmente o KDE3 trás o necessário para boa produtividade e tranquilidade.
Um aplicativo, para mim, determina tudo que uma interface gráfica pode fornecer:
gerenciador de arquivos. Então, o que mais senti falta? &lt;a href=&quot;http://konqueror.kde.org/&quot;&gt;Konqueror&lt;/a&gt;,
&lt;a href=&quot;http://en.openSUSE.org/Konqueror_Tips_and_Tricks&quot;&gt;um canivete suíço&lt;/a&gt;!
É o primeiro aplicativo que abro para trabalhar e por ele realizo a maioria de minhas atividades.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;KDE4?&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Nem pensar!&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>openSUSE 10.3 - pt_BR.UTF8</title>
      <link>http://blog.gilbertoca.com/2009/01/opensuse-103-pt_brutf8.html</link>
      <pubDate>qui., 8 jan. 2009 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2009/01/opensuse-103-pt_brutf8.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Para resolver de vez os problemas com caracteres estranhos e acentuação:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;zypper in bundle-lang-common-pt bundle-lang-gnome-pt bundle-lang-kde-pt&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Depois, yast&amp;#8594;system&amp;#8594;language, ajuste o item &lt;strong&gt;&lt;em&gt;Primary Language&lt;/em&gt;&lt;/strong&gt; para Português(Brasil).
Configure também como as variáveis &quot;locale&quot; serão ajustadas para o usuário root através do botão
&lt;strong&gt;&lt;em&gt;Details&lt;/em&gt;&lt;/strong&gt;.  Estes ajustes são gravados
no arquivo de configuração &lt;strong&gt;&lt;em&gt;/etc/sysconfig/language&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>openSUSE 10.2 atingiu o Fim da Vida - Descontinuado</title>
      <link>http://blog.gilbertoca.com/2008/12/opensuse-102-atingiu-o-fim-da-vida-descontinuado.html</link>
      <pubDate>seg., 22 dez. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/12/opensuse-102-atingiu-o-fim-da-vida-descontinuado.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Não posso deixar de lamentar essa notícia: &lt;a href=&quot;http://pt.openSUSE.org/Not%C3%ADcias_da_semana_no_openSUSE/51#Atualiza.C3.A7.C3.B5es_de_Seguran.C3.A7a&quot;&gt;openSUSE 10.2 atingiu o Fim da Vida&lt;/a&gt;.
Essa versão é, na minha opinão, a mais segura e estável, roda em praticamente qualquer máquina e lhe dá uma solidez que ainda não vi em outra versão ou distribuição linux.
Veja o anúncio: &lt;a href=&quot;http://lists.openSUSE.org/openSUSE-security-announce/2008-12/msg00004.html&quot;&gt;security-announce - openSUSE 10.2 has reached End of Life&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Pelos meus cálculos são dois anos de vida. Não sei quanto às outras distribuições, mas acho um tempo muito reduzido.
Mas o que move o mundo hoje em dia é o negócio, o marketing e a notícia, quem sou eu para impedir!
Quanto tempo você já usou uma distribuição linux? Qual o tempo de vida de sua distribuição? Você não sabe?
Procure e coloque aqui seu comentário de forma que possamos saber qual tem um tempo maior de uso.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Duplicar um banco oracle na mesma máquina</title>
      <link>http://blog.gilbertoca.com/2008/12/para-duplicar-um-banco-oracle-na-mesma-maquina.html</link>
      <pubDate>seg., 1 dez. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/12/para-duplicar-um-banco-oracle-na-mesma-maquina.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Atualmente aqui na &lt;a href=&quot;https://www.secad.to.gov.br&quot;&gt;Secretaria&lt;/a&gt; estamos em um processo de
implantação de um &lt;a href=&quot;https://www.techne.com.br/produtos/produtos.asp?id=4&quot;&gt;sistema de recursos humanos&lt;/a&gt;,
para ser mais exato, praticamente toda parte de infraestrutura (hardware e software)
já está pronta para uso. Mas por questões que foge ao meu conhecimento (penso
ser licitação), a fase mais densa (treinamento e uso pelo usuário final) está
em fase de planejamento/reestruturação. Bom, apesar dessa, vamos dizer
morosidade, tem uma fase desse processo que não pára: a migração. Nesse processo
participam duas equipes: parametrização e a própria migração, o qual nessa
última pertenço.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A migração é um ciclo constante onde a partir de modificações(parametrização)
importantes no banco de produção, é acionado uma requisição de atualização do
banco de migração (utilizado para validar a parametrização com a ativação de
funções do sistema de recursos humanos, por exemplo, calculo de folha). Para
esse ciclo funcionar tive que realizar uma das tarefas mais comuns para quem
administra um que é cópia/duplicação/clonagem de um banco em
produção para outro banco (até mesmo em outro servidor) a ser utilizado como
teste. O procedimento descrito aqui, nada mais é do que sequência descrita na
própria &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/rcmdupdb.htm#i1006474&quot;&gt;documentação&lt;/a&gt;:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Create an Oracle Password File for the Auxiliary Instance &lt;a href=&quot;#task1&quot;&gt;[task1]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Establish Oracle Net Connectivity to the Auxiliary Instance &lt;a href=&quot;#task2&quot;&gt;[task2]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create an Initialization Parameter File for the Auxiliary Instance &lt;a href=&quot;#task3&quot;&gt;[task3]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Start the Auxiliary Instance &lt;a href=&quot;#task4&quot;&gt;[task4]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mount or Open the Target Database &lt;a href=&quot;#task5&quot;&gt;[task5]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make Sure You Have the Necessary Backups and Archived Redo Logs(Essencial - você precisa de um backup &lt;a href=&quot;#task6&quot;&gt;[task6]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Allocate Auxiliary Channels if Automatic Channels Are Not Configured &lt;a href=&quot;#task7&quot;&gt;[task7]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Recrie a tablespace temporária (extra) &lt;a href=&quot;#task8&quot;&gt;[task8]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_1_create_an_oracle_password_file_for_the_auxiliary_instance&quot;&gt;&lt;a id=&quot;task1&quot;&gt;&lt;/a&gt;Task 1: Create an Oracle Password File for the Auxiliary Instance&lt;/h3&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;cd $ORACLE_HOME/dbs/
orapwd file=$ORACLE_HOME/dbs/orapwbeta password=senha entries=5&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_2_establish_oracle_net_connectivity_to_the_auxiliary_instance&quot;&gt;&lt;a id=&quot;task2&quot;&gt;&lt;/a&gt;Task 2: Establish Oracle Net Connectivity to the Auxiliary Instance&lt;/h3&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;vi $ORACLE_HOME/network/admin/tnsnames.ora
BETA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracleibm.secad)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = beta.secad.to.gov.br)
    )
  )&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Note&lt;/div&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
a criação estática de um listener é importantíssima, caso contrário
vc encontrá problemas de conexão, como o erro:
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;ORA-12528: TNS:listener: all appropriate instances are blocking new connections&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;Shell
vi $ORACLE_HOME/network/admin/listener.ora
# listener.ora Network Configuration File:
/opt/oracle/db/10.2.0.1.0/server/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = producao.secad.to.gov.br)
      (ORACLE_HOME = /opt/oracle/db/10.2.0.1.0/server)
      (SID_NAME = producao)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = alfa.secad.to.gov.br)
      (ORACLE_HOME = /opt/oracle/db/10.2.0.1.0/server)
      (SID_NAME = alfa)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = beta.secad.to.gov.br)
      (ORACLE_HOME = /opt/oracle/db/10.2.0.1.0/server)
      (SID_NAME = beta)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracleibm)(PORT = 1521))
  )&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_3_create_an_initialization_parameter_file_for_the_auxiliary_instance&quot;&gt;&lt;a id=&quot;task3&quot;&gt;&lt;/a&gt;Task 3: Create an Initialization Parameter File for the Auxiliary Instance&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Vamos criar primeiro a estrutura de diretorios onde ficarão os arquivos do banco&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;cd /dm0/oracle/admin/beta
mkdir adump
mkdir arch
mkdir bdump
mkdir cdump
mkdir data
mkdir exp
mkdir pfile
mkdir scripts
mkdir udump
mkdir utlfile&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora o arquivo de inicialização, para isso vou fazer uma copia do banco
original e fazer a mudanças necessárias&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;cd /dm0/oracle/admin/beta/pfile/
cp ../../producao/pfile/init.ora.292007145712 initbeta.ora
vi initbeta.ora&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Se estiver usando spfile no banco original, crie um arquivo de inicialização
(pfile) a partir dele&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;export ORACLE_SID=producao
sqlplus /as sysdba
CREATE PFILE=&apos;/dm0/oracle/admin/beta/pfile/initbeta.ora&apos; FROM SPFILE;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Substitua todas as ocorrências do banco anterior&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;:g/producao/s//beta/g

#Acrescente mais uma seção neste arquivo
###########################################
#  Filename Conversion Initialization Parameters
#  Renaming Datafiles in RMAN DUPLICATE DATABASE
#  Renaming Online Logs in RMAN DUPLICATE DATABASE
###########################################
DB_FILE_NAME_CONVERT=(/dm0/oracle/admin/producao/data/,/dm0/oracle/admin/beta/data/)
LOG_FILE_NAME_CONVERT=(/dm0/oracle/admin/producao/data,/dm0/oracle/admin/beta/data)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Salve o arquivo. Para facilitar a duplicação recomenda-se criar um spfile no
local padrao da instalação. Isso irá lhe poupar o trabalho quando o rman fizer
o shutdwon e startup, ele não solicitará o arquivo de inicialização pfile.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;export ORACLE_SID=beta
sqlplus /as sysdba
CREATE SPFILE FROM PFILE=&apos;/dm0/oracle/admin/beta/pfile/initbeta.ora&apos;;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_4_start_the_auxiliary_instance&quot;&gt;&lt;a id=&quot;task4&quot;&gt;&lt;/a&gt;Task 4: Start the Auxiliary Instance&lt;/h3&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;export ORACLE_SID=beta
sqlplus /as sysdba
STARTUP FORCE NOMOUNT&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_5_mount_or_open_the_target_database_opcional_provavelmente_o_banco_original_já_esteja_aberto&quot;&gt;&lt;a id=&quot;task5&quot;&gt;&lt;/a&gt;Task 5: Mount or Open the Target Database (Opcional - provavelmente o banco original já esteja aberto!)&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Conecte-se ao banco de origem&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;SQL&amp;gt; CONNECT SYS/oracle@producao AS SYSDBA;

STARTUP MOUNT;#mount or open database origem&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_6_make_sure_you_have_the_necessary_backups_and_archived_redo_logs_essencial_você_precisa_de_um_backup_recente_caso&quot;&gt;&lt;a id=&quot;task6&quot;&gt;&lt;/a&gt;Task 6: Make Sure You Have the Necessary Backups and Archived Redo Logs (Essencial - você precisa de um backup recente, caso&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;contrário, a clonagem criará um banco antigo)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;export ORACLE_SID=producao
rman target /
Recovery Manager: Release 10.2.0.2.0 - Production on Wed Mar 14 18:12:58 2007
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: PRODUCAO (DBID=2991538920)
RMAN&amp;gt; list backup;
using target database control file instead of recovery catalog
List of Backup Sets
===================&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_7_allocate_auxiliary_channels_if_automatic_channels_are_not_configured&quot;&gt;&lt;a id=&quot;task7&quot;&gt;&lt;/a&gt;Task 7: Allocate Auxiliary Channels if Automatic Channels Are Not Configured&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Start RMAN with a connection to the target database, the auxiliary instance,
and, if applicable, the recovery catalog database
Nesta conexão pode ocorrer um error comum na versao 10g:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;ORA-12528: TNS:listener: all appropriate instances are blocking new connections&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Este é um erro conhecido do Oracle 10g onde um SHUTDOWN IMMEDIATE é seguido
por um STARTUP MOUNT ou STARTUP FORCE MOUNT. Execute um novo SHUTDOWN no banco
e então um STARTUP. Você será capaz de conectar novamente.
Se ainda sim você não conseguir conectar, inverta as opções do rman:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;#Forma alternativa
oracle@oracleibm:/dm0/oracle/admin/beta/pfile&amp;gt; export ORACLE_SID=beta
oracle@oracleibm:/dm0/oracle/admin/beta/pfile&amp;gt;rman target sys@producao auxiliary /&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;oracle@oracleibm:/dm0/oracle/admin/beta/pfile&amp;gt; export ORACLE_SID=producao
oracle@oracleibm:/dm0/oracle/admin/beta/pfile&amp;gt; rman TARGET /  AUXILIARY SYS@beta

Recovery Manager: Release 10.2.0.2.0 - Production on Thu Mar 15 09:03:41 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

connected to target database: PRODUCAO (DBID=2991538920)
auxiliary database Password:
connected to auxiliary database: BETA (not mounted)

RMAN&amp;gt;
RUN
{
  # to manually allocate a channel of type sbt issue:
  #ALLOCATE AUXILIARY CHANNEL ch1 DEVICE TYPE sbt;

  # to manually allocate two auxiliary channels for disk issue (specifying whatever channel id that you want):
  ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
  ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;
  DUPLICATE TARGET DATABASE TO beta;
}
.
.
.
contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened
Finished Duplicate Db at 15/03/2007 09:55:47

RMAN&amp;gt; quit&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_task_8_recrie_a_tablespace_temporária_extra&quot;&gt;&lt;a id=&quot;task8&quot;&gt;&lt;/a&gt;Task 8: Recrie a tablespace temporária (extra)&lt;/h3&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;#(versão 9i e acima)
ALTER DATABASE TEMPFILE &apos;/dm0/oracle/admin/beta/data/temp01.dbf&apos; DROP INCLUDING
DATAFILES;
ALTER TABLESPACE TEMP ADD TEMPFILE &apos;/dm0/oracle/admin/beta/data/temp01.dbf&apos;
SIZE 200M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE 2000M;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Outra coisa, como este banco é para teste, devemos desabilitar o modo archive
do mesmo&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;oracle@oracleibm:/dm0/oracle/admin/beta/pfile&amp;gt; export ORACLE_SID=beta
oracle@oracleibm:/dm0/oracle/admin/beta/pfile&amp;gt; sqlplus / as sysdba
SQL&amp;gt; archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/db/10.2.0.1.0/server/dbs/arch
Oldest online log sequence     0
Next log sequence to archive   1
Current log sequence           1

SQL&amp;gt; shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL&amp;gt; startup mount
ORACLE instance started.
Total System Global Area 1811939328 bytes
Fixed Size                  2071896 bytes
Variable Size             419431080 bytes
Database Buffers         1375731712 bytes
Redo Buffers               14704640 bytes
Database mounted.

SQL&amp;gt; alter database noarchivelog;
Database altered.

SQL&amp;gt; alter database open;
Database altered.

SQL&amp;gt; archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /opt/oracle/db/10.2.0.1.0/server/dbs/arch
Oldest online log sequence     0
Current log sequence           1
SQL&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;[NOTE] Não esquecer de coletar estatísticas&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;Shell&quot;&gt;begin
dbms_stats.gather_database_stats(options=&amp;gt; &apos;GATHER AUTO&apos;);
end;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Perdeu o arquivo init.ora e agora? Como recuperar/reiniciar a instância?</title>
      <link>http://blog.gilbertoca.com/2008/06/perdeu-o-arquivo-initora-e-agora-como-recuperarreiniciar-a-instancia.html</link>
      <pubDate>ter., 24 jun. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/06/perdeu-o-arquivo-initora-e-agora-como-recuperarreiniciar-a-instancia.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O que fazer quando nós perdemos o arquivo de inicialização de um banco oracle - instância?
Se você não possuir uma cópia do mesmo, recrie utilizando o arquivo de alerta - alert_&amp;lt;instância&amp;gt;.log.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;console&quot;&gt;SQL&amp;gt; startup

ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file &apos;/database/app/oracle/product/10.1.2/db_home1/dbs/initncscm.ora&apos;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Primeiro, identificamos e extraimos todos os parâmentros spfile no arquivo de alerta.
Copiamos todos para um arquivo temporário.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Copy all parameters&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;console&quot;&gt;$vi /database/app/oracle/diag/rdbms/ncscm/ncscm/trace/alert_ncscm.log&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Create pfile:&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;console&quot;&gt;$cd /database/app/oracle/product/12.1.2/db_home1/dbs

$vi initncscm.ora and paste all parameters&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Startup nomount:&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;console&quot;&gt;SQL&amp;gt; startup nomount

ORACLE instance started.
Total System Global Area 796917760 bytes
Fixed Size   2929448 bytes
Variable Size  511708376 bytes
Database Buffers  276824064 bytes
Redo Buffers   5455872 bytes
SQL&amp;gt; create spfile from pfile;
File created.
SQL&amp;gt; shu immediate

ORA-01507: database not mounted
ORACLE instance shut down.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Startup:&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;console&quot;&gt;SQL&amp;gt; startup

ORACLE instance started.
Total System Global Area 796917760 bytes
Fixed Size   2929448 bytes
Variable Size  511708376 bytes
Database Buffers  276824064 bytes
Redo Buffers   5455872 bytes
Database mounted.
Database opened.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Depois de instalar Linux, Windows nao conecta!</title>
      <link>http://blog.gilbertoca.com/2008/06/depois-de-instalar-linux-windows-nao-conecta.html</link>
      <pubDate>seg., 9 jun. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/06/depois-de-instalar-linux-windows-nao-conecta.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Colocando essa frase no mecanismo de busca - google -, você encontra uma lista enorme de pessoas com o mesmo problema.
Vá entender esses novos hardwares! Para mim o que funcionou está descrito nesse &lt;strong&gt;&lt;a href=&quot;http://www.guiadohardware.net/comunidade/windows-cabo/290438/&quot;&gt;Cabo de rede desconectado (no windows) após instalar Kurumin&lt;/a&gt;&lt;/strong&gt; link.
Qual a solução:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;strong&gt;Você precisa desligar o pc, desligar a fonte, esperar alguns segundos (3), religar a fonte e entrar no windows.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Como obter histórico de dados modificados no banco de dados Oracle?</title>
      <link>http://blog.gilbertoca.com/2008/06/como-obter-historico-de-dados-modificados-no-banco-de-dados-oracle.html</link>
      <pubDate>qua., 4 jun. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/06/como-obter-historico-de-dados-modificados-no-banco-de-dados-oracle.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Na verdade a pergunta original, em inglês, é essa: &lt;a href=&quot;http://searchoracle.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid41_gci1313625,00.html?track=NL-94&amp;#038;ad=643910&amp;amp;asrc=EM_NLT_3776659&amp;amp;uid=2562960&quot;&gt;How can you get the history
of data modified from an Oracle database?&lt;/a&gt; Gosto das dicas desse autor. Essa em questão, nos dá as opções existentes para captura de histórico de modificações no banco de dado:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Depois do fato ocorrido podemos “minerar” nossos logs de arquivamento usando
o utilitário oracle &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/logminer.htm#sthref1875&quot;&gt;Log Miner&lt;/a&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Antes do fato ocorrido podemos &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/auditing.htm#i1011984&quot;&gt;configurar a auditoria&lt;/a&gt; para registrar essas
atividades. Com auditoria, registramos as ações ocorridas em tabelas no banco e
então consultar tal tabela de registros em qualquer época futura.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Oracle Developer Suite 10g - [openSUSE 10.3]</title>
      <link>http://blog.gilbertoca.com/2008/05/oracle-developer-suite-10g-opensuse-103.html</link>
      <pubDate>ter., 6 mai. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/05/oracle-developer-suite-10g-opensuse-103.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O processo de instalação da versão 10.1.2.0.2 do DeveloperSuite10g no openSUSE 10.3 não é certificada.
Mas como temos apenas licença para o servidor, o jeito é enfrentar os possíveis problemas com essa instalação.
A instalação ocorre sem problemas até a fase de lincagem (ai ai, o português! Será que está certo?), nesse processo ocorre problemas para lincar as bibliotecas do reports&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;/usr/lib/libXtst.so.6: undefined reference to « __fprintf_chk@GLIBC_2.3.4
/usr/lib/libXtst.so.6: undefined reference to « __stack_chk_fail@GLIBC_2.4
/usr/lib/libXtst.so.6: undefined reference to « __sprintf_chk@GLIBC_2.3.4&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;(enquanto o Universal Installer lhe apresentar com a tela de erro, vc pode aplicar esse contorno para corrigir).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A única solução encontrada é a apresentada &lt;a href=&quot;http://bytes.com/forum/thread722608.html&quot;&gt;nessa, &lt;/a&gt; discussão.
A idéia é substituir a biblioteca atual por uma versão que funciona, além disso, precisa estar no local apropriado.
O pacote sugerido na versão é difícil de encontra para o openSUSE 10.3, então fiz o seguinte (copiei-as do servidor):&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;mv /usr/lib/libXtst.so.6.1.0 /usr/lib/libXtst_so_6_1_0
mv /usr/lib/libXtst.so.6 /usr/lib/libXtst_so_6
scp oracle@oasibm:/usr/X11R6/lib/libXtst.so.6.1.0 /usr/X11R6/lib/
scp oracle@oasibm:/usr/X11R6/lib/libXtst.so.6.1 /usr/X11R6/lib/
ln -s /usr/X11R6/lib/libXtst.so.6.1 /usr/lib/libXtst.so
ln -s /usr/X11R6/lib/libXtst.so.6.1 /usr/lib/libXtst.so.6
ln -s /usr/X11R6/lib/libXtst.so.6.1 /usr/lib/libXtst.so.6.1.0&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Caso contrário, você não conseguirá executar o reports builder. Veja o problema que aparece caso você não consiga lincar as bibliotecas&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;rep-3300.jpeg&quot; alt=&quot;rep 3300&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>ScribeFire Setup - Roller API</title>
      <link>http://blog.gilbertoca.com/2008/04/scribefire-setup-roller-api.html</link>
      <pubDate>sex., 18 abr. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/04/scribefire-setup-roller-api.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fonte: &lt;a href=&quot;https://blogs.oracle.com/solaris/post/wasting-time-with-blogssuncom-and-scribefire&quot;&gt;Wasting time with blogs.sun.com and ScribeFire&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Habilitar a opção para API clientes no servidor:&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;login em www.jroller.com&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Preferences &amp;#8594; Settings tab&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Marque “Enable Blogger and MetaWeblog APIs for your weblog?”&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Inicie ScribeFire&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Inicie FireFox&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click no pequeno livro laranja no final da barra de status&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Acione Account Wizard&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure ScribeFire&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;blog url: &lt;a href=&quot;http://www.jroller.com/&amp;lt;seu&quot; class=&quot;bare&quot;&gt;http://www.jroller.com/&amp;lt;seu&lt;/a&gt; blogid&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;pressione Manually Configure&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;selecione Custom Blog&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;selecione MetaWeblog API&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Server API URL: &lt;a href=&quot;http://jroller.com/roller-services/xmlrpc&quot; class=&quot;bare&quot;&gt;http://jroller.com/roller-services/xmlrpc&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Forneça username and password&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>FRM-92101</title>
      <link>http://blog.gilbertoca.com/2008/04/frm-92101.html</link>
      <pubDate>sex., 18 abr. 2008 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2008/04/frm-92101.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Você já se deparou com essa categoria (genérica) de erro Oracle? Pois é, esse que me deparei é uma delícia.
Vou me acostumar a chamá-lo de delícia, pois dessa forma, no próximo encontro eu não venha a ter um infarto.
Perdi praticamente dois dias, rastreando, refazendo, desfazendo a configuração de uma instalação do Servidor IAS 10g no Linux.
Veja o sintoma: (Atenção! Esse comportamento pode variar de ambiente para ambiente.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Sessão do Forms não inicia no cliente, mesmo o forms de teste que usamos para testar a configuração de instalação não funciona.
O erro descrito pelo cliente é bem genérico (frm-92101). O cliente envia um print screen da tela com problemas:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;frm-92101.png&quot; alt=&quot;frm 92101&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Agora com mais detalhes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;frm-92102-details.png&quot; alt=&quot;frm 92102 details&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;No servidor, o log não é de muita ajuda:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;oracle@oasibm:/opt/oracle/oas/10.1.2.0.2/server/forms&amp;gt; tail -n 100 -f /opt/oracle/oas/10.1.2.0.2/server/opmn/logs/OC4J~OC4J_BI_Forms~default_island~1
08/02/18 09:27:06 Start process
--------
08/02/18 09:27:12 FormsServlet init():
    configFileName:     /opt/oracle/oas/10.1.2.0.2/server/forms/server/formsweb.cfg
    testMode:           false
08/02/18 09:27:12 Oracle Application Server Containers for J2EE 10g (10.1.2.2.0) initialized
08/02/18 09:40:31 ListenerServlet init()
08/02/18 09:44:07 RunformProcess.connect(): falhou !
08/02/18 09:44:07 Sessão de forms &amp;lt;1&amp;gt; abortada: não é possível a comunicação com o processo de runtime.
08/02/18 09:56:06 RunformProcess.connect(): falhou !
08/02/18 09:56:06 Sessão de forms &amp;lt;2&amp;gt; abortada: não é possível a comunicação com o processo de runtime.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Outro log:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;oracle@oasibm:/opt/oracle/oas/10.1.2.0.2/server/forms/server&amp;gt; tail -n 100 -f /opt/oracle/oas/10.1.2.0.2/server/j2ee/OC4J_BI_Forms/application-deployments/formsapp/OC4J_BI_Forms_default_island_1/application.log
08/02/18 10:18:35 Started
08/02/18 10:18:36 formsweb: jsp: init
08/02/18 10:18:36 formsweb: frmservlet: init
08/02/18 10:18:36 formsweb: FormsServlet init():
    configFileName:     /opt/oracle/oas/10.1.2.0.2/server/forms/server/formsweb.cfg
    testMode:           false
08/02/18 10:18:36 formsweb: Started
08/02/18 10:18:51 formsweb: lservlet: init
08/02/18 10:18:51 formsweb: ListenerServlet init()
08/02/18 10:22:27 formsweb: RunformProcess.connect(): falhou !
08/02/18 10:22:27 formsweb: Sessão de forms &amp;lt;1&amp;gt; abortada: não é possível a comunicação com o processo de runtime.
08/02/18 10:22:27 formsweb: Forms session &amp;lt;1&amp;gt; exception stack trace:
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
        at java.net.Socket.connect(Socket.java:452)
        at java.net.Socket.connect(Socket.java:402)
        at java.net.Socket.&amp;lt;init&amp;gt;(Socket.java:309)
        at java.net.Socket.&amp;lt;init&amp;gt;(Socket.java:153)
        at oracle.forms.servlet.RunformProcess.connect(Unknown Source)
        at oracle.forms.servlet.RunformProcess.dataToRunform(Unknown Source)
        at oracle.forms.servlet.RunformSession.dataToRunform(Unknown Source)
        at oracle.forms.servlet.ListenerServlet.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.2.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:834)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.2.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:340)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.2.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.2.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:228)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.2.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.2.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
        at java.lang.Thread.run(Thread.java:534)

&amp;lt;/init&amp;gt;&amp;lt;/init&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Uma opção para entender melhor o problema é debugar (Opa! Será que existe esse verbo? Será que rastrear ficaria melhor?) a sessão do cliente, ativado da seguinte forma:
&lt;a href=&quot;http://oasibm.secad.to.gov.br:7778/forms/frmservlet?form=test.fmx&amp;amp;config=debug&quot; class=&quot;bare&quot;&gt;http://oasibm.secad.to.gov.br:7778/forms/frmservlet?form=test.fmx&amp;amp;config=debug&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;E ao mesmo tempo monitorar a saída do log:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;tail -n 100 -f /opt/oracle/oas/10.1.2.0.2/server/j2ee/OC4J\_BI\_Forms/application-deployments/formsapp/OC4J\_BI\_Forms\_default\_island_1/application.log&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Mas por incrível que pareça, no meu caso, o log com a opção de debug ativado não mostrou nada que pudesse ajudar na solução do problema.
Mas algo me chamou a atenção:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;08/02/19 15:29:42 FormsServlet init():
    configFileName:     /opt/oracle/oas/10.1.2.0.2/server/forms/server/formsweb.cfg
    testMode:           false
08/02/19 15:29:42 Oracle Application Server Containers for J2EE 10g (10.1.2.2.0) initialized
08/02/19 15:29:46 ListenerServlet init()
08/02/19 15:33:22 RunformProcess.connect(): falhou !
08/02/19 15:33:22 Sessão de forms &amp;lt;1&amp;gt; abortada: não é possível a comunicação com o processo de runtime.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Essa falha na inicialização do Forms runtime. Mas, como mencionei no início, desfiz e refiz a configuração do forms nesse servidor.
Então o que me restava? Verifiquei também com o pessoal de redes e nada. Me avisaram que não houve mudança alguma no servidor.
Bom, a única opção, após fazer uma pesquisa pelo google e principalmente pelo &lt;a href=&quot;https://metalink.oracle.com/&quot;&gt;site de suporte da oracle&lt;/a&gt; foi, fazer o checklist dos requerimentos da instalação do servidor de aplicações oracle.
Para encurtar a história, quando cheguei no tópico &lt;a href=&quot;http://download.oracle.com/docs/cd/B14099_19/lop.1012/install.1012/install/reqs.htm#BABBJDFE&quot;&gt;3.9 The /etc/hosts File&lt;/a&gt;, olhei o arquivo e a primeira vista não notei nada de anormal:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;oracle@oasibm:~&amp;gt; cat /etc/hosts
# special IPv6 addresses
#::1             localhost ipv6-localhost ipv6-loopback

fe00::0         ipv6-localnet

ff00::0         ipv6-mcastprefix
ff02::1         ipv6-allnodes
ff02::2         ipv6-allrouters
ff02::3         ipv6-allhosts

ip segunda placa      oasibm.secad
ip primeira placa     oasibm.secad oasibm&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Olhando assim, ninguém fala nada a respeito. Mas rodando o programa ping, constatei o problema. Qual ip respondia? Para minha alegria, o segundo ip. Por que alegria, você pode perguntar, é que a ordem estava errada. O certo deveria ser assim:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;ip primeira placa     oasibm.secad oasibm
ip segunda placa      oasibm.secad&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Aí, foi só parar todos os serviços do servidor, alterar essa configuração e tudo voltou ao normal, aleluia!&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Removendo alertas antigos da página principal do DBCONSOLE</title>
      <link>http://blog.gilbertoca.com/2007/10/removendo-alertas-antigos-da-pagina-principal-do-dbconsole.html</link>
      <pubDate>seg., 8 out. 2007 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2007/10/removendo-alertas-antigos-da-pagina-principal-do-dbconsole.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Por um bom período de tempo estive lendo e pesquisando uma maneira de
remover/limpar os alertas que aparecem na primeira página do dbconsole do
oracle 10g 10.2.
Finalmente após encontrar uma discussão no forum oracle (&lt;a href=&quot;http://forums.oracle.com/forums/thread.jspa?threadID=389167&amp;#038;tstart=0&quot;&gt;Clear the Alert list&lt;/a&gt;)
sobre o assunto, acabei, através de uma consulta pelo google (desta fez com a
palavra certa: MGMT_SEVERITY), encontrando um artigo (&lt;a href=&quot;http://www.dbasupport.com/oracle/ora10g/clearing_alerts.shtml&quot;&gt;Clearing Alerts in Enterprise Man&lt;/a&gt;)
que relata uma forma simples de fazer a limpeza destes alertas antigos.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Instalando Visualizador de Dicionários WordTrans no openSUSE 10.2</title>
      <link>http://blog.gilbertoca.com/2007/02/instalando-visualizador-de-dicionarios-wordtrans-no-opensuse-102.html</link>
      <pubDate>sex., 16 fev. 2007 00:00:00 -0300</pubDate>
      <guid isPermaLink="false">2007/02/instalando-visualizador-de-dicionarios-wordtrans-no-opensuse-102.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;O &lt;a href=&quot;http://www.escomposlinux.org/rvm/wordtrans/about_en.php&quot;&gt;wordtrans &lt;/a&gt;é uma aplicação gráfica que permite a pesquisa de palavras em vários dicionários.
O mesmo também pode traduzir uma palavra selecionada pelo mouse. Ele tem suporte a três tipos de dicionários:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Dicionários do Tradutor Babylon.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dicionários de Texto Puro.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dicionários servidos pelo Servidor Dict.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Pré-requisitos:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;dictd-1.10.6-21.i586.rpm&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;dicts-1.5-281.i586.rpm&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;wordtrans-1.1pre15-suse.i586.rpm&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;wordtrans-kde-1.1pre15-suse.i586.rpm&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Não esqueça de baixar também os &lt;a href=&quot;http://www.escomposlinux.org/rvm/wordtrans/dictionaries_en.php&quot;&gt;dicionários&lt;/a&gt;!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Instale-os da seguinte forma:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;ti-des05:/home/gilberto/software_usados/tradutor # ll
total 20596
drwxr-xr-x 2 gilberto users     4096 Jun 14  2006 dicionarios
-rw-r--r-- 1 gilberto users   188473 Jun 14  2006 dictd-1.4.9-759.i586.rpm
-rw-r--r-- 1 gilberto users 20083705 Jun 14  2006 dicts-1.5-247.i586.rpm
-rw-r--r-x 1 gilberto users   488334 Jun  2  2006 wordtrans-1.1pre15-suse.i586.rpm
-rw-r--r-x 1 gilberto users   268334 Jun  2  2006 wordtrans-kde-1.1pre15-suse.i586.rpm
-rwxr-xr-x 1 gilberto users     4444 Jun  2  2006 wordtrans_for_suse-2.patch.gz
ti-des05:/home/gilberto/software_usados/tradutor # rpm -Uhv wordtrans-1.1pre15-suse.i586.rpm
Preparing...                ########################################### [100%]
   1:wordtrans              ########################################### [100%]

ti-des05:/home/gilberto/software_usados/tradutor # rpm -Uhv wordtrans-kde-1.1pre15-suse.i586.rpm
Preparing...                ########################################### [100%]
   1:wordtrans-kde          ########################################### [100%]
ti-des05:/home/gilberto/software_usados/tradutor #&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Depois, faça a descompactação dos dicionários em um local:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code&gt;ti-des05:/home/gilberto/software_usados/tradutor # cd dicionarios/
ti-des05:/home/gilberto/software_usados/tradutor/dicionarios # ll
total 37648
-rw-r--r-- 1 gilberto users 8374290 Jun 14  2006 EngtoEng.dic
-rw-r--r-x 1 gilberto users 4035857 Jun  2  2006 EngtoEng.dic.gz
-rw-r--r-- 1 gilberto users 7372222 Jun 14  2006 EngtoPor.dic
-rw-r--r-x 1 gilberto users 3522348 Jun 14  2006 EngtoPor.dic.gz
-rw-r--r-- 1 gilberto users 7752828 Jun 14  2006 EngtoSpa.dic
-rw-r--r-x 1 gilberto users 3750624 Jun  2  2006 EngtoSpa.dic.gz
-rw-r--r-- 1 gilberto users 1405056 Jun 14  2006 dict-world02-20030215.tar.gz
-rw-r--r-- 1 gilberto users     423 Jun 14  2006 dictionary
-rwxr-xr-x 1 gilberto users     283 Jun  2  2006 dictionary.gz
-rwxr-xr-x 1 gilberto users     546 Jun  2  2006 eng-hin.tar.gz
-rwxr-xr-x 1 gilberto users     549 Jun  2  2006 eng-por.tar.gz
-rw-r--r-- 1 gilberto users 1250264 Jun 14  2006 english.dic
-rw-r--r-x 1 gilberto users  480387 Jun  2  2006 english.dic.gz
-rw-r--r-- 1 gilberto users  122742 May  8  2003 por-eng.dict.dz
-rw-r--r-- 1 gilberto users  165280 May  8  2003 por-eng.index
-rwxr-xr-x 1 gilberto users  208269 Jun  2  2006 por-eng.tar.gz
ti-des05:/home/gilberto/software_usados/tradutor/dicionarios #&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bom, agora precisamos adicionar os dicionários que precisamos ao worktrans. Para isso, através do menu Dictionaries, escolha New: Dictionaries&amp;#8594;New &amp;#8230;&amp;#8203;. Aparecerá tela para selecionar o tipo de dicionário. Eu escolhi o tipo babylon. O restante é bem fácil e intuitivo!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;wordtrans.png&quot; alt=&quot;menu Dictionaries&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>

  </channel> 
</rss>
