ExtremeCode

Soluções sem Limites em TI

building image

rss feed technorati fav

Tópicos recentes

Delphi evolução Google Java Linux Rede Segurança Tecnologia Ubuntu Delphi (1)
Java (1)
Linux (1)
Noticias (1)
Segurança (1)
Tecnologia (1)
Ubuntu (1)
Utilitarios (1)

WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.


Bem-vindo ao Blog da ExtremeCode, aqui você encontra muita informação e tecnologia em um clima mais do que descontraído.

Nas ondas do Google

Published by admin | Filed under Noticias, Tecnologia

Não é de hoje que os lançamentos do Google causam um enorme alvoroço, não somente entre os desenvolvedores, mais em praticamente todos os setores.

Porém, desta vez, eles pegaram pesado.

Ladies and Gentleman, se preparem para o que vem ai. Dos mesmos criadores do Google Maps, nas palavras de Vic Gundotra: “… vocês vão esquecer que vocês estão olhando para um browser…”, com vocês Google Wave.

O Google wave é a junção de um software cliente, servidor e um protocolo de comunicação.

As possibilidades do wave são ilimitadas, porém alguns dos recursos que já existem são simplesmente fantásticos.

Além do protocolo ser aberto, o que já é uma revolução incrível, e da edição simultânea com aquela timeline ser algo fantástico, outros recursos já implementados tornam a ferramenta algo surpreendente:

É amigo, parece que os planos do Google para dominar o mundo estão avançando.

Comentar agora » . julho 3rd, 2009

Alterando o seu NetworkManager

Published by admin | Filed under Linux, Ubuntu, Utilitarios

Fala galera, hoje vou dar uma dica bem simples, mas que pode ajudar muito os usuários GNU/Linux.

Bom, eu uso Ubuntu desde a versão 4.10 (The Warty Warthog), que por sinal era bem ruinzinha. Toda a minha história com o Ubuntu foi marcada pelo NetworkManager do Gnome. Sinceramente eu não sei se ele tem algum problema comigo, mais eu *NUNCA* consegui usar ele de forma eficaz.

Para amenizar isso, já a muito tempo, eu uso um pequeno script bem simples, que encontra para mim, redes pré-cadastras (Casa, Empresa) disponíveis e efetua a conexão. O problema era quando precisa conectar em uma rede que não estivesse cadastrada, tinha que fazer tudo na mão, o que não é uma tarefa muito agradável.

Pois bem, a algumas semanas acabei encontrando a solução para todos os meus problemas. Um aplicativo chamado wicd, este cara é simplesmente fantástico.

A instalação é muito simples, para usuários Ubuntu (9.04), ele já está disponível no repositório:

sudo apt-get install wicd

Caso o wicd não for encontrado, provavelmente você terá que habilitar os pacotes universe/multiverse.
Para isso, digite Alt + F2 e digite:

gksudo gedit /etc/apt/sources.list

Feito isso, procure as linhas abaixo e remova o # da frente:

deb http://br.archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
deb-src http://br.archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu jaunty partner
deb-src http://archive.canonical.com/ubuntu jaunty partner

Feito isso vamos ao terminal e digite:

sudo apt-get update && sudo apt-get install wicd

Ele vai remover o network-manager (graças a Deus), e vai assumir todo o gerenciamento da rede.
Se o ícone não aparecer na área de notificação após a instalação simplesmente pressione Alf+F2 e digite:

wicd-client

Ele é muito completo, ao abri-lo, você verá uma lista com todos os hotspots disponíveis, o tipo de criptografia usada pelo mesmo, nível de sinal, e muito mais. Porém, na minha opinião, a melhor funcionalidade do wicd, é a conexão automática em redes disponíveis.

Após configurar sua rede, como senha, endereço estático ou dhcp, etc… simplesmente marque a caixa “Conectar automaticamente a esta rede” e pronto.

wicdinaction

Thats all folks, espero que tenham gostado, até mais.

Comentar agora » . maio 20th, 2009

Criptografia – Java e Delphi

Published by admin | Filed under Delphi, Java, Segurança

Como é do conhecimento de todos, existem hoje inúmeros algoritmos de criptografia, como Blowfish, AES, DES entre muitos outros.Porém nem sempre sua utilização se faz necessária, muitas vezes só queremos embaralhar um pouco os bits, de alguma senha ou algumas informações importantes, e não precisamos de nenhum algoritmo muito complexo para isto.

Pois bem, atualmente na empresa estamos desenvolvendo um sistema de suporte on-line, feito em Java utilizando ZK, Hibernate e Spring. Neste sistema utilizamos uma base de dados no Firebird, sendo que esta base também é acessada por um sistema de uso interno (que chamamos de xManager), e tínhamos a necessidade de utilizar os mesmos dados de login para ambos os sistemas, abaixo descrevo as duas funções utilizadas, tanto em Delphi quanto em Java.

A função em Delphi é bastante simples:

// Dado um valor S, percorremos o mesmo byte a byte
for I := 1 to Length(S) do
begin
  // Embaralhamos os bytes
  Result[I] := char(Ord(S[I]) xor (Key shr 29));
  // E geramos uma nova chave para embaralhar novamente
  Key := (Ord(S[I]) + Key) * C1 + C2;
end;

Segue a função em Java:

for (int i = 0; i < text.length(); i++) {
  /* Pegamos o valor ordinal do nosso caracter */
  int ord = text.charAt(i);
  /*
    * Embaralhamos os bits Primeiro fazemos um shr da nossa chave com
    * um numero de bits especifico E logo depois fazemos um xor do
    * ordinal do nosso caractere com a nova chave
    */
  long keyNum = (ord ^ (key >>> 29));
  /*
    * Convertemos novamente o nosso caractere para char Lembrando de
    * dividir por 256, para manter compatibilidade entre o Unicode do
    * Java e o ASCII do Delphi
    */
  char keyChar = ((char) (keyNum % 256));
  /* Embaralhamos a chave novamente */
  key = (ord + key) * C1 + C2;
  /* E concatenamos a nosso char para gerar uma string */
  result += keyChar;
}

Sendo que tanto para criptografar quanto para descriptografar a função é praticamente igual, a única diferença é que no loop, para criptografar utilizamos o valor ordinal do novo caractere gerado, e para descriptografar utilizamos e valor ordinal do caractere da sequência.

Tivemos um problema com a codificação também, pois usamos WIN1252 como charset no Firebird, existem várias formas de se resolver isto, nós optamos por compilar nossa aplicação com o mesmo charset que usamos no BD.

Para isto, simplesmente acrescente a seguinte diretiva no compilador: -Dfile.encoding=windows-1252.

Porém percebi que existem problemas com alguns caracteres específicos, onde ele não convertia de forma correta, e acabei por descobrir que o encoding ISO8859_1 é muito semelhante ao windows-1252, sendo que este resolveu todos os meus problemas.

Abaixo seguem alguns links interessantes:

Listar Charsets disponíveis no Java
Convertendo Strings entre Charsets
Encodings suportados pelo Java

Thats all folks. Espero que tenham gostado, até mais.

Comentar agora » . maio 14th, 2009