quarta-feira, 28 de setembro de 2011

Criar um tunel para uma ligação VMWare Client (vSphere)

Com o putty, numa ligação com acesso à máquina destino criar um tunel com as seguintes caractrísticas:



Source port 127.0.0.2:443
Destination :443


Na ligação com o Cliente vSphere indicar:
127.0.0.2
user
password

Esta é a maneira mais fácil de criar um túnel para um servidor vSphere.

Referência: http://communities.vmware.com/message/1469203

quarta-feira, 21 de setembro de 2011

Problemas no SimpleDateFormat

O uso da classe SimpleDateFormat é muito frequente para parsar datas que estão em formato String e transformá-las para Date. É uma classe muito útil, e que resolve só por si toda uma série de problema de conversão de datas.

Contudo, quando se cria uma instância desta classe para fazer a formatação, há um campo desta mesma classe que por defeito vem a true. Este campo é a propriedade Lenient. Esta propriedade, quando a true permite à instância aplicar uma série de heurísticas na formatação e assim tentar efectuar o parse. A aplicação destas heurísticas pode, de vez em quando, indicar resultados incorrectos como no exemplo mais abaixo.

Usando a máscara "yyyy/MM/dd" no SimpleDateFormat e efectuando um parse a uma String no formato "dd/MM/yyyy", o SimpleDateFormat irá indicar que a data é válida, quando era expectável que desse uma excepção. Além de formatar a data, o SimpleDateFormat devolverá uma data completamente diferente da original (objecto Date).

Exemplo INVÁLIDO



        SimpleDateFormat dateFormat = new SimpleDateFormat(
        "yyyy/MM/dd");
     
        try {
            dateFormat.parse("12/12/1233");
        } catch (ParseException ex) {
            System.out.println("12/12/1233 Invalida");
        }
     
        try {
            dateFormat.parse("1212/12/12");
        } catch (ParseException ex) {
            System.out.println("1212/12/12 Invalida");
        }

Ao contrário do que seria de esperar o resultado é:

Thu Apr 16 00:00:00 GMT 16
Wed Dec 12 00:00:00 GMT 1212

Em primeiro lugar deveria ter ocorrido uma mensagem a dizer:



12/12/1233 Invalida

pois "12/12/1233" não está no formato esperado ("yyyy/MM/dd").

Em segundo lugar:

A data Thu Apr 16 00:00:00 GMT 16 nada tem a ver com "12/12/1233".





Para corrigir o problema, é necessário indicar ao SimpleDateFormat para não aplicar heurísticas. Isso é feito usando o método setLenient(false). Fazendo isto o resultado já será o expectável.

Exemplo VÁLIDO

        SimpleDateFormat dateFormat = new SimpleDateFormat(
        "yyyy/MM/dd");
     
        dateFormat.setLenient(false);
     
        try {
           System.out.println(dateFormat.parse("12/12/1233"));
        } catch (ParseException ex) {
            System.out.println("12/12/1233 Invalida");
        }
     
        try {
            System.out.println(dateFormat.parse("1212/12/12"));
        } catch (ParseException ex) {
            System.out.println("1212/12/12 Invalida");
        }

O resultado é:

12/12/1233 Invalida
Wed Dec 12 00:00:00 GMT 1212

Como esperado.

segunda-feira, 12 de setembro de 2011

Wii Puzzle Quest - "Resolvedor de Puzzles"

Se alguém tem o jogo Puzzle Quest para Wii (1ª versão do jogo de 2007) tem aqui disponível uma aplicação que permite resolver os puzzles.

quinta-feira, 8 de setembro de 2011

quinta-feira, 1 de setembro de 2011

Instalação da Base de Dados Oracle 11g em Solaris

Ao verificar os pré-requisitos de instalação, o instalador da base de dados poderá dizer que o patch 12486-15 (ou outro parecido) necessita de ser instalado. De acordo com a nota ID969497.1 este patch pode ser ignorado desde que não se use o pré-compilador Pro*C.

Solaris - "Cannot convert string "fixed" to type FontStruct"

Quando se tenta redireccionar o DISPLAY em Solaris para um computador remoto, podem ocorrer erros do género: "Cannot convert string "fixed" to type FontStruct" quando se usa o xming  no computador remoto.

A solução, depois de saber, é fácil:

      1. Instalar as fontes xming
      2. Adicionar o parâmetro -ac no arranque do xming #Se nos logs do xming aparecer que a ligação foi recusada
Pode acontecer dar um aviso quando se corre o programa que requer o display remoto, mas pode ser ignorado.
ex:  Warning: Cannot convert string "-monotype-arial-regular-r-normal--*-140-*-*-p-*-iso8859-15" to type FontStruct