Consumindo WebService (WCF ou ASMX) em uma aplicação Silverlight

7 F Y

Trabalhando no projeto da Imagine Cup, tivemos a necessidade de criar um Web Service e consumi-lo dentro de uma aplicação Silverlight. Primeiro desenvolvi o Web Service, testando com uma aplicação ASP.Net, e tudo funcionou OK. Quando repassei o projeto para Edgar integrar com a aplicação em Silverlight, não funcionou.

O erro que era levantado era uma “SecurityException”, e a descrição dizia que faltava uma configuração de cross-domain no serviço. Começamos a investigar e encontramos várias soluções na web, mas nenhuma das primeiras tentativas funcionou. Poupando o blablablá, conseguimos resolver com a seguinte solução, encontrada (pra variar…) no Stack Overflow:

  • Crie um arquivo chamado “crossdomain.xml” na raiz do projeto do Web Service
  • Coloque o seguinte conteúdo no arquivo recém-criado:
<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
  <allow-http-request-headers-from domain="*" headers="SOAPAction" />
</cross-domain-policy>

Pronto, foi só colocar este arquivo no Web Service que o projeto Silverlight conseguiu se conectar e consumir os serviços sem problemas.


Grana Forte – Gerenciamento Financeiro

6 F Y

Recentemente, tive a necessidade de fazer um certo controle financeiro de algumas atividades com um grupo de pessoas. Inicialmente, estava usando uma planilha no Excel mesmo, no entanto, ela começou a se mostrar pouco eficiente para o meu cenário, então, fui procurar alguma outra ferramenta que pudesse me auxiliar nesta atividade.

A primeira que encontrei foi o Organizze. É uma ferramenta grátis que roda online, tem uma versão que pode ser acessada em dispositivos móveis (iPhone e iPod Touch inclusos) e atende bem necessidades simples. Infelizmente, ela não atende minha maior necessidade, que é o gerenciamento de múltiplas fontes financeiras.

Para explicar melhor meu cenário: Temos 4 pessoas e uma conta bancária. É necessário saber quanto dinheiro cada pessoa tem que “não é dela”, e sim do grupo. Desta forma, na prática, cada pessoa pode ser tratada como uma conta bancária, e as despesas do grupo pagas por cada pessoa devem ser debitadas do quanto elas possuem de dinheiro do grupo, assim como o dinheiro do grupo que é repassado para a pessoa deve ser creditado em sua “conta”. Esta é uma situação suficientemente comum, e posso citar como exemplos: Comissões de formatura, empresas start-up, grupos de amigos organizando festas, entre vários outros exemplos.

O melhor programa que encontrei para atender esta minha necessidade foi o Grana Forte. Com ele, é possível fazer exatamente o gerenciamento que eu precisei para a minha situação, controlando diversas contas, podendo fazer transferências entre elas e o controle em geral.

Exemplo da Tela Principal do Grana Forte

Além de conseguir gerenciar bem as múltiplas fontes, a geração de gráficos dele é muito útil. É possível personalizar bem a geração dos gráficos de acordo com a sua necessidade. O resultado pode ser muito útil na hora de identificar onde você está gastando muito, e se possível, começar a dar um aperto naquela despesa.

Exemplo de gráfico gerado pelo Grana Forte

Uma das maiores vantagens deste software é sua simplicidade. Tudo é muito fácil de fazer, a interface é bem enxuta, sem muita firula. As principais atividades são alcançáveis através de um clique, os botões são bem identificáveis, tornando o tempo que levo para fazer o registro das movimentações no mínimo possível. Outras ferramentas que cheguei a testar, no entanto, que eram um terror: Usavam imagens no plano de fundo, deixavam uns 30 botões pequenos com ícones que não deixavam claro o que aquele botão faria quando fosse clicado e ainda exibiam informações completamente desnecessárias (pra mim, mostrar uma piada quando o programa abre é desnecessário…).

A unica característica que sinto falta no Grana Forte é um controle de contas à pagar, ou pelo menos um “lançamento programado de  transações”. Algumas coisas eu sei que vou ter que lançar, como por exemplo, uma compra parcelada… Inserir todas as parcelas como transação com a data no futuro vai interferir nos valores que eu vejo atualmente. Como isso não é uma necessidade crítica para mim, o Grana Forte é minha melhor opção… mas se existisse essa funcionalidade, pra mim seria ótimo!

O Grana Forte tem uma versão trial de 30 dias. Depois, para continuar usando, é necessário comprar a licença, no valor de R$ 39,00.


Programa para desabilitar o TouchPad enquanto se digita

5 F Y

Não tem coisa pior do que estar digitando um texto em um notebook e, “do nada”, o cursor vai para um lugar totalmente inesperado. Se você está digitando olhando para a tela, é só clicar no lugar onde o cursor deveria estar e continuar trabalhando. Se você fica pescando as teclas e não olha com frequência para o resultado que está saindo no monitor, pode ter uma má surpresa ao ver as linhas todas misturadas.

O problema geralmente é causado por cliques acidentais através do touchpad. Particularmente, eu não sentia esse problema com o touch do netbook, que era bem pé-duro e pequeno. Em meu notebook novo no entanto, isso acontece com frequência, tanto pelo tamanho avantajado do touchpad como pela sua maior sensibilidade, ambas boas características para o touchpad, mas que trazem estes efeitos colaterais. Pior ainda é que muitas vezes eu não estou simplesmente escrevendo texto, e sim programando, e neste caso, os erros induzidos pelos cliques acidentais podem se tornar longas horas de debug (não aconteceu comigo, mas é algo muito plausível).

Uma solução seria diminuir a sensibilidade, mas nem todos (eu incluso nesse grupo) querem abrir mão do touchpad mais sensível. Outra, mais inaceitavel ainda pra mim, é desabilitar o clique através do touch, permitindo apenas os cliques nos botões físicos. Ficar habilitando e desabilitando manualmente, além de ser “incômodo”, pra não dizer outra coisa, nem sempre é possível, como no meu caso, em que o notebook não veio com um atalho para fazer isso no próprio teclado. Pra quem não aceita nenhuma destas opções, o TouchFreeze pode ser uma boa solução.

Este programinha simples, de menos de 300kB, desabilita os cliques enquanto você está digitando, evitando aquela “bagaceira” de texto se misturando por causa dos cliques acidentais. Ele é bem rápido também em reabilitar os cliques quando você para de digitar, e não dá para sentir diferença nenhuma, a não ser talvez em jogos em que você precisa usar o teclado e clicar ao mesmo tempo. Totalmente recomendado!

[via Download Squad]


Resolvendo problemas da SiS Mirage 3 com o Visual Studio 2010 (e outras aplicações que usam WPF)

2 F Y

Um dos prêmios que ganhei com a vitória na fase nacional da Imagine Cup deste ano foi um notebook Elcoma Wizz, que apesar de ser uma boa máquina para o dia-a-dia (Core 2 Duo T6400, 320GB de HD e 4GB de RAM, mas Windows 7 de 32bits…), vem com o chipset de vídeo SiS Mirage 3.

Esse chipset é focado para máquinas de baixo custo, e é muito, MUITO fraco. Hoje, primeira vez que fui tentar trabalhar com a máquina nova no Visual Studio 2010, assim que ele abriu, as letras no código todas distorcidas, com quadradinhos coloridos, geralmente amarelos, no meio delas, parenteses que pareciam chaves, chaves que pareciam colchetes, todo tipo de problema de renderização que se possa imaginar. Flávio, que estava junto no momento, disse que a máquina dele, um Positivo que usa a mesma SiS Mirage 3, tem o mesmo problema com o Visual Studio 2010.

Um pouco de pesquisa e descobri que, mesmo com os drivers mais atualizados (o que era meu caso), essa “placa” não trabalha bem com WPF (lembrando que a interface do VS2010 utiliza WPF). A solução é desabilitar a aceleração de hardware… O problema é que, tanto no Windows 7 como no Vista, isso não é trivial.

UPDATE: O novo Windows Live Messenger 2011, popularmente conhecido no Brasil como MSN 11, também tem a interface baseada em WPF. A correção abaixo também irá corrigir os problemas de exibição deste programa.

O caminho é o seguinte:

  • Abra o registro do windows (Iniciar -> Executar -> Regedit)
  • Navegue até a seguinte chave: HKEY_CURRENT_USER\SOFTWARE\Microsoft
  • Verifique se existe a chave Avalon.Graphics
  • Se ela não estiver aparecendo, tente criar uma nova chave com este nome. Ao confirmar, talvez ele reclame que já existe uma chave com este nome. Não ligue pra isso, e procure a chave Avalon.Graphics, que vai estar na lista agora.
  • Adicione um novo valor DWORD, com o nome DisableHWAcceleration, e o valor 1.
  • Reinicie o Windows
Como seu registro deve ficar após as alterações
Como seu registro deve ficar após as alterações

Daí, na próxima vez que você abrir o Visual Studio (ou o MSN / Windows Live Messenger 2011), vai ver que ele está renderizando corretamente o texto e toda a interface. Isso também vai fazer com que qualquer outra aplicação WPF funcione corretamente nesta placa. Nesta minha máquina, isso não causou problemas de performance, mesmo este procedimento desabilitando a aceleração de vídeo por Hardware em aplicações WPF.

UPDATE: Em algumas máquinas com Windows 7, a mudança no registro descrita acima resolve para o Visual Studio, mas para o MSN é necessário atualizar o driver da placa de vídeo para a versão mais nova… O problema é encontrar esse driver, pois o site da SiS vive quebrado ou fora do ar.

UPDATE 2: O link a seguir tem um driver que, segundo relatos, funciona para a solução acima inclusive para monitores externos, sem deixar a imagem piscando ou com flickering: ftp://ftp.clevo.com.tw/M7xxS/VGA/VGA_W7.zip.

PS: Cuidado ao alterar o Registro do Windows. Não me responsabilizo por qualquer dano causado durante a tentativa de realizar esta alteração. Faça por sua conta e risco!

Fonte: http://msdn.microsoft.com/en-us/library/aa970912.aspx


Promoção TIM Brasil Infinity – Torça mais ainda para o Brasil ganhar a Copa

13 F Y

Jogo rápido: Recebi uma mensagem em meu TIM hoje divulgando a nova Promoção Brasil Infinity. O esquema é o seguinte: Por R$ 4,90 (Pós-Pago) ou R$ 9,90 (Pré-Pago), você entra na promoção Infinity, de pagar apenas o primeiro minuto de cada ligação (para outros telefones TIM), por R$ 0,25 centavos, durante 3 meses. A Infinity em geral já é uma promoção muito boa, principalmente se você precisa falar muito em ligações DDD.

Apesar da Imagem ser da Brasil Infinity Pós, também tem a opção pra quem é Pré-Pago

Apesar da imagem ser da Brasil Infinity Pós, a promoção também está disponível para quem é Pré-Pago, só muda o valor de adesão.

A maior vantagem desta nova promoção é: Se o Brasil ganhar a Copa do Mundo, a TIM vai estender a promoção até 31/07/2014. É uma boa aposta a se fazer, e virtualmente “de graça” pra quem ainda não está com alguma outra “versão” da Infinity, pois o preço é praticamente idêntico ao que se pagaria por mês para aderir à Infinity por um ano.

Hoje mesmo eu vou botar crédito, entrar na promoção e ter mais um (ótimo…) motivo pra torcer pela Seleção!

PS: O site da promoção do Pré-Pago diz que existe também uma “versão” para aderir por um ano, por R$ 14,90, nesta promoção. Se o Brasil ganhar a Copa no entanto, não tem vantagem nenhuma. Se você acredita na seleção, entra na de 3 meses, se tem maiores dúvidas, entra na de um ano 😉


Resolvendo problema de modem USB travando após conectar

4 F Y

Há algum tempo eu vinha tendo um problema com diversos modems USB no meu netbook, rodando Windows XP (original, SP3 totalmente atualizado). Isso aconteceu com o Nokia 1508i pra conectar no Giro e com dois diferentes modems para conectar ao Claro 3G: Um Huawei E156B e outro mais antigo que quebrou e não lembro mais qual era a marca nem o modelo. Teoricamente, aconteceria com qualquer tentativa de conectar à internet via USB. Conectar com o cabo de rede ou pela rede sem fio não causava o problema.

Logo após conectar, o sistema ficava travando intermitentemente, durante aproximadamente 3 minutos. A barra de tarefas (a barra azul, geralmente na parte de baixo, no Windows XP) ficava completamente travada durante todo este tempo, nenhum novo programa abria e o browser simplesmente não conseguia abrir nenhuma página (tentei o Chrome, Firefox, Internet Explorer e até o Opera…), além de ficar travando, enquanto este problemapersistia. Algum tempo depois, a máquina destravava e voltava a funcionar normalmente.

Há 3 dias, aparentemente, consegui resolver o problema depois de encontrar algumas soluções em um forum. A solução sugerida, que segui e até agora a máquina não voltou a travar depois de conectar com modems USB foi a seguinte:

  • Vá em “Iniciar”, depois “Executar”
  • Digite “services.msc”
  • Pare e desabilite os seguintes serviços:
    • Serviço auxiliar IPv6 (IPv6 Helper Service)
    • Serviço de descoberta SSDP (SSDP Discovery Service)
    • Host de dispositivo Plug and Play Universal (Universal Plug and Play Device Host)

(Para parar e desabilitar um serviço, dê um duplo clique no nome do serviço. Se o serviço não já estiver parado, você deve clicar no botão “Parar”. Depois, selecione “Desabilitado” na lista de “Tipo de Inicialização”, que atualmente deve estar em “Automático” ou “Manual”)

Procurando agora os nomes dos serviços em português para escrever este post (o meu XP está em inglês, assim como o post do forum que eu havia lido), encontrei um post no Guia do Hardware em que apenas desabilitar o Serviço Auxiliar IPv6 resolveu o problema.

Enfim, se alguém mais está/estava tendo este problema, sinta-se a vontade para contribuir nos comentários dizendo se a solução daqui funcionou, se apenas desabilitar o Serviço Auxiliar IPv6 resolveu ou qual foi o outro caminho seguido para resolver este problema que tira a paciência de qualquer um.


Prêmio Nacional da Interoperabilidade

30 F Y

Depois do sucesso do Desafio de Interoperabilidade proposto pela Microsoft aqui na Campus Party 2010, gostaria de lembrar vocês sobre o Prêmio Nacional da Interoperabilidade.

Esta competição realizada pelo Senai com apoio da Microsoft, tem como objetivo difundir as possibilidades de interoperabilidade de sistemas e ferramentas da Microsoft com as ferramentas e sistemas providos por outras empresas ou pessoas.

O Prêmio é focado em estudantes, e será tipo uma prévia da Imagine Cup, nos moldes do XNA Challenge, mas focado na categoria de Interoperabilidade. O tema, as 8 metas do milênio, é o mesmo da competição mundial. O vencedor NÃO está automaticamente classificado para a Imagine Cup, mas a competição é de grande ajuda para validar a idéia e conseguir aprimorar o projeto antes de submeter para a Imagine Cup.

A premiação também é muito interessante, um netbook por membro da equipe, mas em comparação com a experiência e conhecimentos adquiridos durante a realização do projeto, não é nada. Vale realmente muito a pena participar, principalmente se você tem como objetivo participar e ganhar de uma Imagine Cup.

Pra quem não sabe, atualmente, o Brasil é o campeão mundial da categoria Interoperability Award da Imagine Cup. Em 2009, eu e meus amigos da Proativa levamos o ProLearning para o Egito e ganhamos. Não podemos participar este ano por causa disso mas queremos que o Brasil mantenha o título. Uma iniciativa como esta ajuda muito a preparar o pessoal, não perca essa chance!

Por último, fazendo propaganda… Não posso participar como competidor, mas posso ser mentor de qualquer equipe nesta categoria. Se você tiver alguma idéia, entre em contato comigo para podermos trabalhar juntos e tentar levar sua idéia para o Prêmio de Interoperabilidade e posteriormente para a Imagine Cup 2010, na Polônia!


Pesquisa de Imagens do Bing se garantindo

16 F Y

Já imaginou fazer uma busca de imagens e só receber uma página de respostas? Até agora, isso significava que a busca retornou poucos resultados. Quando você pesquisa, por exemplo, no Google Images, e obtém uma quantidade razoável de resultados, eles vem espalhados por várias e várias páginas. Cada vez que você quer ver mais resultados, tem que abrir a nova página, e carregar tudo de novo.

O Bing, nova ferramenta de busca da Microsoft, trouxe uma mudança significativa na sua busca de imagens (http://www.bing.com/images). É apresentada apenas uma página ao usuário, contendo os resultados em um painel com rolagem vertical. O comportamento natural do usuário, ao precisar de mais imagens, é rolar a barra para baixo, e na medida em que o usuário desce para ver mais resultados, o Bing requisita as próximas imagens via Ajax. O resultado é uma interface que ajuda MUITO, e de várias formas o usuário:

  1. Não tem que ficar mudando de página, pedindo mais imagens. É só descer a barra e mais imagens virão;
  2. Todas as imagens que o usuário já viu continuam lá. Não é necessário ficar voltando de página para ver alguma imagem que você gostou mas passou;
  3. Bom para conexões lentas. Quando você precisa de mais resultados, ele só requisita as imagens, não tendo que recarregar toda a página. Em minha conexãozinha de 153kbps, isso faz uma diferença absurda!
  4. Ao clicar em uma imagem, a página de origem abre no painel. Enquanto isso, os outros resultados da busca ficam em um painel lateral, permitindo que o usuário continue vendo todos os resultados, na mesma janela.

Além disso, a interface é suficientemente limpa, e existem vários modos de visualização dos resultados. Pode-se alterar a visualização para 7, 5 ou 4 imagens por linha, sem recarregar a página, bem rápido. A visualização padrão ajuda no visual clean do site, pois são apenas exibidas as imagens, sem nenhuma informação como o site de origem, tamanho e dimensões do arquivo. Basta passar o mouse em cima da imagem que estas informações aparecem, além de ser exibida a imagem um pouco maior.

O Google Images ainda oferece mais resultados que o Bing Images, mas até o momento, as buscas que fiz no Bing sempre me retornaram uma imagem que atendia minhas necessidades. Ele é minha busca de imagens padrão no momento. Agora é esperar para ver qual será a reação do Google!


Perigos da validação client-side (ou Sempre valide client E server side)

14 F Y

Desenvolvo para a web há praticamente 8 anos. Pude ver muita coisa surgindo, tecnologias, conceitos, frameworks, aplicações, serviços… O bom de aprender cedo a desenvolver é que você presta atenção as falhas dos outros para não comete-las em seus projetos. Já vi absurdos completos, como um site em que os dados do login eram enviados via GET, usuário e SENHA, plaintext, na url de destino… Outros erros comuns, que por vezes me deparo são mais mascarados, mas qualquer desenvolvedor com o mínimo de experiência os conhece e deve tentar evitá-los. Um exemplo é SQL Injection… a técnica é conhecida desde sempre, no entanto, grandes portais ainda são vulneráveis a este “ataque” trivial, que qualquer usuário pode realizar. Já vi o site de um jornal importante, de grande circulação, abrindo as pernas para um “‘or 1 = 1’ ” colocados como usuário e senha… Mas o foco deste post não é este tipo de problema. Quero discutir aqui sobre outra fragilidade de aplicações web, ainda mais fácil de tratar do que SQL Injections ou XSS: Confiar na validação client-side.

Muita gente que desenvolve aplicações web atualmente, vem do mundo da programação desktop normal. Ao validar um campo (um textbox por exemplo), basta validar o valor inserido pelo usuário e processar aquele valor normalmente (se for o caso de inserção em banco de dados, vale a pena colocar validação no banco também, tanto para desktop como principalmente para web). Se quiser desabilitar algum campo, apenas desabilite ele na interface gráfica e pronto, o usuário não vai ter acesso à ele (não na prática, com facilidade suficiente). Ao desenvolver para web, assumir isto pode ser fatal para sua aplicação.

Modificar o conteúdo exibido em uma página, ou mesmo alterar os valores enviados via POST são atividades triviais, que um usuário com conhecimentos mínimos de HTML e/ou do protocolo HTTP podem fazer, usando complementos para o Firefox como o Firebug e o TamperData.

Através do Firebug, é muito fácil alterar por exemplo, o valor de um <option>, para enviar o valor que o usuário desejar, ao invés dos valores pré-definidos. Remover um “disabled” de um input checkbox ou radiobutton é trivial. Com a mesma facilidade, podem ser removidas as chamadas às funções javascript que realizam validação client-side. Confiar em validações feitas em javascript já não é algo muito inteligente, pois praticamente qualquer browser tem opções fáceis de desabilitar a execução de tais scripts.

A validação client-side no entanto não deve ser esquecida. Para o usuário honesto, sem intenção de quebrar o sistema ou explorar vulnerabilidades, ela é muito útil, diminuindo o tempo de resposta caso algum dado esteja incorreto (evitando que os dados sejam enviados, processados pelo servidor, verificados como incorretos e só então ser enviada uma mensagem de erro para o cliente corrigir os dados não conformes), melhorando assim a experiência do usuário.

Frameworks como ASP.NET oferecem facilidades para o desenvolvedor no momento de validar tanto client como server side. Os componentes de validação realizam uma validação client-side, no entanto, todas as verificações são novamente realizadas no momento em que os dados chegam no servidor. Caso estes não sejam válidos, Page.IsValid irá retornar false, e cabe ao desenvolvedor realizar uma verificação ao valor desta propriedade antes de usar os dados. No entanto, deve-se escolher corretamente as validações a serem realizadas em cada cenário, caso contrário, ainda assim poderão passar dados que não deveriam.

Se você acredita que isto é muito teórico, não acontece na prática, está enganado. Nestes dias, um amigo meu foi se inscrever em um curso. Eu e outro amigo já haviamos conseguido nos inscrever, mas as inscrições eram gratuitas, e as vagas haviam se esgotado quando este outro amigo tentou. Quando analisamos a página (escrita em ASP puro, não ASP.NET), percebemos que o radiobutton para escolher o curso que ele desejava estava com um disabled. Resolvemos alterar via Firebug (apenas remover o atributo disabled=”disabled” da tag), selecionar o curso e enviar o formulário. Resultado: Inscrição realizada com sucesso, e quando ele foi ao curso, estava o nome dele lá na lista de inscritos… Até certificado ele recebeu, tudo normal.

Num caso destes, teria que ser verificado se ainda existiam vagas no momento em que o servidor recebe a solicitação. Não precisaria nem de Firebug para um sistema que apenas valida client-side receber mais candidatos inscritos do que deveria. Uma página guardada em cache visitada antes do fim das vagas poderia inscrever várias pessoas. Outro cenário possível era se existisse apenas uma vaga aberta, mas 5 usuários tivessem carregado a página de inscrição ainda com esta vaga restante. Todos eles conseguiriam se cadastrar pela falta de uma validação server-side.

Neste caso, o efeito foi inofensivo. Não faltou lugar, comida (ótimo coffee-break por sinal 🙂 ) nem nenhum outro recurso necessário ao bom andamento do curso por causa desta inscrição adicional. No entanto, cenários em que o dano causado pela falta de verificações semelhantes podem ser consideráveis não são difíceis de imaginar.

Fica o recado, SEMPRE valide seus dados server-side para evitar problemas! Apesar do “trabalho” adicional (que varia consideravelmente dependendo da tecnologia que você estiver usando), vale a pena para garantir o comportamento que você ou seu cliente esperam do seu sistema.


OpenDNS – Resolvendo problemas com o servidor DNS do seu provedor

9 F Y

A Lei de Murphy é implacável… quando você mais precisa enviar aquele email importante, do nada, seu GMail não abre. Você tenta abrir google, globo.com, uol, qualquer coisa que está SEMPRE no ar, mas nada abre. Teoricamente, “a internet caiu”. Com meu Giro da Embratel, isso acontecia direto, principalmente durante a semana em horário comercial. A questão é que, se você tentar abrir algum daqueles sites pelo seu endereço IP, ele abre. E agora, qual é o problema?

A resposta para isso é o servidor DNS do seu provedor. Resumindo, este servidor converte o endereço que você conhece (que é um “apelido”), como http://www.google.com, para um número como 64.233.169.103, que é o endereço IP, o endereço “real”, pelo qual o seu computador vai conseguir entrar em contato com o google na prática (o buraco é bem mais embaixo do que isso que eu tou falando, mas não tem pra que complicar aqui. Este link leva para uma página explicando melhor o que é e como funciona DNS).

Servidores DNS mal configurados ou dimensionados podem causar sérios problemas, pois ninguém é obrigado a decorar IPs (pra isso o DNS foi criado). Infelizmente, vários provedores não oferecem servidores DNS de qualidade, o que dificulta a experiência do usuário, e muitas vezes impossibilita a navegação (novamente, usuários do Giro que o digam…).

Para resolver problemas de performance, segurança, diponibilidade e por fim melhorar a experiência do usuário, em 2005 foi lançado um serviço chamado OpenDNS. Eles oferecem um endereço IP que você irá colocar como seu servidor DNS, passando por cima do servidor de seu provedor. Quando uma requisição for feita para este “servidor”, ela será realizada na verdade por algum dos diversos servidores da rede do OpenDNS. Por possuirem vários servidores, é garantido que haverá uma resposta para a sua requisição. Apesar destes servidores estarem localizados nos EUA e na Europa, a qualidade do serviço oferecido em relação aos servidores toscos oferecidos por alguns provedores faz com que o tempo de resposta do OpenDNS seja melhor mesmo em relação à maquinas aqui no Brasil mesmo.

O melhor de tudo é o custo…  0800,  grátis, Zero. É só configurar a conexão para usar o OpenDNS e pronto. Estou usando na minha conexão do Giro, e estou conseguindo usar durante a semana em horário comercial tranquilamente, o que não vinha acontecendo há algum tempo. Em outros blogs, vi que tem gente usando ele também em conexões Velox e diminuiu a quantidade de problemas, tanto de disponibilidade como de performance.

Para configurar, siga estes links (em inglês, com as imagens das telas, bem intuitivo):

Para usuários de “discadas” em geral, ao invés de (no caso do XP) escolher “Local Area Network”, no passo 3 escolha a sua conexão.