Arquivo da categoria: Programação

O Problema do N + 1: como identificá-lo, corrigi-lo e ganhar desempenho em suas aplicações

Problema do N + 1

Você se importa com o Desempenho de suas aplicações? Então é fundamental que você entenda o que é o Problema do N + 1 e saiba como identificá-lo e corrigi-lo.

Essa é uma grande falha que muitos programadores iniciantes (e até intermediários) não conhecem, deixando as aplicações muito lentas e tendo uma grande perda de performance.

Continue lendo este artigo, que vou explicar em detalhes o que é o Problema do N + 1 e como solucioná-lo.

Continue lendo

Honeypot: Captcha Acessível Sem Utilização de Imagens

Captcha Acessível Sem Utilização de Imagens

Neste meu antigo post eu mostrei como usar algumas técnicas de Captcha envolvendo imagens. O grande problema disso está no quesito acessibilidade. Leitores de tela não identificam as imagens, dificultando a navegação para deficientes visuais.

Outro problema é o incômodo para o usuário. Ele precisa identificar caracteres distorcidos em uma imagem, para provar que não é um robô. Isso é muito chato.

Há poucos meses, o Google anunciou uma nova forma de verificação anti-bot, para substituir o reCaptcha, propriedade da empresa. A abordagem é bem simplista, mas ainda envolve uma ação do usuário.

Neste post vou mostrar a técnica Honeypot, que eu uso há alguns anos e que tem dado resultados de praticamente 100% contra spam. E o melhor: não requer ação alguma do dos usuários.

Continue lendo

Como Gerar Logs de Execução com PHP

Como Gerar Logs de Execução com PHP

Logs de execução são muito úteis para “catalogar” o ciclo de execução de um programa. Cada ação executada pelo software é registrada em um arquivo, juntamente com a data e a hora do ocorrido.

Muitos programadores enchem a tela de echo e var_dump, para descobrir o que está ocorrendo no código. Isso não é totalmente errado, mas há alternativas melhores. Aliás, já vi gente esquecer de tirar var_dump antes de mandar o sistema pro ar. Resultado: todo mundo vendo o debug ao acessar o site…

Neste artigo vou mostrar como criar um simples sistema de logs usando PHP.

Continue lendo

As Diferentes Formas de Execução do PHP

As Diferentes Formas de Execução do PHP

O PHP é amplamente conhecido como uma linguagem para desenvolvimento de aplicações Web. Porém, nem só de Web vive o PHP. Existem outras formas de execução do PHP. É possível executá-lo em linha de comando também. Há, inclusive, uma forma de executar o PHP em um terminal interativo.

Continue lendo

Cache com PHP usando APC

Cache com PHP usando APC

Desemepnho de aplicações é cada vez mais importante. A Web está mais cheia de conteúdo a cada dia. E, consequentemente, as páginas tendem a possuir mais dados. Se não tomarmos cuidado com o desempenho, nossos sistemas ficarão lentos.

Uma forma de contornar esse problema é fazer cache de dados usados com frequência. Há várias maneiras de fazer cache com PHP. Neste artigo, vou falar do APC (Alternative PHP Cache), que é uma extensão do próprio PHP muito simples de usar.

Continue lendo

Bootstrapping com PHP e Arquivo de Inicialização

Bootstrapping com PHP e Arquivo de Inicialização

 

Neste post vou lhe mostrar como fazer o bootstrapping (ou boot) de sua aplicação PHP. Vamos criar um arquivo de inicialização, que vai ser executado em todas as requisições. Isso vai garantir que a execução ocorra da forma correta, evitando erros.

Essa prática é muito importante pois ela garante integridade ao seu sistema. Seguindo esse modelo, é possível centralizar as configurações do sistema. Assim, sempre que precisar alterar uma configuração, basta fazer isso em um único arquivo, e ela se refletirá em toda a aplicação.

Continue lendo

C/C++: calculando hash MD5 usando a biblioteca do OpenSSL

C/C++

Obter o hash MD5 de uma string é uma tarefa bem simples em algumas linguagens de mais alto nível, como Python, Ruby ou PHP. Porém, em C e C++ não é tão simples. Sem o auxílio de uma biblioteca externa, não podemos calcular hashes, como MD5 ou SHA-1 (exceto se você implementar esses algoritmos, é claro).

Mostrarei adiante como calcular o hash MD5 de uma string, utilizando a biblioteca OpenSSL, disponível nos sistemas Linux e Unix-Like (em Mac OS X também funciona, apesar de aparecerem warnings dizendo que as funções da OpenSSL são obsoletas).

Continue lendo