segunda-feira, 30 de agosto de 2010

DEP Windows Server

Prevenção de execução de dados(DEP)

Recentemente tive um problema com esse DEP, estava tentando acessar um web service e o mesmo reclamava de um erro de memoria, testei o web service pelo navegador, verifiquei anti-vírus, firewall e estava tudo ok. A solução encontrada foi criar uma exceção no DEP do windows.

O que é mesmo DEP?

A Prevenção de execução de dados (DEP) é um conjunto de tecnologias de hardware e software que realiza verificações adicionais na memória para ajudar a evitar que códigos mal-intencionados executem em um sistema. O principal benefício da DEP é ajudar a evitar a execução de código a partir de páginas de dados. Normalmente, o código não é executado a partir do heap padrão e da pilha. DEP imposta por hardware detecta o código em execução a partir destes locais e eleva uma exceção quando a execução ocorre. DEP imposta por software pode ajudar a evitar que um código mal-intencionado beneficie-se de um mecanismo para lidar com exceções no Windows.

Onde configurar?

Propriedades do Sistema > Avançado > Desempenho > Prevenção de execução de dados
Pronto basta adicionar uma exceção para o executável que você precisa executar.

Posso ter aberto uma porta para futuros problemas, mas no meu caso resolveu.

domingo, 8 de agosto de 2010

Cuidado com soluções automáticas

Soluções óbvias nem sempre são as melhores.

Alguns programadores, principalmente os novatos, não tem ainda a experiencia necessária para decidir se um código realmente pode ser reutilizado, se a solução que ele tem em mente é realmente a melhor para ser aplicada naquele momento, é comum encontrar dentro de sistemas legado uma infinidade de códigos repetidos, o velho ctrl c ctrl v. Quando é necessária resolver algo o desenvolvedor precisa pensar na solução, pois a solução que ele esta acostumado a fazer pode estar ultrapassada.

Um belo dia a caixa de descarga do meu banheiro pifou, uma peça que segurava o botão quebrou. Naquele momento achei que a melhor solução era colar a maldita da peça, então peguei a famosa cola maluca e colei a peça. Cinco minutos depois percebi que não tinha funcionado, então coloquei mais cola, mas a peça não ficava no lugar...Então parei de colocar cola e fiquei pensando se tinha outro jeito de consertar a maldita. Opa, vi que a peça que eu estava querendo colar se parecia com um parafuso, mas como eu tinha enchido a miserável de cola, deu maior trabalho para retirar ela do local. Depois de muito esforço consegui colocar o parafuso no local da peça quebrada. Achei que meu trabalho tinha acabado, mais infelizmente na outra semana quebrou novamente. Já estava decidido comprar um descarga nova, pois aquela já tinha me feito muita raiva. Chegando no depósito perguntei para o vendedor o preço de uma descarga e comentei que a minha estava com uma peça quebrada, o camarada me informou que ele tinha o reparo da descarga, não precisava comprar uma nova, ele me ensinou a colocar a nova peça, custou apenas R$ 5,00.

Moral da história, fui tentar resolver algo que não sabia, não era do meu domínio, e pensava que uma peça quebrada poderia ser colada facilmente(vaso, caneta...) era só colocar cola maluca, não parei no momento para investigar se essa era a melhor solução, fui no modo automático e perdi tempo. Esse tipo de coisa vive acontecendo com desenvolvimento de software. Quando não temos experiencia, achamos que nossa solução sempre é a melhor, não perdemos tempo pensando se existe uma solução melhor, ou procuramos ajuda com alguém mais experiente que possa orientar na busca de uma solução mais eficiente. Temos sempre que estar atendo ao modo automático de resolver as coisas.