JDBC ResultSet retornado por procedimento Oracle

Dica de JDBC com Oracle (contribuição de Renato A. M.):

O artigo “Returning a JDBC result set from an Oracle stored procedure” (em inglês), mini-tutorial da empresa Enterprise Distributed Technologies, ensina os passos para se acessar um cursor (conjunto de registros) retornado por um procedimento armazenado (stored procedure) executado em Oracle PL/SQL.

Para saber mais:

Mouse multi-botões no Linux

Utilizo Linux com a ótima distribuição Ubuntu 6.06 LTS. Totalmente livre e baseada na distribuição Debian, o Ubuntu oferece:

  • fácil instalação com grande compatibilidade com computadores desktop e notebooks e todo tipo de dispositivos;
  • enorme disponibilidade de pacotes livres (estilo Debian) prontos para download e instalação (fácil através do gerenciador de pacotes Synaptic);
  • vasta documentação, inclusive com boa disponibilidade de interface e material em Português do Brasil;
  • e, principalmente, um bom suporte, livre e gratuito oferecido pela grande comunidade de usuários, ou com opção de suporte comercial profissional para quem precisar.

A instalação do Ubuntu 6.06 reconheceu automaticamente todos os dispositivos de hardware do meu computador. Alguns pequenos detalhes ficaram mais práticos depois de alguma configuração manual. Um deles foi acrescentar a montagem automática da partição Windows NTFS em minha instalação com boot dual, que falarei em outra oportunidade.

Logitech MX700 Outra melhoria foi na configuração de um mouse multi-botões. Utilizo o mouse Logitech MX700, que possui scroll e diversos botões extras, incluindo dois laterais para voltar e avançar páginas na web. O scroll e os botões adicionais (além do direito e esquerdo básicos) não ficaram operacionais na instalação padrão do Ubuntu.

Infelizmente, o suporte da Logitech não oferece ajuda para sistemas operacionais não Windows, mas uma pesquisa na Internet me trouxe informações com as quais consegui avanços.

O mouse Logitech MX700 tem interface USB e foi mapeado como o dispositivo /dev/input/mice. Por curiosidade, uma consulta ao comando:

$ cat /proc/bus/input/devices

listou o teclado, o microfone e o mouse. As configurações listadas para o mouse foram:

I: Bus=0011 Vendor=0002 Product=0002 Version=003d
N: Name="PS2++ Logitech MX Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse0 event2 ts0
B: EV=7
B: KEY=ff0000 0 0 0 0 0 0 0 0
B: REL=103

Editei então (em sudo como root) o arquivo /etc/X11/xorg.conf. Localizei a seção “InputDevice” que configura o mouse e incluí um mapeamento de botões e outras sugestões que colhi no artigo Tip: Logitech MX700-900 Mouse with Linux and Firefox. Se for mexer em seu arquivo de configurações, é recomendável fazer uma cópia da versão atual antes:

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
$ sudo gedit /etc/X11/xorg.conf

A seção alterada ficou assim:

# Options Buttons e ButtonMapping para mouse Logitech MX700
Section "InputDevice"
	Identifier	"Logitech MX700" # era "Configured Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/input/mice"
	Option		"Protocol"		"ExplorerPS/2"
	Option		"ZAxisMapping"		"4 5"
	Option		"Emulate3Buttons"	"false" # era "true"
	Option		"Buttons"		"7"
	Option		"ButtonMapping"		"1 2 3 6 7"
	Option		"Dev Name"		"PS2++ Logitech MX Mouse"
	Option		"Dev Phys"		"isa0060/serio1/input0"
	Option		"Resolution"		"800"
EndSection

Defini o mouse como 7 botões, apesar de identificar nele 10 botões/funções: 2 básicos (direito, esquerdo), 2 laterais (avançar, voltar), scroll com 3 funções (subir, descer, pressionar), botão subir acima do scroll, botão descer abaixo do scroll, e o botão de alternar aplicativos (abaixo do de descer). Coloquei o mapeamento com a ordem “1 2 3 6 7” e desativei a emulação de 3 botões. Ainda adicionei, mesmo sem ver nenhuma utilidade prática imediata, as opções “Dev Name”, “Dev Phys” e “Resolution”.

Outra configuração que alterei apenas por capricho foi o “Identifier”, que a instalação do Ubuntu define como “Configured Mouse”. Coloquei um nome mais preciso, “Logitech MX700”. Porém, por alterar esta identificação, tive que alterar também o nome correspondente na seção “ServerLayout”:

Section "ServerLayout"
	...
	InputDevice	"Logitech MX700" # era "Configured Mouse"
EndSection

Salvei o arquivo e reiniciei o Linux, para ativar as novas configurações.

Os resultados práticos que obtive foram: a roda de scroll passou a rolar o conteúdo das janelas para cima e para baixo ao girá-la; testando no navegador web Mozilla Firefox, os botões laterais de avançar e voltar também funcionaram; o botão de descer (abaixo do scroll) também passou a rolar conteúdo para baixo.

Se a configuração funcionar sem problema, é recomendável que você atualize a validação MD5 para o arquivo xorg.conf, de forma que caso um gerenciador de pacotes — por exemplo, durante a instalação de um driver de dispositivo gráfico — valide este arquivo de configuração, o considere íntegro:

$ cd /var/lib/x11/
$ sudo cp -p xorg.conf.md5sum xorg.conf.md5sum.backup
$ md5sum /etc/X11/xorg.conf | sudo tee /var/lib/x11/xorg.conf.md5sum

O que ainda não ficou funcional foi o seguite: o botão de subir (acima do scroll) ficou com o mesmo efeito de “voltar” no navegador; e a função de pressionar a roda scroll (que no Windows ativa a rolagem avançada), bem como o botão de alternar aplicação, ainda ficaram inativos.

Vi também artigos que sugerem o uso de um outro driver de mouse, chamado “evdev”, baseado em eventos. Em uma tentativa que fiz de utilizá-lo no arquivo xorg.conf, o mouse ficou totalmente inoperante, então voltei à opção que estava funcionando. Também não cheguei a utilizar o comando xmodmap.

Atualização: No Ubuntu 8,04 LTS, foi necessário utilizar o driver evdev para que os botões laterais de “voltar” e “avançar” do mouse funcionassem. Veja as configurações que utilizei no artigo Mouse multi-botões no Ubuntu 8.04.

Se alguém souber configurações melhores, agradeço a informação.

Outras referências:

Programas de fraude – nova rodada

Inicio hoje uma nova rodada de acompanhamento da evolução de detecção de programas de fraude no serviço VirusTotal.com. Desta vez, acompanho 5 artefatos maliciosos (malware) apontados por mensagens de fraude recebidas recentemente por e-mail.

Resultado das primeiras análises hoje:

  • [1] AntiVir – TR/Spy.Banker.BSU.12 / não / não / não / não
  • [2*] Authentium – não / não / could be infected with an unknown virus / W32/Banker.WCI / não
  • [0] Avast – não / não / não / não / não
  • [2] AVG – PSW.Banker2.OKF / não / não / PSW.Banker2.NVW / não
  • [5*] BitDefender – Trojan.Spy.Banker.BSU / BehavesLike:Trojan.Downloader / Trojan.Downloader.Delf.ZH / Generic.Banker.VB.ACE368E3 / BehavesLike:Trojan.Downloader
  • [4*] CAT-QuickHeal – (Suspicious) – DNAScan / (Suspicious) – DNAScan / (Suspicious) – DNAScan / não / (Suspicious) – DNAScan
  • [0] ClamAV – não / não / não / não / não
  • [1] DrWeb – BACKDOOR.Trojan / não / não / não / não
  • [0] eTrust-InoculateIT – não / não / não / não / não
  • [0] eTrust-Vet – não / não / não / não / não
  • [3] Ewido – não / Not-A-Virus.Exploit.Win32.DComII.a / não / Logger.Bancos.xc / Not-A-Virus.Exploit.Win32.DComII.a
  • [2] Fortinet – Spy/Banker!08463 / não / não / Spy/Bancos / não
  • [2*] F-Prot – não / não / could be infected with an unknown virus / security risk named W32/Banker.WCI / não
  • [1] F-Prot4 – não / não / não / W32/Banker.WCI / não
  • [1] Ikarus – não / não / não / Backdoor.Win32.Radmin.w / não
  • [4] Kaspersky – Trojan-Spy.Win32.Banker.bsu / Trojan-Downloader.Win32.Small.dli / não / Trojan-Spy.Win32.Bancos.xc / Trojan-Downloader.Win32.Small.dli
  • [1] McAfee – PWS-Banker.gen.b / não / não / não / não
  • [1] Microsoft – TrojanSpy:Win32/Banker!F2E6 / não / não / não / não
  • [4] NOD32v2 – a variant of Win32/Spy.Banker.ANV / Win32/TrojanDownloader.VB.NGD / Win32/TrojanDownloader.Banload.NIB / probably a variant of Win32/Spy.Bancos.U / Win32/TrojanDownloader.VB.NGQ
  • [1] Norman – não / não / W32/Downloader / não / não
  • [4*] Panda – Trj/Banker.EKM / Suspicious file / Suspicious file / não / Suspicious file
  • [0] Sophos – não / não / não / não / não
  • [0] Symantec – não / não / não / não / não
  • [1] TheHacker – não / não / não / Trojan/Spy.KeyLogger.bp / não
  • [0] UNA – não / não / não / não / não
  • [4*] VBA32 – suspected of Trojan-Spy.Banker.140 / suspected of Trojan-Dropper.Delf.34 (paranoid heuristics) / não / Trojan-Spy.Win32.Bancos.xc / suspected of Trojan-Dropper.Delf.34 (paranoid heuristics)
  • [0] VirusBuster – não / não / não / não / não

Resumo: apenas 1 detectou as cinco ameaças (BitDefender), 5 detectaram quatro ameaças (CAT-QuickHeal, Kaspersky, NOD32v2, Panda e VBA32), 1 detectou três, 4 detectaram duas, 8 detectaram só uma e 8 não detectaram nenhuma das cinco ameaças.

Para ver a rodada anterior de 17 dias acompanhando a detecção de três programas malware, veja Antivírus contra programas de fraude no Brasil (2006-08-07) a Antivírus contra programas de fraude no Brasil (4) (2006-08-24).

Fraude do dia: "TSE"

Em época eleitoral retorna a circulação de mensagens com uma “tradicional” fraude: “seu título eleitoral foi cancelado”. E você é induzido a clicar no link para saber mais informações… sobre como instalar ingenuamente um programa espião de fraude bancária, certamente.

[photopress:scam_tse3.png,full,centered]

A boa notícia foi quando experimentei acessar o endereço web apontado pela fraude (www.tribunaleleitoral.pisem.net). A tentativa de abrir a página em meu Mozilla Firefox, que tem a Barra de ferramentas do Google instalada, colocou em ação o recurso de Navegação Segura do Google, que emitiu instantaneamente o aviso de fraude. Veja o alerta exibido:

[photopress:scam_tse3_web.png,full,centered]

Este recurso muito útil não está disponível na Barra do Google para Internet Explorer. Baixe agora o Firefox com Google Toolbar, incluindo o recurso de Navegação Segura e muito mais.

Fundeb

A proposta de emenda constitucional (PEC) que cria o Fundeb (Fundo de Manutenção e Desenvolvimento da Educação Básica e Valorização dos Profissionais da Educação) representa uma oportunidade clara e viável de avanço nos mecanismos de financiamento da educação básica, especialmente na redução das desigualdades regionais e melhoria da qualidade dos sistemas públicos de ensino.

O Fundeb, que já foi aprovado no Senado e voltou à Câmara no dia 5 de julho, teve rápida aprovação na CCJ (Comissão de Constituição, Justiça e Cidadania) da Casa, desde então aguarda parecer de Comissão Especial para voltar ao plenário da Câmara, em dois turnos. Além de representar um avanço, a aprovação do Fundeb é urgente, devido à expiração da vigência da lei do Fundef.

Sendo a educação uma prioridade de consenso nacional e mundial, e o mais sólido caminho para a melhoria das condições sociais e produtivas do país, é triste ver uma inaciativa assim demorar nas mãos de nossos políticos.

Leia o boletim PEC do Fundeb: Morosidade em Meio à Urgência e acompanhe esta e outras iniciativas no portal da ONG Campanha Nacional pelo Direito à Educação.

Para saber mais:

Fraude do dia: "Boletim OAB"

O que bingamanga.com tem a ver com a Ordem dos Advogados do Brasil? Em comum, só a hospedagem do programa roubador de senhas Trojan-Downloader.Win32.VB.ji em uma fraude se passando por um boletim eletrônico da OAB.

Veja a imagem reproduzindo a janela com o e-mail de fraude:

[photopress:scam_oab.png,full,centered]

Para saber mais:

Eleições

Em época de eleições no Brasil — principalmente essa em que elegemos de uma vez presidente, governador, senador e deputados — é oportuno falar um pouco de política, mesmo em um blog focado em tecnologia como este.

Gostaria de parabenizar a Justiça Eleitoral (TSE) pela campanha Vota Brasil 2006, que tem como slogans “O Brasil é tão bom quanto o seu voto” e “Pense e Vote – O Brasil está em suas mãos”. Pela primeira vez, vejo uma campanha de conscientização clara, direta e objetiva, que espero realmente educar um pouco mais o eleitor brasileiro. Os spots de TV e rádio do TSE trazem mensagens essenciais, como:

Dia 1º de outubro o Brasil vai contratar 1.627 servidores públicos. (…) deputados, 27 senadores, 27 governadores, um presidente da república. E quem contrata é você! Você [eleitor] é o patrão.

Preste atenção em tudo que os candidatos fazem e dizem.

Se você não lembrar em quem votou, como vai poder cobrar depois?

O lado triste que vejo é que o Brasil não é exatamente tão bom quanto o nosso voto. Antes de tudo, ele é tão bom quanto os candidatos que se apresentam como opções para esse voto!

E aos eleitores internautas do Brasil, recomendo pelo menos estes links:

  • Ranking dos Políticos: ranking dos políticos brasileiros, baseado em uma pontuação objetiva a partir de critérios como Presença nas sessões, Privilégios, Participação Pública, Processos judiciais, Qualidade Legislativa. Veja também o ótimo vídeo “Como consertar o Brasil?” (simples, direto e muito didático), o livro “Carregando o Elefante – Como livrar-se do peso que impede os brasileiros de decolar” (PDF/eBook que pode ser baixado gratuitamente) e outros recursos disponíveis no portal. Uma iniciativa independente dos administradores Alexandre Ostrowiecki e Renato Feder.
  • Excelências – Perfis de candidatos à Câmara dos Deputados em 2006: ótimo trabalho de levantamento realizado pela ONG Transparência Brasil, que lista uma ficha de cada candidato a deputado, incluindo principais menções na imprensa ligando o candidato a casos de corrupção e processos em que o candidato é indiciado como réu. Para você não votar desavisado em nenhum mensaleiro ou sanguessuga!
  • Políticos do Brasil: resultado da pesquisa feita durante cinco anos pelo jornalista Fernando Rodrigues e também publicado em livro, reúne um balanço de bens de políticos brasileiros, com base no que os candidatos declararam à Justiça Eleitoral, nas eleições de de 1998, 2000 e 2006.

Cubo mágico

[Atualizado em 2008-04-19.]

Lembra do Cubo Mágico? É um quebra-cabeça tridimensional consistindo em um cubo colorido multi-facetado em 3 fileiras e 3 colunas, todas giratórias, cujo objetivo é embaralhar os cubinhos e depois montar de forma que cada uma das 6 faces fique com seu 9 quadradinhos na mesma cor.

O Cubo Mágico, ou Cubo de Rubik, foi inventado em 1974 pelo escultor e professor de arquitetura húngaro Ernö Rubik. Foi um passatempo bastante popular nos anos 80. Atualmente, tem até versões eletrônicas do cubo para brincar on-line: no site oficial Rubik’s.

Eu tinha um comigo há anos com as cores todas embaralhadas. Tentei solucionar algumas vezes, mas nunca consegui montar mais do que uma face completa. Hoje encontrei o cubo abandonado e resolvi apelar para a maior enciclopédia de todas, a Internet (e o Google!), e não é que com a Solução do Cubo Mágico, por Max Artur (cubomagico.sytes.net; endereços alternativos: www.maxartur2.890m.com, cubomagico.k6.com.br, www30.websamba.com/maxartur), fui seguindo os passos e em menos de uma hora lá estava o meu cubo “resolvido”?

Compreender cada passo e identificar no cubo suas iterações necessárias é o que toma mais tempo, mas uma vez encaminhado, é só seguir os movimentos propostos sem errar. A lógica dos passos da solução proposta é bem clara.

Recomendo também o site Cubo Mágico, do campeão brasileiro Pedro Santos (dica de Renato), rico em métodos e algoritmos com ilustrações animadas (applet), do básico ao avançado.

Posso não ter entendido ainda toda a fabulosa engenhosidade dos movimentos nem saber se existem outras soluções mais diretas, mas… o que importa? A satisfação de ver o cubo solucionado foi boa mesmo assim!

[photopress:cubo_magico1.jpg,full,centered]
[photopress:cubo_magico2.jpg,full,centered]

Existem muitas variantes possíveis de técnicas. Por exemplo, o método básico apresentado por Pedro Santos difere um pouco do de Max Artur. Ambos começam por uma cruz, mas em seguida a proposta de Max Artur é formar T’s laterais completando a camada mediana, enquanto no método de Santos cada T é formado completando a camada mais próxima à face da cruz inicial. Não importa qual técnica você assimile melhor ou prefira, todas levam ao mesmo resultado final.

Enquanto eu fico feliz em montar o Cubo de Rubik, olhe em que ponto estão os mais fanáticos, nestes vídeos do YouTube:

Veja também em um câmera mais próxima: YouTube – Rubik’s Cube Former World Record.

Para saber mais:

Processo judicial eletrônico no Brasil

Após 3 anos e meio tramitando na Comissão de Constituição, Justiça e Cidadania (CCJ) do Senado Federal e mais 6 meses na Comissão equivalente (CCJC) da Câmara dos Deputados, está pronto para ser apreciado em plenário na Câmara o Projeto de Lei 5.828/2001, que dispõe sobre a informatização do processo judicial e dá outras providências.

Na CCJ do Senado, o Projeto de Lei sofreu uma emenda na forma de um Substitutivo, tendo como relatora a Sena. Serys Slhessarenko (PT-MT). O Substitutivo foi aprovado em plenário aos 07/12/2005. De volta à Câmara dos Deputados, o Substitutivo foi submetido à CCJC e sofreu apenas 6 emendas de redação visando maior clareza e rigor de técnica legislativa, em parecer do relator Dep. José Eduardo Cardozo (PT-SP), de 29/06/2006.

Este importante projeto rege o uso de meio eletrônico na tramitação de processos judiciais, comunicação de atos e transmissão de peças processuais. Trata de tópicos como o uso de documentos eletrônicos com assinatura digital no judiciário e uso de Diário da Justiça via portal web para publicações eletrônicas oficiais. Esta lei pode alavancar a Justiça brasileira rumo à era digital do novo milênio, a um nível de agilidade e modernidade sem precedentes.

O judiciário, advogados e toda a sociedade usuária da justiça aguardam ansiosos as definições legais e avanços das discussões e concretizações práticas das medidas para instituir procedimentos judiciais em meio eletrônico.

Até então, a Lei 9.800/1999 — conhecida como “Lei do Fax nos Tribunais” — apenas permitia, às partes e juízes, a utilização de sistema de transmissão de dados e imagens tipo fac-símile ou outro similar, porém exigindo posterior apresentação dos originais (em papel). Conforme artigo do prof. Osmar Brina Corrêa-Lima, em “outro similar” se enquadram também meios eletrônicos via Internet, como o correio eletrônico (e-mail). O fato, contudo, é que os meios eletrônicos eram aceitos apenas como uma facilidade adicional na comunicação de atos processuais, não no uso oficial destes com valor legal e jurídico em substituição ao papel.

Em junho de 2001, era adotada a primeira versão da Medida Provisória nº 2.200, que instituiu a Infra-Estrutura de Chaves Públicas Brasileira — ICP Brasil — como instrumento fundamental de tecnologia, administração e legislação para garantir a autenticidade, a integridade e a validade jurídica de documentos em forma eletrônica. Em 24 de agosto de 2001, foi publicada a segunda revisão que está válida até hoje, a MP 2.200-2, marco que alavancou o uso oficial de documentos eletrônicos no Brasil com validade jurídica.

Na mesma época, a Lei 10.259, de 12 de julho de 2001, que instituiu os Juizados Especiais Federais incluira um pequeno avanço sobre considerar a utilização de meios eletrônicos:

Art. 8º § 2º Os tribunais poderão organizar serviço de intimação das partes e de recepção de petições por meio eletrônico.

Art. 14 § 3º A reunião de juízes domiciliados em cidades diversas será feita pela via eletrônica.

O Art. 2º da Lei nº 11.280/2006, de 16 de fevereiro de 2006, preparou o Código de Processo Civil para o processo eletrônico, definindo o seguinte:

O art. 154 da Lei nº 5.869, de 11 de janeiro de 1973, Código de Processo Civil, passa a vigorar com a seguinte redação:

“Art. 154. …………………………………………………………

Parágrafo único. Os tribunais, no âmbito da respectiva jurisdição, poderão disciplinar a prática e a comunicação oficial dos atos processuais por meios eletrônicos, atendidos os requisitos de autenticidade, integridade, validade jurídica e interoperabilidade da Infra-Estrutura de Chaves Públicas Brasileira – ICP – Brasil.” (NR)

Se você está se informando sobre o assunto, por favor desde já preste atenção a um fato importante: Algumas pessoas vem se referindo ao processo eletrônico indevidamente como “processo virtual”. Mesmo com o uso de meios eletrônicos no processo judicial, ele continua sendo real e concreto. Nunca virtual! Essa era uma preocupação que me incomodava de longa data e felizmente vi que ela faz sentido ao ler o artigo de 27 de dezembro de 2006, do prof. José Carlos de Araújo Almeida Filho, Um erro grave: denominação do “Processo Virtual”.

Para saber mais, eis a seguir uma série de referências relacionadas: