domingo, 8 de novembro de 2009

Login automático em ssh com o Putty

Não há razão para se estar sempre a escrever usernames e passwords quando se liga a servidores remotos via ssh com o PuTTY.

Eis aqui como fazer:
  1. Ter o PuTTY
  2. Ter o PuTTYgen
  3. Ter o PAgent
Todos estes programas estão acessíveis em: http://www.chiark.greenend.org.uk/~sgtatham/putty

Antes de mais é necessário gerar uma chave pública e uma chave privada:
  1. Lançar o PuTTYgen
  2. Carregar em Generate
  3. Mover o rato na zona cinzenta para introduzir algum ruído para facilitar a aleatoriedade da chave.
  4. Depois de gerada a chave, escrever um comentário que irá identificar a mesma
  5. Introduzir a Palavra-Chave e a respectiva confirmação. É esta chave que permite abrir a chave privada gerada
  6. Guardar as chaves pública e privada no disco
O conteúdo da chave pública deverá ser copiada para cada um dos servidores remotos aos quais pretendemos ligar. A localização no servidor remoto onde colocar a chave pública é em /home//.ssh/authorized_keys2. No caso do utilizador root, colocar em /root/.ssh/authorized_keys2.

Editar o ficheiro authorized_keys2, e adicionar no fim, numa nova linha, o seguinte:
ssh-rsa
O poderá ser o mesmo que o colocado no ponto 4. Auxilia visualmente a identificar a chave. Salvar o ficheiro.

A directoria .ssh deverá apenas ter permissões para o próprio utilizador (rwx).

Para ligar automaticamente via ssh, é necessário colocar o programa PAgent a correr e adicionar a chave privada. Depois disto o programa pede a Palavra-Chave da chave privada. Introduzir a Palavra-Chave indicada no ponto 5. A partir deste momento é só abrir uma nova consola PuTTY, iniciar uma ligação com um servidor remoto que tenha a chave pública criada, e temos o login automático. Sem mais configurações é ainda necessário introduzir o username, mas a password é automaticamente colocada pelo PuTTY.

Tomar em atenção que o PAgent tem de estar a correr para se usufruir desta funcionalidade.

Para completar o automatismo:
  1. Nas ligações do PuTTY, na parte do Host Name, introduzir: @IP, para o processo ser completamente automático
  2. Para carregar automaticamente as chaves no PAgent, passar na linha de comandos o caminho completo para o ficheiro da chave privada (ex: c:\pchave.ppk)

A Palavra-Chave indicada no ponto 5 tem de ser sempre colocada quando o PAgent corre pela primeira vez numa sessão Windows.

Por ser um mecanismo automático tomar em extrema atenção e não deixar o computador sem vigilância (isto é, bloquear a sessão sempre).

quinta-feira, 29 de outubro de 2009

Procurar Representação Unicode

O site seguinte fornece a tradução (para vários formatos e encodings) de caracteres.

http://www.fileformat.info/info/unicode/char/search.htm

Exemplo para o ç:

UTF-8 (binary) 11000011:10100111

sexta-feira, 23 de outubro de 2009

Instalar um jar no repositório maven local

Instalar um jar isolado no repositório maven local

mvn install:install-file -Dfile=CAMINHO_PARA_FICHEIRO\JAR_ISOLADO.jar -DgroupId=IDENTIFICADOR_GRUPO -DartifactId=IDENTIFICADOR_ARTEFACTO -Dversion=VERSAO_ARTEFACTO -Dpackaging=jar -DgeneratePom=true

sábado, 10 de outubro de 2009

Ferramentas para o dia-a-dia

Coloco aqui um conjunto de ferramentas que costumo usar. Algumas são usadas todos os dias intensivamente. Outras têm um uso mais ocasional. Mas todas elas colaboram para a minha produtividade e/ou são úteis de alguma maneira. Estas ferramentas são todas para o sistema operativo Windows (talvez a ferramenta menos produtiva que use...) e todas elas são gratuitas.

Espero que seja útil.
  • Comodo Internet Security – Free Version -> Trabalhando num sistema Windows é essencial ter um anti-vírus e algo que controle o uso do sistema. Estando ligado à internet, é essencial ter uma Firewall. Existem muitos produtos à escolha. Contudo, o Comodo Internet Security é um conjunto de 3 ferramentas (Anti-Virús, Defense e Firewall) tudo integrado e configurável a partir de um só local. Até hoje não tive nenhum problema no sistema derivado a virús, intrusões ou software malicioso.
  • Command Prompt Explorer Bar -> Integra a Linha de Comandos no Explorer. Dá muito jeito quando tem de se trabalhar simultaneamente nos dois ao mesmo tempo. Acessível através de CTRL + M em qualquer explorer.
  • 7-Zip -> Simplesmente o melhor gestor de ficheiros comprimidos. Lê, se não todos, praticamente todos os formatos.
  • Daemon Tools -> Emulador de discos ópticos (montagem de ficheiros iso por exemplo). Permite que se montem imagens de CDs ou DVDs sem se ter de gravar a mesma num disco físico.
  • Winamp -> Tocador multimédia de vários formatos.
  • Restauration -> Recupera ficheiros apagados
  • MalwareBytes -> Porque hoje em dia os anti-vírus não detectam com eficácia o Malware (Cavalos de Troia), é necessário mais software para os detectar. Tendo o COMODO, até hoje o MalwareBytes não detectou nenhum problema. Pode ter sido sorte não ter ocorrido nenhum problema, ou o COMODO é mesmo eficiente.
  • VirtualBox -> Possibilita o uso de máquinas virtuais, ou seja, ter um sistema operativo a correr dentro de outro. Uma das vantagens da virtualização é ter um sistema base virtualizado e a partir dele efectuar, por exemplo, experiências na configuração e verificar se funcionam, ou instalar produtos de demonstração, isto sem alterar o sistema efectivamente instalado directamente sobre o hardware.
  • FileZilla -> Cliente FTP
  • Eudora -> Cliente de E-Mail.
  • ProgramLaunch -> É parecido com a barra de Start do Windows. Permite, de uma forma rápida aceder a programas e lança-los. Tem, contudo, muitas vantagens sobre ela. Permite a criação de grupos, disponível onde se der a indicação, configuração de icons e tamanhos.
  • Winmerge -> Comparação de ficheiros e directorias
  • TaskCoach -> Permite o controlo do tempo gasto durante o dia de trabalho e também o planeamento de trabalho. Ferramenta muito simples de usar e que permite, para quem tenha de preencher controlo de horas semanais ou mensais, saber o que andou a fazer durante o dia,.
  • e-sword -> Ferramenta bastante boa para quem goste da leitura e estudo da bíblia, ou meros curiosos que queiram ter a bíblia disponível electronicamente no seu computador
  • OpenOffice -> Por muito que queiram ainda não substitui completamente o Office da Microsoft. Ainda tem muitos problema principalmente ao nível de tabelas e bullets. Contudo para edição não muito formatada iguala o produto da Micro$oft.
  • KeyPass -> Ferramenta para gestão de passwords, e como mantê-las a salvo (em vez de termos num ficheiro de texto ou em papel...)
  • Cygwin -> Linha de comandos do Unix no Windows e muito mais
  • AgentRansak -> Muito melhor que a procura do Windows, e caso não se queira ter indexadores, embora a pesquisa seja mais lenta, este é o programa ideal.
  • Desktop i-Calendar Lite -> Calendário com A-Fazer e Eventos. Tem alguns problemas mas é simples e eficiente. Ainda não encontrei um substituto melhor
  • Google Desktop -> Resisti muito tempo a este produto. Contudo, depois de instalado torna as pesquisas no Google mais eficientes, pois também procura no computador local. Permite também fazer pesquisas directas no computador pressionando 2x CTRL
  • ccleaner -> Porque no Windows o sistema está cheio de lixo, é necessário limpadores
  • Notepad++ -> Porque um editor de texto decente nos torna significativamente mais produtivos
  • SmartCVS -> Cliente CVS
  • SmartSVN -> Cliente SVN
  • DbVisualizer -> Embora o TOAD seja a anos luz melhor que este programa, este tem a vantagem de ser gratuito (além de ser feito em Java). Para a gestão simples de base de dados serve perfeitamente.
  • lasfm scrobbler -> Bem, interessante para quem tem uma conta no LastFm e quer manter o rasto do que andou a ouvir
  • putty -> A ferramenta para ligar a máquinas remotas UNIX, e trabalhar remotamente nas mesmas
  • tda -> Ferramenta que permite analisar Thread Dumps.
  • jEdit -> Mais um editor de texto com muitos plugins
  • Vim -> Mais concretamente o gVim, permite ter o Vim no Windows com componente gráfica.
  • jMeter -> realizar testes de carga em interfaces Web.
  • Sysinternals Suite -> Conjunto de ferramentas (principalmente administrativas) para o Windows
  • Apache Directory Studio -> Cliente de LDAP
  • paint .net -> Editor de imagens
  • GOM player -> Para visualizar vídeo
  • Fiddler2 -> Captura no browser de todo o tráfego a partir de uma página, para efeitos de debug
  • Bad Boy -> Permite realizar testes de carga em interfaces Web. A vantagem sobre o JMeter é apenas na captura HTTPS
  • Firefox -> O Browser
  • Wireshark -> Captura de pacotes na rede para despiste de problemas em ligações e na própria rede
  • gsView -> Visualização de Postscript, além de ter mais funcionalidades para transformação entre formatos.
  • Foxit Reader -> Leitor de PDFs. Muito mais leve e rápido que o da Acrobat
  • Eclipse -> IDE
  • CDex -> Conversor de música de CD para MP3s (por exemplo)
  • ImgBurn -> Ler/Gravar imagens para CD/DVD

Plugins Firefox
  • Web Developer -> Permite activar e desactivar diversas configurações que afectam uma página web entre outras coisas. Indispensável para programadores Web
  • Morning Coffee -> Carrega automaticamente, e conforme o dia da semana páginas quando se abre o Firefox.
  • FoxyProxy -> Indispensável para quem está constantemente a trocar a rede onde trabalha
  • Download Statusbar -> Substitui a gestão de downloads do firefox, sendo mais fácil geri-los
  • Corrector para Português Europeu -> Dicionário PT para não metermos muitas argoladas quando escrevemos...

sexta-feira, 28 de agosto de 2009

Ligar o JDeveloper com o Weblogic Server 9.2

Ao se configurar o JDev com o Weblogic Server 9.2 (não sei se noutras versões ocorre o mesmo), pode suceder o erro

Cannot instantiate class: weblogic.jndi.WLInitialContextFactory

Neste caso existe um truque muito simples que é copiar o weblogic.jar (situado em /weblogic92/server/lib)para a directoria

/jdev/lib/ext

reiniciar o JDev, e eis que todos os problemas se resolvem...

até que o próximo ocorra. :-)

terça-feira, 18 de agosto de 2009

Adicionar rotas permanentes ao Red Hat Linux

Em /etc/sysconfig/network-scripts

editar ou criar o ficheiro route-X onde é a interface onde se vai adicionar a rota e X é o número da interface.

Para se saber as rotas correntes: route

No ficheiro route-X, adicionar:

GATEWAYZ=xxx.xxx.xxx.xxx
NETMASKZ=yyy.yyy.yyy
ADDRESSZ=sss.sss.sss.sss

Onde Z é o número da entrada no ficheiro (começar com 0 por exemplo).

Na netmask pode-se usar 255.255.255.255 se o endereço for mesmo um ip de uma máquina.

Salvar o ficheiro, e no fim escrever:

service network restart

Verificar o resultado com:

ip route show

sexta-feira, 31 de julho de 2009

Removendo todos objectos de um utilizador na BD Oracle

Eis uma maneira mais ou menos rápida de apagar todos os objectos de um utilizador numa base de dados Oracle.

Provavelmente existe uma maneira melhor de fazer isto, mas esta também funciona.

Primeiro corre-se o statement:

select 'drop '||object_type||' '|| object_name|| DECODE(OBJECT_TYPE,'TABLE',' CASCADE CONSTRAINTS;',';')
from user_objects


Depois é só correr o resultado e pronto.

quinta-feira, 23 de julho de 2009

iBatis

Longe de ser um substituto directo do Hibernate, o iBatis prima pela simplicidade.

Enquanto o Hibernate é um novo paradigma, sendo necessário aprender, pelo menos, alguma da funcionalidade para não cometer erros , e onde o SQL é praticamente ausente, o iBatis é extremamente simples de usar, e não implica uma mudança de paradigma tão grande. O choque entre usar iBatis e Hibernate é consideravelmente menor no iBatis.

O iBatis simplifica a vida principalmente na passagem de valores entre um ResultSet e uma classe java. Esqueçam os ciclos e a criação de objectos para passar de um objecto para outro. O iBatis trata disso automaticamente. De resto, escreve-se SQL normal, excepto nas partes onde é necessário passar valores para a query (usa-se #valor#) e de resto pouco mais. As queries podem ficar todas agrupadas num XML. O iBatis, do meu ponto de vista, é bastante bom em projectos pequenos onde não se precisa do 'canhão' Hibernate. Consegue-se muito boa performance, consegue-se controlar muito bem o SQL que é usado (pois escreve-se SQL) e, sobretudo, é tão simples de usar e configurar.

Introdução de novas (velhas) tecnologias...

http://www.youtube.com/watch?v=xFAWR6hzZek (em Inglês)

Greg o Arquitecto

http://www.youtube.com/watch?v=uOQcjvUHZ0k (em Inglês)

sexta-feira, 17 de julho de 2009

Recuperando ficheiros apagados no Eclipse

Eis aqui algo que dá sempre jeito saber: Como recuperar ficheiros apagados no eclipse.

Como sabem, se apagarem um ficheiro no eclipse ele não irá parar à Reciclagem. Se se aperceberem de imediato do erro, podem fazer "Undo Delete" (CTRL + Z), caso contrário existe uma solução.

Sobre o projecto (ou em qualquer package da src) no qual querem recuperar o ficheiro, cliquem com o botão da direita e escolham "Restore from Local History....". Daqui aparece uma janela, na qual, do lado esquerdo estão os ficheiros apagados. É só seleccionar os ficheiros a recuperar e clicar no botão "Restore".

E pronto, ficheiro recuperado

quinta-feira, 16 de julho de 2009

Ignorando um certificado SSL no LDAP

Foi necessário efectuar uns testes numa ligação a um LDAP a partir de uma classe java. Esta ligação tinha de ser feita por SSL. Daquilo que percebi dos tutoriais da SUN (http://java.sun.com/products/jndi/tutorial/ldap/index.html), o cliente java tinha de ter (importar) o certificado do servidor LDAP. Mas existia um problema. Não controlávamos o servidor LDAP, e até era possível obter o certificado SSL do servidor mas iria demorar pelo menos umas duas semanas até o termos. Não era tempo de esperar. Depois de alguma pesquisa, encontrei esta página com a solução. Usem e abusem :-D

http://blog.platinumsolutions.com/node/79

Basicamente, é criado um TrustManager que trata de aceitar todos os certificados sem os validar. A partir daí é possível testar a ligação sem ter o certificado do servidor instalado no cliente.

Atalhando no Eclipse

Para todos os que usam o Eclipse, aqui está uma maneira engraçada de começarem a ser mais produtivos. Um plugin que permite, à medida que vão usando o eclipse, interiorizar os atalhos de teclado para chegarem às funcionalidades que estão a usar, e ás quais, chegaram com o rato.

Ou seja, sempre que usarem o rato para invocar uma determinada funcionalidade (refactoring por exemplo), o plugin alerta-vos com uma tip qual o atalho a usar (no caso do refactoring ALT + SHIFT + M).

É engraçado de usar, e, parecendo que não, se não tirarem as mãos do teclado, irão ser muito mais produtivos. A interiorização dos atalhos é feito naturalmente, em vez de se andar a decorar listas de comandos que depois se esquece rapidamente.

Actualizem via install manager com o URL: http://update.mousefeed.com

Bons atalhos! :-D

quarta-feira, 15 de julho de 2009

Instalar o JDK em Linux

Oh! Complicações das complicações. Fazer a actualização da versão do java em linux (no meu caso Red Hat).

Sigam os passos descritos na página seguinte (em inglês):

http://stoken-tips-and-tricks.blogspot.com/2007/10/howto-installupgrade-sun-java-under.html

Segui o que lá está escrito, e à excepção de um directório que mudou, está bem preciso. De resto foi um instante actualizar a versão. Mas podia ser bem mais simples...

quarta-feira, 8 de julho de 2009

Leitura para Férias

Recomendo vivamente a leitura do livro

The Productive Programmer - Neal Ford - O'Reilly

da série /Theory/In/Practice.

ISBN: 978-0-596-51978-0

O livro fala de produtividade no trabalho. Está claramente vocacionado para a produtividade do trabalhador informático. Ao longo do livro lêem-se muitas das coisas que até sabemos mas não colocamos em prática. Fala também do muito software que está disponível para sermos mais produtivos.

É um livro para ler e recordar as lições aprendidas.


sexta-feira, 17 de abril de 2009

Unix - Consola Gráfica no Windows

Por vezes é necessário ter uma consola gráfica no Windows para uma dada consola de linha de comandos em Unix.

Eis como a ter:
  1. Instalar o cygwin (http://www.cygwin.com/)
  2. Na consola do cygwin escrever: /usr/bin/startxwin.sh
  3. Na janela que aparecer escrever: xhost +
  4. Na consola do sistema onde se está a trabalhar (consola de linha de comandos em Unix), escrever: export DISPLAY=:0

quinta-feira, 19 de março de 2009

iBatis e Conjuntion OR

O uso da conjunction OR obriga a que se coloque um espaço antes da condição. Caso contrário o iBatis transforma tudo numa string sem espaços e dá um SQL inválido.

Exemplo:

<iterate conjunction="OR" property="params"><![CDATA[ ]]>param_1=#params[]# </iterate>

Sem o <![CDATA[ ]]> o SQL estaria todo pegado (sem espaços) e daria SQL inválido na Base de Dados

iBatis e uma Query com IN

Depois de andar às cabeçadas aqui vai a solução para como realizar uma query com IN no iBatis.

A classe ClasseParametros contém:
  • params_2 -> java.util.ListList
  • param_1 -> String

<update id="updateXpto"
parameterClass="ClasseParametros">
UPDATE tabela_xpto
SET param_1 = #param_1#
WHERE param_2 IN(
<iterate conjunction="," property="params_2">#params_2[]#</iterate>
)
</update>

segunda-feira, 12 de janeiro de 2009

Alternativa à Amazon

Eis aqui uma alternativa à Amazon.

http://www.bookdepository.co.uk

Tem portes grátis para vários países do mundo, inclusive Portugal :-D
Além disso os preços são geralmente mais baixos do que na Amazon.