Este paper demonstra o resultado de um desafio lançado por ele mesmo, onde pedia que fosse construído um Worm XSS bem pequeno, que funcionasse com IE7 e FF2 no mínimo, entre outras exigências.
Vale a pena conferir este estudo e toda a discussão que rolou durante a competição!
Faz algum tempo que eu procuro por um servidor subversion gratuitow. O Google até oferece hospedagem gratuita (code.google.com/hosting), mas apenas para projetos open-source.
Hoje, encontrei o Assembla, um serviço pra lá de bom!!!
Além de oferecer um servidor subversion gratuito com acesso restrito ao time de desenvolvedores, ainda lhe oferece:
Wiki
Chat online
Bug traking
Anotação em Imagens etc.
Na versão gratuita do serviço você conta com 500MB de espaço.
Então acesse http://www.assembla.com, cria sua conta e comece a utilizar um robusto sistema de Controle de Revisão em seus projetos.
Muitas pessoas se perguntariam para quê migrar a sua aplicação de uma solução proprietária para uma solução livre, somente pelo custo da licença? E a formação de pessoal especializado e o suporte técnico, como fica, e as ferramentas de administração, replicação, backup, performance e outros.
É fato que as ferramentas proprietárias são melhores como um todo, mas cresce no mundo todo pessoas que desenvolvem soluções e as publicam, tornando cada vez mais robusta, esta por definição é SOFTWARE LIVRE. Você é livre para escolher, o suporte vêm pela internet até mesmo em poucas horas, e não leva dias como em soluções proprietárias. Você é livre para desenvolver a sua própria solução para o seu negócio, você é livre para distribuí-la, mantendo os direitos que recebeu. Não podemos dizer que a ferramenta é instável, por que não existe ainda no mundo auditoria tão severa como a de estar com o código fonte aberto para o mundo.
A medida que se estuda mais este sistema, encontramos novos horizontes que existem na sua maioria das ferramentas proprietárias já são realidade. Neste documento procurei despejar a melhor didática para o estudo de caso com Slony.
Para aqueles que estão buscando uma boa referência sobre o Zend Framework, a Manning Publications Co estará lançando em breve, (provavelmente Maio de 2008,) o livro intitulado Zend Framework in Action, cujos autores são Rob Allen
e Nick Lo.
A editora está disponibilizando o primeiro capítulo gratuitamente em seu site a título de "degustação"
Durante o desenvolvimento de aplicações, muitas vezes precisamos ter uma percepção real de onde se encontram os "gargalos" de nossa aplicação.
Para tanto, venho apresentar na dica de hoje, duas ferramentas simples que utilizo para realização de Profiling.
Profiling é o processo de analisar
a performance, utilização de recursos e tempo de execução de uma aplicação. No processo geralmente são gerados relatórios que informam graficamente o percentual, o tempo de processamento e o fluxo/ordem das requisições.
Para o PHP utilizo o XDebug e para análise de HTML/Ajax o FireBug
O XDebug é instalado como uma extensão do PHP no servidor web. Abaixo as configurações do arquivo php.ini que utilizo:
A opção xdebug.profiler_output_dir diz onde onde serão gravados os arquivos de profile. No meu caso, mandei que fossem escritos em /php_profile
Não esquecer de configurar as permissões de escrita no diretório! Dentro deles serão gerados arquivos como cachegrind.out.nome_do_site (Na minha configuração. O padrão é criar um arquivo de nome único)
Uma vez instalada, configurada e habilitada, a extensão XDebug irá gerar os arquivos cachegrind para serem analisados por outra ferramenta. No linux utilizo o KCacheGrind
Abaixo você vê um screenshot da ferramenta analisando uma requisição feita ao Joomla.
A instalação do FireBug é bastante simples, como qualquer outra extensão do Firefox. Abaixo você confere um screenshot da utilização da ferramenta.
Alguns editores de texto como gedit ou Quanta+ criam arquivos temporários no formato nomedoarquivo.ext~
Isso é especialmente ruim pois permite que o código-fonte de um arquivo PHP seja visualizado via browser e com isso expor informações sensíveis, como senhas de banco de dados.
Para evitar que um eventual arquivo deste tipo seja esquecido no servidor utilize acrescente a configuração abaixo no Apache ou em um arquivo .htaccess no diretório web. Acrescentei algumas outras extensões igualmente problemáticas!
<FilesMatch "\.(inc|.*sql|.*~|.*bak|.*tmp)$">
Order allow,deny
Deny from all
</FilesMatch>