quinta-feira, 20 de dezembro de 2007

Aprendendo com o erros dos outros...

ErroQue o livro oficial da Microsoft para a prova 70-536 esta coberto de erros, não preciso dizer, mas alguns são realmente irritantes, hoje estava relendo o capitulo 9, Installing and Configuring Applications, uma das mais interessantes do livro (ainda vou escrever um post sobre ele) e de novo esbarrei em alguns dos seus erros, porém o que mais me irritou foi os das páginas 490/491, primeiro o último parágrafo da página 490, iniciado em "In the previous versions of the Framework, no real distiction was made..." é repetido inteiramente na página 491 e para piorar o exemplo de código da página 490 esta totalmente incorreto! O problema é que eu já havia lido esta parte e este segundo erro me passou despercebido, sem falar que já havia conferido sobre todas as erratas no site de suporte da microsoft... Hoje porém, como estava lendo com mais atenção notei a discrepância, que faço questão de postar abaixo:


NameValueCollection AllAppSettings = ConfigurationManager.AppSettings;
Int32 Counter = 0;
IEnumerator SettingsEnumerator = AllAppSettings.Keys.GetEnumerator();
while (SettingsEnumerator.MoveNext())
{
Console.WriteLine("Item: {0} Value: {1}", AllAppSettings.Keys[Counter],
AllAppSettings[Counter]);
}

Bem no final, dei uma nova conferida na página de suporte e vi que este erro já havia sido relatado, abaixo o código correto(segundo a Microsoft):

NameValueCollection AllAppSettings = ConfigurationManager.AppSettings;
IEnumerator SettingsEnumerator = AllAppSettings.Keys.GetEnumerator();
while (SettingsEnumerator.MoveNext())
{
Console.WriteLine("Item: {0}Value: {1}", SettingsEnumerator.Current,
AllAppSettings[(string)SettingsEnumerator.Current]);
}


Como a página foi revisada pela ultima vez em novembro deste ano, creio que este tenha sido incluído lá (ou não) bem depois de minha última visita, de qualquer forma, aos que estão lendo este mesmo livro, tomem cuidado para não 'aprenderem o que não devem'.

O que veio de novo com a Web2.0

Hoje recebi um e-mail de um amigo dizendo que haviam "infectado o orkut", quando li, logo imaginei que seria só mais um do tipo "vejam as fotos do acidente da TAM", mas ao ler a estória por completo pelo site do Terra entendi do que se tratava.
O "vírus", como o autor denominou, apenas aproveitava de uma falha do próprio orkut para se espalhar, falha esta que já foi corrigida. Mas o que mais me surpreendeu, foi que esse 'tal virús', foi escrito por um de meus antigos amigos que conheci lá mesmo pelas bandas do orkut. Acho fantástico como as pessoas possam evoluir, aprender em tão pouco tempo(mesmo que não usem este conhecimento proveitosamente), quando conheci o Rodrigo à quase um ano e meio atrás, ele ainda estava iniciando no mundo da programação, tinha problemas em assimilar a diferença entre Java, linguagem de programação, e Javascript, linguagem de scripting. Hoje, ele é um dos maiores programadores em PHP que conheço, possui ótimos conhecimentos em Javascript, tecnologias relacionadas a Web e pelo que podem ver, esta sendo um terror para a staff da google, com sua 'perícia' em descobrir falhas de XSS e Deface(vejam no blog dele suas outras façanhas).

Embora o seu script não tenha sido original, veja a história Samy is my hero em inglês , mostra uma nova forma de 'worms' muito mais poderosa, e que se você, desenvolvedor, não tomar cuidado pode acabar tirando o seu emprego(Ou fazendo você ir trabalhar às pressas no meio da madruga:D).

quarta-feira, 19 de dezembro de 2007

70-536, será que eu consigo?

Já tem algum tempo que venho estudando para a prova 70-536, pré-requisito para certificação MCTS .NET, no inicio, confesso, imaginava que seria mais fácil, afinal, ‘mexo com isso’ já fazem quase 2 anos, porém hoje digo que não esta sendo bem assim, capítulos como “Implementing service processes, threading, and applicatons domains in a .NET Framework application” e “Implementing interoperability, reflection functionality in a .NET Framework application” vem me dando dores de cabeça, não consigo me ver programando utilizando a APM, interagindo com objetos COM enquanto escrevo minhas aplicaçõs Web. Talvez por ainda serem itens novos a mim, espero que com o tempo vá acostumando…