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.

Anúncios

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!