I2P

7 Setembro 2009
Olá pessoal… passei mais um longo tempo sem postar, mas não foi por falta de vontade, foi falta de tempo mesmo. Assim que voltei da Imagine Cup, comecei a resolver algumas coisas, ministrei os cursos de Pacote Web e C# Básico oferecidos pelo CITi (empresa júnior do Cin) e logo depois a Proativa se classificou para a competição I2P, Ideas to Products, coordenada pela FGV.
Viajei para São Paulo dia 24 de agosto, para participar do Tech Ed. O evento foi muito bom, palestras de ótimo nível sobre as prinicipais tecnologias da Microsoft que estão no mercado ou na agulha para serem lançadas. Pelo que as pessoas que foran no ano passado disseram, o nível das palestras foi muito superior ao do ano passado. Além disso, foi uma ótima oportunidade de fazer networking e também de se divertir.
Passado este tempo, ficamos em São Paulo mesmo, nos preparando para o I2P. Eu, Lucas e João Paulo trabalhamos nos slides, tomando como base o que apresentamos na Imagine Cup. Eduardo Sonnino se juntou ao nosso grupo e fez um ótimo trabalho ao redesenhar nossa interface e mudar o desing de nossa apresentação.
Nos últimos 3 dias aconteceu a competição. Apesar de não termos avançado para as semi-finais, eu avalio a experiência como excepcional. No primeiro dia, em uma apresentação de feedback, os juizes e amigos nossos fizeram críticas, perguntas e dicas que não teriam surgido em uma competição mais técnica como foi o Interoperability Award na Imagine Cup. Hoje, após a final, tivemos uma ótima conversa com Augusto Camargo, que foi um dos jurados, e nos mostrou alguns pontos que devemos observar, tanto ao levar o ProLearning para uma competição como o I2P como para pensarmos quando formos de fato transformá-lo num produto.
Esta competição também nos trouxe uma “lição de vida” nas palavras de João Paulo… Um grupo da UFPR que estava em nossa chave, no dia da apresentação de feedback, fez uma apresentação completamente científica, que ninguém entendeu nada. Os juizes criticaram muito, e acredito que elas passaram o dia todo criando outra apresentação, mais adequada à competição, que no dia da apresentação para valer ficou muito boa, e as fez chegar ao 2º Lugar na competição… Parabéns meninas, vcs detonaram!
Enfim, agora é processar direitinho as opiniões dadas por todos, juizes, amigos (valeu Carla e Helô!) e outros competidores que conhecemos durante o I2P, e ver o que podemos aproveitar e usar para melhorar o nosso ProLearning.
Até a próxima!

Olá pessoal… passei mais um longo tempo sem postar, mas não foi por falta de vontade, foi falta de tempo mesmo. Assim que voltei da Imagine Cup, comecei a resolver algumas coisas, ministrei os cursos de Pacote Web e C# Básico oferecidos pelo CITi (empresa júnior do Cin) e logo depois a Proativa se classificou para a competição I2P, Ideas to Products, coordenada pela FGV.

Viajei para São Paulo dia 24 de agosto, para participar do Tech Ed. O evento foi muito bom, palestras de ótimo nível sobre as prinicipais tecnologias da Microsoft que estão no mercado ou na agulha para serem lançadas. Pelo que as pessoas que foran no ano passado disseram, o nível das palestras foi muito superior ao do ano passado. Além disso, foi uma ótima oportunidade de fazer networking e também de se divertir.

Passado este tempo, ficamos em São Paulo mesmo, nos preparando para o I2P. Eu, Lucas e João Paulo trabalhamos nos slides, tomando como base o que apresentamos na Imagine Cup. Eduardo Sonnino se juntou ao nosso grupo e fez um ótimo trabalho ao redesenhar nossa interface e mudar o desing de nossa apresentação.

Nos últimos 3 dias aconteceu a competição. Apesar de não termos avançado para as semi-finais, eu avalio a experiência como excepcional. No primeiro dia, em uma apresentação de feedback, os juizes e amigos nossos fizeram críticas, perguntas e dicas que não teriam surgido em uma competição mais técnica como foi o Interoperability Award na Imagine Cup. Hoje, após a final, tivemos uma ótima conversa com Augusto Camargo, que foi um dos jurados, e nos mostrou alguns pontos que devemos observar, tanto ao levar o ProLearning para uma competição como o I2P como para pensarmos quando formos de fato transformá-lo num produto.

Esta competição também nos trouxe uma “lição de vida” nas palavras de João Paulo… Um grupo da UFPR que estava em nossa chave, no dia da apresentação de feedback, fez uma apresentação completamente científica, que ninguém entendeu nada. Os juizes criticaram muito, e acredito que elas passaram o dia todo criando outra apresentação, mais adequada à competição, que no dia da apresentação para valer ficou muito boa, e as fez chegar ao 2º Lugar na competição… Parabéns meninas, vcs detonaram!

Enfim, agora é processar direitinho as opiniões dadas por todos, juizes, amigos (valeu Carla e Helô!) e outros competidores que conhecemos durante o I2P, e ver o que podemos aproveitar e usar para melhorar o nosso ProLearning.

Até a próxima!


Campeão Mundial de Interoperabilidade – Imagine Cup 2009!!!

8 Julho 2009

PROATIVA TEAM GANHOU O PRÊMIO DE INTEROPERABILIDADE NA IC2009!!!

Conseguimos superar os (ótımos, diga-se de passagem) projetos da Jordânia e da Polônia, e trazer o primeiro lugar novamente para o Brasil e para O CIn!

Depois escrevo com mais detalhes ;)


Imagine Cup 2009 – 05/07 e 06/07 – Só na Folia

8 Julho 2009

Depois de apresentar o ProLearning, veio a hora de relaxar… MENTIRA! hehehe… a programação era bem pesada, mesmo para quem não estava mais apresentando. Nossa competição havia acabado já, mas ainda existiam várias outras categorias com equipes brasileiras em que a competição seguia, e nós iamos torcer de alguma maneira. Mas isso é muito maia light do que ficar treinando e melhorando apresentação…

Nestes dois dias aconteceram a maior parte dos passeios. No fim do dia 4, fomos a um restaurante que se não me engano, é o ponto mais alto no Cairo, e fica às margens do Nilo. As paredes são transparentes, e o salão fica girando… leva aproximadamente duas horas para o salão dar uma volta completa. A vista é impressionante, e o restaurante em si é lindo.

No dia 5, fomos levados ao mercado, onde compramos a maior parte das lembranças pro pessoal que ficou no Brasil. É necessário praticar bem a pechincha… para ser delicado, digamos que boa parte dos vendedores egipcios quer se aproveitar do turista o máximo possível. O preço inicial que eles dão é um absurdo… mesmo que você ache que o preço está bom, divida por 5… eles vão chorar um pouco, mas no final vão te vender pelo teu valor… Acho que um turista no Brasil também deve sofrer com esse tipo de problema. O impressionante é que a maioria dos vendedores do mercado fala bem inglês E espanhol… e entendiam razoavelmente português, visto que quando alguém começava a conversar sobre o preço em português, não era raro o vendedor interferir na conversa em espanhol, baixando o preço um pouco mais ou explicando algo tentando te impressionar sobre o produto…

Nosso jantar foi novamente no Nilo, mas desta vez, sobre ele! Um barco em que o jantar era servido enquanto este navegava pelo rio. Durante o passeio, também aconteciam apresentações artísticas. Acabei tendo o prazer de participar de uma delas. Como já havia algum tempo que eu não descansava, durante a apresentação de dança do ventre eu estava visivelmente com sono, cansado mesmo… e estava na primeira fila. A dançarina, vendo minha posição, decidiu me “animar”… Me puxou pra dançar lá na frente… hehehe, foi uma resenha, e gerou vários vídeos e fotos :)

Dia 06, veio o passeio mais esperado da viagem… Conhecer as pirâmides. O lugar é espetacular. É incrivel ver aquilo tudo que você estudou quando era mais novo ali, na sua frente… Ver milhares de anos de história ao seu alcance. Imaginar aqueles monumentos durante sua construção, e logo após a conclusão, antes da ação do tempo (e em alguns casos, do homem) impor mudanças nas estruturas. Tivemos a oportunidade de ver Quéops, Quéfrem e Miquerinos muito, muito de perto mesmo. Fizemos um passeio de camelo, foi bem legal! Finalmente, entramos na pirâmide de Quéfrem. Algumas pessoas não gostaram muito do interior da pirâmide. Eu adorei. Na verdade, não há nada de bonito dentro dela. Você anda por um corredor apertado (tanto pra cima como pros lados), subindo e descendo num calor infernal, até chegar na câmara construida para abrigar o sarcófago de Quéfrem. O que eu realmente gostei foi de imaginar aquele lugar no momento em que o sarcofago estava sendo levado para lá, com todos os tesouros. Saber que isto tudo realmente aconteceu, exatamente naquele lugar, foi uma experiência incrível, viajei mesmo quando estava lá dentro.

Depois das pirâmides, e de passarmos em um lugar que fabricava e vendia papiros, almoçamos em um restaurante às margens do Nilo, uma das melhores refeições que tivemos no Cairo. Tinha até um bolinho bem parecido com o nosso acarajé! No final deste almoço, nós da Proativa demos uma entrevista pro pessoal da Record que nos acompanhou. Esta entrevista foi bem interessante, na sacada do restaurante, com o Nilo no fundo, num clima bem descontraído! Do almoço, fomos o para o museu, onde pudemos ver vários artefatos antigos que contam muito bem a história do Egito. O museu é realmente muito interessante, vale a pena ir se você for no Cairo!

Acham que acabou? Não… neste dia o Bradesco se garantiu ainda mais. Pra quem ainda não sabe, o Bradesco foi patrocinador mundial da Imagine Cup esse ano. Nos ajudaram muito, muito mesmo, pois conseguiram uma sala bem equipada para as equipes brasileiras praticarem as apresentações, além dos conselhos que o pessoal que eles levaram ter sido essencial para várias de nossas equipes terem bons resultados. Antes mesmo da viagem, o curso de técnicas de apresentação já tinha participação deles em parceria com a MS Brasil. Mas além desta parte mais séria da competição, eles promoveram boa parte dos passeios para a equipe brasileira que eu falei neste post.

E o último passeio do dia 6 foi uma ida ao Hard Rock Cafe Cairo. Lugar bonito, comida boa, drinks liberados e uma pista de dança… Tudo o que nós estavamos precisando para relaxar de vez! Foi uma ótima noite, fechando com chave de ouro um dia incrível!


Imagine Cup 2009 – 04/07 – Apresentação para os Jurados

8 Julho 2009

Depois de tanto trabalho, finalmente chegou a hora de apresentar o ProLearning. Passamos a manhã e a tarde melhorando a apresentação, depoıs do feedback dado pelo pessoal da Mıcrosoft Brasil, do Bradesco e da Super Produçoes, que estavam nos acompanhando. Treınamos exaustıvamente, até vermos que não podıamos maıs fazer nada além de esperar a hora da apresentação.

17:50 entramos na sala de julgamento e rapidamente montamos nosso ambıente sem problemas. Esperamos até os juızes chegarem, trocarem algumas palavras conosco. Luz verde no cronometro, e a apresentação estava valendo. Me bateu uma leveza, uma tranquilidade na h0ra, que eu não havıa sentıdo em nenhum treıno. Apresenteı minha parte sem problemas, Lucas fez a demo, voltei a apresentar a parte técnıca. Dava para ver que alguns dos jurados estavam gostando do que viam. Sorrisos, cutucadas no outro apontando algumas coisas, prıncipalmente onde sabiamos que o projeto era forte. Particularmente, isso me deu uma confiança muito grande durante a apresentação.

O tempo acabou no ultımo slıde, que falava sobre planos futuros. A prımeıra pergunta de um dos jurados foı exatamente o que pretendıamos fazer a partır de agora com o ProLearnıng :) . Graças a ajuda de todos os nossos amıgos, que nos fızeram várıas perguntas sobre o projeto, fıcamos bem preparados, e as outras perguntas tambem foram facilmente respondidas.

Resumindo, gostamos muıto da apresentação! Agora é esperar o resultado!

PS: desculpem os erros de dıgıtação… estou usando um teclado bizarro.


Imagine Cup 2009 – 03/07 – Abertura da Imagine

8 Julho 2009

Depois de um pequeno descanso, a equipe brasileira se reuniu para a passagem de algumas informações da competição. Depois disso, nós da Proativa voltamos a trabalhar na apresentação, e conseguimos finalizar algumas partes que estavam nos incomodando. No início da tarde, fomos levados ao local onde iria ocorrer à noite a abertura da Imagine Cup 2009, que ocorreu na Cidadela no Cairo. Depoıs de conhecer a linda mesquita de Mohamed Alı (nao é o lutador…), e fazer muita bagunça junto com as outras equipes, começou a abertura.

O lugar foi impecavelmente preparado. Após a entrada das delegaçoes de cada país, falaram varias pessoas, como o vice presıdente da Mıcrosoft para o Orıente Médio e Áfrıca, o mınıstro de tecnologia do Egıto e o Chief Software Archıtect da Microsoft, Ray Ozzie. Claro que nao poderıa faltar a presença de Joe Wılson, que foı o mestre de cerımonia.

Como um todo, a abertura foı emocionante. Pra quem aında nao tiınha “caido a fıcha”, aquele foı o momento certo. Confesso que meus olhos encheram de lágrimas em alguns vários momentos… Muita emoçao ver tanto trabalho ser reconhecido, e estar entre os melhores do mundo.

No fim, conseguimos tirar fotos com Ray Ozzie, com uma mulher que estava representando a prımeıra dama do Egito e com algumas meninas muçulmanas.

Depois da cerimonia em si, veio um jantar, com muita Kafta (almondega ou linguiça de carneiro, virtualmente a única carne que se comia por lá… ninguém aguenta mais ver uma linguiça de carneiro na frente hehehe), mas meio desorganizado… filas enormes pra pegar comida, fiquei mais nos docinhos mesmo que não tinha muita gente pra pegar e eram deliciosos.

Bem, por enquanto é isso… depoıs escrevo maıs!


Imagine Cup 2009 – 01/07 a 03/07 – A viagem interminável

5 Julho 2009

A viagem foi muito longa… Em São Paulo, a equipe brasileira embarcou no vôo Sao Paulo-Istambul da Turkish Airlines em clima de festa. O entrosamento que foi iniciado no evento em São Paulo continuou no avião, principalmente pois haviam novos membros, notadamente, Gringo, um uruguaio super gente boa que é câmeraman da equipe da Record que está nos acompanhando.

Após longas 6 horas de vôo noturno – a melhor parte foi ir observando cada cidade que passava na janela no monitor com o GPS mostrando onde o avião estava, que eu lembre, deu pra ver Salvador e Recife, onde o avião puxa pra direita e vai em direção a Dakar – chegamos em nossa primeira escala, a capital do Senegal, Dakar. Foi uma escala bem demorada, quase uma hora e meia, e quando abriram a porta traseira do avião pro pessoal da limpeza sair, pudemos chegar lá e tirar algumas fotos e filmar um pouco o que dava pra ver de lá.

Daí seguimos para Istambul no mesmo A330 que havia nos levado à Dakar. A comida do avião foi um ponto a parte. Não são aqueles Maxi Goiabinha dos voos da Gol, são refeições bem decentes, no entanto, um tanto diferentes… Algumas pessoas não gostaram muito, mas eu n tenho frescura mesmo pra comida, detonei tudo.

Este trecho Dakar-Istambul foi ótimo. Primeiro, porque eu descobri que cada duas poltronas do avião tinham uma tomada, então o pessoal pode voltar a trabalhar, ganhando 6 horas pra produzir. Depois, porque a paisagem vista era espetacular. Primeiro o deserto do Saara, gigantesco. Depois, começamos a passar por cima de lugares como Itália e Grécia, até finalmente chegarmos em Istambul.

O aeroporto de lá é bem legal, grande e com boa estrutura. Ficamos lá para fazer a conexão Istambul-Cairo, durante aproximadamente 3 horas. Deu pra uma galera ligar pra casa, comer, ver preços das coisas em Duty-Free e por ai vai. Finalmente embarcamos para a ultima etapa de nossa viagem, novamente em um voo da Turkish Airlines, desta vez em um A321. Uma coisa que nos impressionou <sarcasm>foi a delicadeza da tripulação neste voo.</sarcasm>

Na hora prevista, chegamos ao aeroporto internacional do Cairo. Foi um choque de culturas, pois logo ao descermos, vimos aquele monte de gente vestida com roupas árabes (como era de se esperar…), mulheres de burca e por ai vai… Passamos pela verificação de temperatura (por causa da gripe e tals) e depois pela <sarcasm> imigração muito organizada </sarcasm>. Resumindo bem, o areoporto é um inferno. Muita gente, pouco espaço e pouca organização. Sorte nossa que tinha o pessoal da Imagine Cup agilizando o processo pra quem era da competição. Daí, pegamos um ônibus, já misturados com gente da Alemanha e mais alguns paises, e fomos levados aos nossos hoteis, no complexo Citystars, aqui na cidade do Cairo. Depois de um demorado check-in, finalmente pudemos tentar descansar. Antes, como já estava sendo servido o café da manhã (as 6 da manhã), eu e Flávio fomos comer, enquanto os meninos foram logo dormir. Resumindo, fomos descansar da viagem (lembrando que eu só dormi 2 horas, entre Recife e Dakar, e daí fiquei acordado o tempo todo), as 07:30… e tinhamos que acordar às 9:30, pois às 10:00 já tinha compromisso.

Em breve eu conto mais sobre as outras coisas que aconteceram depois da viagem.


Imagine Cup 2009 – Dia 30/06 – Chegada em São Paulo

1 Julho 2009

Pessoal, este é o primeiro de uma série de posts cobrindo a ida de minha equipe, a Proativa Team, para as finais da Imagine Cup 2009 no Egito.

Após sairmos de Recife às 8:30, e passarmos algumas horas num vôo tranquilo, sem maiores incidentes tirando o medo de Luciano (Game Dev), chegamos ao Aeroporto Internacional de Guarulhos às 11:40. Jean, da empresa que está auxiliando a Microsoft na organização do evento aqui em SP, estava a nossa espera, e logo saímos em duas vans para o hotel. O ótimo trânsito de São Paulo nos fez levar apenas duas horas e dez minutos para chegarmos no hotel (errado), e mais 5 minutos para chegarmos no hotel certo. Infelizmente, já estávamos em cima da hora, e tivemos que ir direto para a Microsoft, para o desespero do estômago (vazio) de todos. Lá chegando, almoçamos (muito bem) no Zig do shopping que existe no empresarial onde fica a Microsoft.

A tarde foi ótima, com uma ótima conversa com Eliane, que está ajudando as equipes com as apresentações a serem feitas no Egito. Fomos apresentadosa todo o pessoal da Microsoft Brasil responsável pelo evento e ao pessoal do Bradesco que nos acompanhará na viagem. Vale ressaltar o presentinho que ganhamos: Uma mochila Targus (enorme), com livro sobre o Egito, camisa da equipe Brasileira, Seguro de Saúde enquanto estivermos no Egito e várias outras coisinhas.

Já deu pra começar a socializar com o resto do pessoal, das equipes daqui de São Paulo. Na van e no hotel na hora do jantar, ficou todo mundo misturado e conversando. Nós da Proativa compramos o acesso a internet (R$ 8,00 8 horas) e ficamos até 3 da manhã trabalhando na apresentação, para ter algumas coisas para apresentar hoje no treinamento para apresentações.

Estou indo tomar café da manhã correndo, pois o tempo está bem curto, e a programação bem cheia!

Até a próxima!

PS: Depois eu atualizo esse post com fotos!


Pesquisa de Imagens do Bing se garantindo

16 Junho 2009

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!


Proativa no Egito!!! Finalistas na Imagine Cup 2009!!!

4 Junho 2009
É nois no Egito!

É nois no Egito!

Como diria Flávio Almeida, é com incomensurável prazer que venho por meio deste post informar que a Proativa Team, formada por mim, Lucas Mello, Flávio Almeida e João Paulo Oliveira, é uma das finalistas mundiais no prêmio de Interoperabilidade da Imagine Cup 2009. As finais acontecerão entre os dias 3 e 8 de Julho, em Cairo, no Egito! Já estamos entre os 3 melhores projetos de interoperabilidade do mundo!

Agora é a correria para tirar a papelada toda pra viajar, e trabalhar insanamente pra sermos campeões!

Todos nós da Proativa também estamos extremamente felizes pelo pessoal da equipe pernambucana LevvIT, formada por nossos amigos Edgar Neto, Diogo Burgos, Luciano José, Vinicius Ottoni e Victor Rafael, que são finalistas na categoria de Game Development, e já estão entre os 5 melhores do mundo.

É tempo de se preparar e trabalhar muito, para poder representar muito bem nosso país. Temos a informação de que este ano será a maior delegação brasileira em finais de Imagine Cup! Parabéns a todos os classificados, muito obrigado a todas as pessoas que nos ajudaram na conquista, e que o resultado das equipes brasileiras sirva de incentivo para que todos os estudantes brasileiros participem destas competições divulgando o nome de nosso país e a qualidade de nossos estudantes e futuros profissionais para o mundo!

Só de motivação, algumas coisas q eu provavelmente vou ver por lá!

Pirâmides

Pirâmides

Esfinge

Esfinge

Cidade Antiga do Cairo

Cidade Antiga do Cairo


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

14 Maio 2009

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.