sexta-feira, 18 de novembro de 2011

Minha bandeira é mais bonita que a sua...

Sempre vejo este tipo de discussão. Devo realmente gastar meu tempo com Ruby On Rails? Django e Python?  .net MVC? IOS ou Android? Pô não seria melhor estudar o Titanium e matar os dois de uma vez? Estudar J2ME? Não morreu?

Para quem está sem tempo de ler minha conversa vai uma resposta rápida:
-Estude/Leia sobre tudo! Se estiver sem tempo pare de ver televisão.
Dica pra quem sabe da minha empreitada:
-Não invente de construir uma casa do zero. Não vai sobrar tempo pra quase nada!

Agora vamos para uma conversa um pouco mais elaborada mas sem muita frescura:

Se você programa em Ruby e utiliza o Rails ótimo! Show de bola tá na crista da onda! Apesar de que vai ficar esbarrando com o node.JS lá na crista. :D Obviamente se for mais para o lado Microsoft o topo da crista para o desenvolvimento web seria o Asp.Net MVC. Como trabalho a mais anos com tecnologias Microsoft participei muito tempo de comunidades e pude observar que não é comum a comunidade Microsoft se interessar por outras tecnologias. Obviamente temos exceções. Mas quando se trata do "gado" o interesse é básico e mesmo assim apenas por Microsoft. Já pude observar que extremistas de várias linguagens  por exemplo JAVA também se comportam assim. Ex.: Se não roda na JVM é lixo! Em um determinado evento que fui um dev que lá estava criticou uma turma de desenvolvedores COBOL, dizendo que o Java era muito melhor pois era Free. E ele não estava em tom de brincadeira.

Pense em sua integridade física e mental e responda: Vale a pena entrar em discussão com um ser iluminado desses? Não consegue perceber que existem inúmeras variáveis por trás de uma decisão de desenvolver algo em uma nova linguagem e/ou manter o atual cenário. Estou falando de tecnologia, conhecimentos das pessoas envolvidas e até mesmo política.

Vou parafrasear uma frase ótima do Phillip Calçado neste podcast:
"Todos que conheço que programam em mais de uma linguagem, programam melhor em todas elas."

sexta-feira, 11 de novembro de 2011

Ótimas coisas grátis na Internet

Fiz uma rápida coletânea de coisas grátis na Internet. Outras quase grátis. Mas todas extremamente uteis.
Dê uma olhada e deixe comentários e dicas. Com certeza deixei várias coisas de fora e sua contribuição será muito bem vinda. Alguns dos links foram retirados de uma palestra do Vinícius Teles então deixo aqui o meu agradecimento a ele. As outras foram coisas que fui encontrando e guardando para compartilhar aqui no blog
Posso afirmar com toda a certeza que valem muito a pena. Segue o link!

terça-feira, 23 de agosto de 2011

Melhorar o desempenho do Visual Studio 2010


A notícia é velha, mas vale a pena compartilhá-la aqui. O blog da “Developer Division Performance Engineering” comunicou uma maneira simples de melhorar o desempenho do VS 2010 em casos de drivers de vídeo ruins.

Vou dar a notícia de uma maneira mais simples e generalizada.

Se o seu VS2010 está com um desempenho insatisfatório então faça o que direi abaixo. Depois disso trabalhe com ele 1(um) dia e analise se foi melhor. Caso não goste volte para a configuração anterior. É muito simples e no meu caso valeu à pena.

Com o Visual Studio 2010 aberto vá em:

Tools->Options 

Selecione:

Environment -> General 

Desmarque a opção:

“Automatically adjust visual experience based on client performance”

Depois desmarque

“Use hardware graphics acceleration if available”

Feche o Visual Studio abra novamente e veja o resultado.

Para saber mais veja o suporte da Microsoft.

sexta-feira, 19 de agosto de 2011

Could not load file or assembly ReportViewer.WebForms

Então você está utilizando o Reporting Service no Visual Studio 2010(Vale para outras versões) e Quando foi publicar a aplicação deparou-se com o seguinte erro apontando para o Web.Config:

“Parser Error Message: Could not load file or assembly 'Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.”

Veja a imagem.


Solução:



sábado, 13 de agosto de 2011

Não aparece o JIT debugger dialog

Se você tentar debugar um Windows Service utilizando a técnica do:

C#
#if DEBUG
System.Diagnostics.Debugger.Break();
#endif

VB.Net
#If DEBUG Then
System.Diagnostics.Debugger.Break()
#End If

Ou seja, inserindo um breakpoint programaticamente e tentar fazer isso no Windows Vista, talvez se depare com uma mensagem de erro ao tentar iniciar o serviço, unido a isso, talvez não seja exibida a janela de escolha do aplicativo utilizado para debug("JIT debugger dialog"); para completar é exibida a seguinte mensagem no Event Viewer:

“…Common Language Runtime Debugging Services: Application has encountered a user-defined breakpoint…”

Tente conter os ânimos.

Vá ao registro do Windows no caminho

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]

O valor default do registro DbgJITDebugLaunchSetting é 16 mude para 2.

Reinicie o Windows para garantir.

Assim aparecerá o "JIT debugger dialog" com os possíveis depuradores escolha o que estiver aberto com o código em questão.

domingo, 3 de julho de 2011

Práticas para um Site Otimizado by Caelum

Ótima apresentação "Práticas para um Site Otimizado - CaelumDay in Rio 2011" do Sérgio Lopes

Nunca fiz cursos na Caelum, mas conheço a equipe pela Internet e/ou eventos. São de uma qualidade impressionante. Não vou nem comentar mais nada. A apresentação diz tudo.

Caixa de Entrada Zero / Inbox Zero

Francamente, não sei como vivi até poucos meses ignorando essa técnica tão simples... Mas sempre que ouvia alguém comentar no twitter: ”Pronto! Inbox zerado!” Eu pensava: “Como esse doidivanas consegue deletar os e-mails! Maluco!” Mas veja como é simples.
Inbox Zero/Caixa de Entrada Zero trata-se apenas da escolha de lugares melhores para os e-mails. Nesta abordagem a Caixa de Entrada é como o próprio nome sugere, a entrada. Depois de ler você obrigatoriamente muda o e-mail de lugar.

Vou explicando logo do que se trata, veja:
Passos rápidos pra entrar na onda Inbox Zero imediatamente:

Passo 1

Pra começar crie 3 pastas
-Agir
-Aguardando
-Arquivo

Passo 2

Mova absolutamente todos os e-mails que já foram resolvidos/lidos e não tem mais nada pra fazer com eles e ainda estão na sua Caixa de Entrada/Inbox para a pasta Arquivo.
Dica: Comece dos mais velhos para os mais novos, é psicologicamente melhor.
Você já está 50% Ok. Vamos entender pra que serve as outras duas pastas.

Passo 3

Dia-a-dia

Este você fará com todos os e-mails daqui em diante, com os que sobraram no Inbox e com os que chegarão.
Leia o e-mail responda a pergunta e execute a ação:

-Consegue resolver em 2 minutos?

Sim: Se consegue, resolva e depois delete ou mova para a pasta Arquivo.
Não: Se não consegue resolver em 2 minutos mova para a pasta Agir.

-Trata-se de um assunto que não depende de você?

No caso de não depender de você e você julga que deverá acompanhar o caso, ou por ter delegado à outra pessoa ou qualquer coisa do tipo. Encaminhe/Responda o e-mail e depois disso mova-o para a pasta Aguardando.
Repare que talvez seja necessário mover para a pasta Agir até que tenha tempo de elaborar uma resposta ou instruções para encaminhar para outra pessoa e só então mover para a pasta Aguardando.

Concluindo

Agora toda vez que receber um e-mail faça esse procedimento, mas faça mesmo! Obviamente de tempos em tempos terá de passar pelas pastas Agir e Aguardando e fazer jus ao título de “Ser-organizado” que acaba de ganhar.  Verá que tudo ficará mais organizado mesmo sabendo que tem milhares de e-mails na pasta Arquivo. Você sabe também que lá estão coisas que você não deve se preocupar agora. E o que realmente importa, ou chegou e não foi analisado, ou você está esperando a resposta de alguém ou está em Agir aguardando você.

segunda-feira, 10 de janeiro de 2011

Demonstrar graficamente a probabilidade de ganhar na Mega-Sena

Quase todo mundo sonha em ganhar na loteria. Em minha humilde opinião ter muito dinheiro é ter liberdade. Liberdade para fazer o que bem entender e quando quiser. Quer viajar pelo mundo? Vá! Quer largar tudo e fazer um curso de oceanografia? Por que não?

Porém, já sabendo da dificuldade que é ganhar na loteria, e aproveitando para informar que  gosto de ter idéias bobas e pseudo-futuro-lucrativas, mesmo sem tempo para aplicá-las, pensei em fazer um software que demonstre graficamente a possibilidade de ganhar na Mega-Sena. 

Bom a idéia era bem simples. O usuário informa o número de jogos que ele fará na Mega-Sena, e numa tela preta 1(um) pixel seria marcado em branco, para cada jogo. Detalhando mais um pouco, a tela preta possui o número de possibilidades de jogos traduzidas em pixels e cada pixel que o software marcasse na tela representaria o jogo do usuário.

Se eu consegui ser claro o suficiente e você, assim como eu, está desatento enquanto pensa no processo, não percebeu a falha básica da coisa e acabou pensando: “-É legal, mas nem tanto”.  Eu digo: “-Concordo, mas gosto de gráficos e gosto de raciocinar graficamente, vou insistir no raciocínio.”
Insistindo um pouco mais, penso em como realmente fazer isso e já faço um calculo básico. Meu monitor LCD comum de 17’’ lá do trabalho, por exemplo,  vamos lá:

  • Definição de 1.280 x 1.024 pixels, um vezes o outro, total de 1.310.720 pixels. 
  • Mega-Sena são 50.063.860 de possibilidades.


Como bom mineiro nesse momento eu diria: “UAI!?” E você já pensou “É Mané não cabe!” Não dá para numa tela preta, que supostamente ocuparia todo o meu monitor, colocar todas as possibilidades da Mega-Sena. Quantos monitores eu precisaria então? Vamos lá novamente:

  • 50.063.860 / 1.310.720 = 38,196; ou seja, 39 monitores de 17’’ com resolução 1.280 x 1.024. Obviamente o tamanho do monitor não importa muito, o que importa é a resolução.


Todo o meu sonho foi por água abaixo neste momento, senti uma lágrima escorrer no canto direito do meu rosto. Não penso só no software em si. Pensando graficamente vejo como é difícil acertar esses benditos números.

Imagine só, você pede um amigo pra escolher um pixel qualquer nessa aplicação distribuída em 39 monitores. Você não olha qual dos 39 monitores ele escolheu, muito menos qual dos 1.310.720 pixels ele escolheu no monitor. O intuito seria evitar uma tendência de acertá-lo de propósito, pois, você está com um dardo com a ponta de um pixel de espessura. Para completar você se dirige para o outro lado da sala e seus olhos serão vendados e seu amigo te roda e te coloca virado para a parede e grita: “Jogue o dardo!”. Você teria de acertar o mesmo pixel que seu amigo marcou e então ele ganharia na Mega-Sena com 1 jogo de 6 dezenas.

Claro, desconsiderei que um dos monitores não está totalmente disponível para ser acertado, pois, são 38,196 e não 39 e também desconsiderei bordas dos monitores, disposição desses monitores na parede, força do jogador, distância, o que ele comeu no café da manhã, humor, não sou estatístico, muito menos matemático, considero fantásticas ambas as profissões. Isso tudo foi só uma brincadeira, cara se fosse construída eu concordo, mas uma brincadeira.

Boa Sorte a todos!